@dnb/eufemia 10.42.0 → 10.44.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 (522) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/cjs/components/autocomplete/Autocomplete.d.ts +2 -2
  3. package/cjs/components/autocomplete/AutocompleteDocs.js +7 -7
  4. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  5. package/cjs/components/button/Button.d.ts +18 -1
  6. package/cjs/components/button/Button.js +6 -5
  7. package/cjs/components/button/Button.js.map +1 -1
  8. package/cjs/components/card/Card.d.ts +1 -1
  9. package/cjs/components/card/Card.js.map +1 -1
  10. package/cjs/components/input-masked/InputMaskedHooks.js +4 -0
  11. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  12. package/cjs/components/space/Space.d.ts +1 -1
  13. package/cjs/components/space/Space.js.map +1 -1
  14. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  15. package/cjs/components/table/table-navigation/TableNavigationHead.js +1 -1
  16. package/cjs/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  17. package/cjs/components/tabs/Tabs.js +1 -1
  18. package/cjs/components/tabs/Tabs.js.map +1 -1
  19. package/cjs/components/upload/UploadDocs.js +1 -1
  20. package/cjs/components/upload/UploadDocs.js.map +1 -1
  21. package/cjs/components/upload/UploadInfo.js +1 -1
  22. package/cjs/components/upload/UploadInfo.js.map +1 -1
  23. package/cjs/components/upload/UploadVerify.js +4 -1
  24. package/cjs/components/upload/UploadVerify.js.map +1 -1
  25. package/cjs/components/upload/types.d.ts +2 -2
  26. package/cjs/components/upload/types.js.map +1 -1
  27. package/cjs/extensions/forms/DataContext/Context.d.ts +3 -2
  28. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  29. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +7 -2
  30. package/cjs/extensions/forms/DataContext/Provider/Provider.js +52 -17
  31. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  32. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  33. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  34. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  35. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js +31 -0
  36. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  37. package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  38. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  39. package/cjs/extensions/forms/Field/FieldDocs.d.ts +7 -0
  40. package/cjs/extensions/forms/Field/FieldDocs.js +20 -1
  41. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
  42. package/cjs/extensions/forms/Field/Number/Number.js +21 -16
  43. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  44. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -4
  45. package/cjs/extensions/forms/Field/Option/Option.js +0 -21
  46. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  47. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  48. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -15
  49. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  50. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  51. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +28 -0
  52. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  53. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  54. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +32 -16
  55. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  56. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  57. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +16 -0
  58. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  59. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +40 -16
  60. package/cjs/extensions/forms/Field/Selection/Selection.js +71 -16
  61. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  62. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  63. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  64. package/cjs/extensions/forms/Field/String/String.d.ts +1 -0
  65. package/cjs/extensions/forms/Field/String/String.js +21 -2
  66. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  67. package/cjs/extensions/forms/Field/Toggle/Toggle.js +1 -1
  68. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  69. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  70. package/cjs/extensions/forms/Form/Handler/Handler.js +3 -1
  71. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  72. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +41 -0
  73. package/cjs/extensions/forms/Form/Isolation/Isolation.js +108 -0
  74. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -0
  75. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.d.ts +7 -0
  76. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +53 -0
  77. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -0
  78. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.d.ts +3 -0
  79. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +50 -0
  80. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -0
  81. package/cjs/extensions/forms/Form/Isolation/index.d.ts +2 -0
  82. package/cjs/extensions/forms/Form/Isolation/index.js +27 -0
  83. package/cjs/extensions/forms/Form/Isolation/index.js.map +1 -0
  84. package/cjs/extensions/forms/Form/Section/Section.js +2 -2
  85. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  86. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +6 -2
  87. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  88. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +26 -10
  89. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  90. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  91. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  92. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +22 -19
  93. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  94. package/cjs/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  95. package/cjs/extensions/forms/Form/data-context/clearData.js +16 -0
  96. package/cjs/extensions/forms/Form/data-context/clearData.js.map +1 -0
  97. package/cjs/extensions/forms/Form/index.d.ts +2 -0
  98. package/cjs/extensions/forms/Form/index.js +14 -0
  99. package/cjs/extensions/forms/Form/index.js.map +1 -1
  100. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  101. package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -4
  102. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  103. package/cjs/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  104. package/cjs/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  105. package/cjs/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  106. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  107. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  108. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  109. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  110. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +7 -0
  111. package/cjs/extensions/forms/constants/locales/en-GB.js +7 -0
  112. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  113. package/cjs/extensions/forms/constants/locales/en-US.d.ts +7 -0
  114. package/cjs/extensions/forms/constants/locales/index.d.ts +14 -0
  115. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +7 -0
  116. package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -0
  117. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  118. package/cjs/extensions/forms/hooks/DataValueDocs.js +4 -4
  119. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  120. package/cjs/extensions/forms/hooks/useDataValue.d.ts +1 -0
  121. package/cjs/extensions/forms/hooks/useDataValue.js +18 -9
  122. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  123. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  124. package/cjs/extensions/forms/hooks/useFieldProps.js +50 -34
  125. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  126. package/cjs/extensions/forms/hooks/usePath.d.ts +1 -1
  127. package/cjs/extensions/forms/hooks/usePath.js +9 -8
  128. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  129. package/cjs/extensions/forms/style/dnb-forms.css +1 -1
  130. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  131. package/cjs/extensions/forms/types.d.ts +16 -6
  132. package/cjs/extensions/forms/types.js.map +1 -1
  133. package/cjs/extensions/payment-card/utils/Types.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/extendPropsWithContext.js +3 -3
  138. package/cjs/shared/helpers/extendPropsWithContext.js.map +1 -1
  139. package/cjs/shared/helpers/isAsync.js +2 -2
  140. package/cjs/shared/helpers/isAsync.js.map +1 -1
  141. package/cjs/style/core/scopes.scss +1 -1
  142. package/cjs/style/dnb-ui-basis.css +1 -1
  143. package/cjs/style/dnb-ui-basis.min.css +1 -1
  144. package/cjs/style/dnb-ui-body.css +1 -1
  145. package/cjs/style/dnb-ui-body.min.css +1 -1
  146. package/cjs/style/dnb-ui-components.css +1 -1
  147. package/cjs/style/dnb-ui-components.min.css +1 -1
  148. package/cjs/style/dnb-ui-core.css +1 -1
  149. package/cjs/style/dnb-ui-core.min.css +1 -1
  150. package/cjs/style/dnb-ui-extensions.css +1 -1
  151. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  152. package/cjs/style/dnb-ui-forms.css +1 -1
  153. package/cjs/style/dnb-ui-forms.min.css +1 -1
  154. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  155. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  156. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  157. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  158. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  159. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  160. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
  161. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  162. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  163. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  164. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  165. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  166. package/cjs/style/themes/theme-ui/ui-theme-components.css +2 -2
  167. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  168. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  169. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  170. package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -1
  171. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  172. package/components/autocomplete/Autocomplete.d.ts +2 -2
  173. package/components/autocomplete/AutocompleteDocs.js +7 -7
  174. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  175. package/components/button/Button.d.ts +18 -1
  176. package/components/button/Button.js +6 -5
  177. package/components/button/Button.js.map +1 -1
  178. package/components/card/Card.d.ts +1 -1
  179. package/components/card/Card.js.map +1 -1
  180. package/components/input-masked/InputMaskedHooks.js +4 -0
  181. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  182. package/components/space/Space.d.ts +1 -1
  183. package/components/space/Space.js.map +1 -1
  184. package/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  185. package/components/table/table-navigation/TableNavigationHead.js +1 -1
  186. package/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  187. package/components/tabs/Tabs.js +1 -1
  188. package/components/tabs/Tabs.js.map +1 -1
  189. package/components/upload/UploadDocs.js +1 -1
  190. package/components/upload/UploadDocs.js.map +1 -1
  191. package/components/upload/UploadInfo.js +1 -1
  192. package/components/upload/UploadInfo.js.map +1 -1
  193. package/components/upload/UploadVerify.js +4 -1
  194. package/components/upload/UploadVerify.js.map +1 -1
  195. package/components/upload/types.d.ts +2 -2
  196. package/components/upload/types.js.map +1 -1
  197. package/es/components/autocomplete/Autocomplete.d.ts +2 -2
  198. package/es/components/autocomplete/AutocompleteDocs.js +7 -7
  199. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  200. package/es/components/button/Button.d.ts +18 -1
  201. package/es/components/button/Button.js +6 -5
  202. package/es/components/button/Button.js.map +1 -1
  203. package/es/components/card/Card.d.ts +1 -1
  204. package/es/components/card/Card.js.map +1 -1
  205. package/es/components/input-masked/InputMaskedHooks.js +4 -0
  206. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  207. package/es/components/space/Space.d.ts +1 -1
  208. package/es/components/space/Space.js.map +1 -1
  209. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  210. package/es/components/table/table-navigation/TableNavigationHead.js +1 -1
  211. package/es/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  212. package/es/components/tabs/Tabs.js +1 -1
  213. package/es/components/tabs/Tabs.js.map +1 -1
  214. package/es/components/upload/UploadDocs.js +1 -1
  215. package/es/components/upload/UploadDocs.js.map +1 -1
  216. package/es/components/upload/UploadInfo.js +1 -1
  217. package/es/components/upload/UploadInfo.js.map +1 -1
  218. package/es/components/upload/UploadVerify.js +4 -1
  219. package/es/components/upload/UploadVerify.js.map +1 -1
  220. package/es/components/upload/types.d.ts +2 -2
  221. package/es/components/upload/types.js.map +1 -1
  222. package/es/extensions/forms/DataContext/Context.d.ts +3 -2
  223. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  224. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +7 -2
  225. package/es/extensions/forms/DataContext/Provider/Provider.js +50 -17
  226. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  227. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  228. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  229. package/es/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  230. package/es/extensions/forms/Field/Currency/CurrencyDocs.js +22 -0
  231. package/es/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  232. package/es/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  233. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  234. package/es/extensions/forms/Field/FieldDocs.d.ts +7 -0
  235. package/es/extensions/forms/Field/FieldDocs.js +16 -0
  236. package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
  237. package/es/extensions/forms/Field/Number/Number.js +21 -16
  238. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  239. package/es/extensions/forms/Field/Option/Option.d.ts +2 -4
  240. package/es/extensions/forms/Field/Option/Option.js +0 -20
  241. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  242. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  243. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +32 -15
  244. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  245. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  246. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +20 -0
  247. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  248. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  249. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +16 -3
  250. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  251. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  252. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +9 -0
  253. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  254. package/es/extensions/forms/Field/Selection/Selection.d.ts +40 -16
  255. package/es/extensions/forms/Field/Selection/Selection.js +67 -15
  256. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  257. package/es/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  258. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  259. package/es/extensions/forms/Field/String/String.d.ts +1 -0
  260. package/es/extensions/forms/Field/String/String.js +20 -2
  261. package/es/extensions/forms/Field/String/String.js.map +1 -1
  262. package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
  263. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  264. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  265. package/es/extensions/forms/Form/Handler/Handler.js +3 -1
  266. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  267. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +41 -0
  268. package/es/extensions/forms/Form/Isolation/Isolation.js +97 -0
  269. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -0
  270. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.d.ts +7 -0
  271. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +43 -0
  272. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -0
  273. package/es/extensions/forms/Form/Isolation/IsolationDocs.d.ts +3 -0
  274. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +40 -0
  275. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -0
  276. package/es/extensions/forms/Form/Isolation/index.d.ts +2 -0
  277. package/es/extensions/forms/Form/Isolation/index.js +3 -0
  278. package/es/extensions/forms/Form/Isolation/index.js.map +1 -0
  279. package/es/extensions/forms/Form/Section/Section.js +2 -2
  280. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  281. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +6 -2
  282. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  283. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +26 -10
  284. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  285. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  286. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  287. package/es/extensions/forms/Form/Visibility/useVisibility.js +22 -19
  288. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  289. package/es/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  290. package/es/extensions/forms/Form/data-context/clearData.js +10 -0
  291. package/es/extensions/forms/Form/data-context/clearData.js.map +1 -0
  292. package/es/extensions/forms/Form/index.d.ts +2 -0
  293. package/es/extensions/forms/Form/index.js +2 -0
  294. package/es/extensions/forms/Form/index.js.map +1 -1
  295. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  296. package/es/extensions/forms/Iterate/Array/types.d.ts +1 -4
  297. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  298. package/es/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  299. package/es/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  300. package/es/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  301. package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  302. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  303. package/es/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  304. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  305. package/es/extensions/forms/constants/locales/en-GB.d.ts +7 -0
  306. package/es/extensions/forms/constants/locales/en-GB.js +7 -0
  307. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  308. package/es/extensions/forms/constants/locales/en-US.d.ts +7 -0
  309. package/es/extensions/forms/constants/locales/index.d.ts +14 -0
  310. package/es/extensions/forms/constants/locales/nb-NO.d.ts +7 -0
  311. package/es/extensions/forms/constants/locales/nb-NO.js +7 -0
  312. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  313. package/es/extensions/forms/hooks/DataValueDocs.js +4 -4
  314. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  315. package/es/extensions/forms/hooks/useDataValue.d.ts +1 -0
  316. package/es/extensions/forms/hooks/useDataValue.js +18 -9
  317. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  318. package/es/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  319. package/es/extensions/forms/hooks/useFieldProps.js +50 -34
  320. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  321. package/es/extensions/forms/hooks/usePath.d.ts +1 -1
  322. package/es/extensions/forms/hooks/usePath.js +8 -8
  323. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  324. package/es/extensions/forms/style/dnb-forms.css +1 -1
  325. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  326. package/es/extensions/forms/types.d.ts +16 -6
  327. package/es/extensions/forms/types.js.map +1 -1
  328. package/es/extensions/payment-card/utils/Types.js.map +1 -1
  329. package/es/shared/Eufemia.d.ts +1 -1
  330. package/es/shared/Eufemia.js +2 -2
  331. package/es/shared/Eufemia.js.map +1 -1
  332. package/es/shared/helpers/extendPropsWithContext.js +3 -3
  333. package/es/shared/helpers/extendPropsWithContext.js.map +1 -1
  334. package/es/shared/helpers/isAsync.js +2 -2
  335. package/es/shared/helpers/isAsync.js.map +1 -1
  336. package/es/style/core/scopes.scss +1 -1
  337. package/es/style/dnb-ui-basis.css +1 -1
  338. package/es/style/dnb-ui-basis.min.css +1 -1
  339. package/es/style/dnb-ui-body.css +1 -1
  340. package/es/style/dnb-ui-body.min.css +1 -1
  341. package/es/style/dnb-ui-components.css +1 -1
  342. package/es/style/dnb-ui-components.min.css +1 -1
  343. package/es/style/dnb-ui-core.css +1 -1
  344. package/es/style/dnb-ui-core.min.css +1 -1
  345. package/es/style/dnb-ui-extensions.css +1 -1
  346. package/es/style/dnb-ui-extensions.min.css +1 -1
  347. package/es/style/dnb-ui-forms.css +1 -1
  348. package/es/style/dnb-ui-forms.min.css +1 -1
  349. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  350. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  351. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  352. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  353. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  354. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  355. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
  356. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  357. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  358. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  359. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  360. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  361. package/es/style/themes/theme-ui/ui-theme-components.css +2 -2
  362. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  363. package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  364. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  365. package/es/style/themes/theme-ui/ui-theme-forms.css +1 -1
  366. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  367. package/esm/dnb-ui-basis.min.mjs +1 -1
  368. package/esm/dnb-ui-components.min.mjs +1 -1
  369. package/esm/dnb-ui-elements.min.mjs +1 -1
  370. package/esm/dnb-ui-extensions.min.mjs +3 -3
  371. package/esm/dnb-ui-lib.min.mjs +1 -1
  372. package/extensions/forms/DataContext/Context.d.ts +3 -2
  373. package/extensions/forms/DataContext/Context.js.map +1 -1
  374. package/extensions/forms/DataContext/Provider/Provider.d.ts +7 -2
  375. package/extensions/forms/DataContext/Provider/Provider.js +50 -17
  376. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  377. package/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  378. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  379. package/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  380. package/extensions/forms/Field/Currency/CurrencyDocs.js +22 -0
  381. package/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  382. package/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  383. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  384. package/extensions/forms/Field/FieldDocs.d.ts +7 -0
  385. package/extensions/forms/Field/FieldDocs.js +18 -0
  386. package/extensions/forms/Field/FieldDocs.js.map +1 -1
  387. package/extensions/forms/Field/Number/Number.js +21 -16
  388. package/extensions/forms/Field/Number/Number.js.map +1 -1
  389. package/extensions/forms/Field/Option/Option.d.ts +2 -4
  390. package/extensions/forms/Field/Option/Option.js +0 -20
  391. package/extensions/forms/Field/Option/Option.js.map +1 -1
  392. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  393. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -15
  394. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  395. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  396. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +20 -0
  397. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  398. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  399. package/extensions/forms/Field/SelectCountry/SelectCountry.js +32 -16
  400. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  401. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  402. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +9 -0
  403. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  404. package/extensions/forms/Field/Selection/Selection.d.ts +40 -16
  405. package/extensions/forms/Field/Selection/Selection.js +70 -15
  406. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  407. package/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  408. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  409. package/extensions/forms/Field/String/String.d.ts +1 -0
  410. package/extensions/forms/Field/String/String.js +21 -2
  411. package/extensions/forms/Field/String/String.js.map +1 -1
  412. package/extensions/forms/Field/Toggle/Toggle.js +1 -1
  413. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  414. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  415. package/extensions/forms/Form/Handler/Handler.js +3 -1
  416. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  417. package/extensions/forms/Form/Isolation/Isolation.d.ts +41 -0
  418. package/extensions/forms/Form/Isolation/Isolation.js +97 -0
  419. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -0
  420. package/extensions/forms/Form/Isolation/IsolationCommitButton.d.ts +7 -0
  421. package/extensions/forms/Form/Isolation/IsolationCommitButton.js +43 -0
  422. package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -0
  423. package/extensions/forms/Form/Isolation/IsolationDocs.d.ts +3 -0
  424. package/extensions/forms/Form/Isolation/IsolationDocs.js +40 -0
  425. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -0
  426. package/extensions/forms/Form/Isolation/index.d.ts +2 -0
  427. package/extensions/forms/Form/Isolation/index.js +3 -0
  428. package/extensions/forms/Form/Isolation/index.js.map +1 -0
  429. package/extensions/forms/Form/Section/Section.js +2 -2
  430. package/extensions/forms/Form/Section/Section.js.map +1 -1
  431. package/extensions/forms/Form/SubmitButton/SubmitButton.js +6 -2
  432. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  433. package/extensions/forms/Form/Visibility/Visibility.d.ts +26 -10
  434. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  435. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  436. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  437. package/extensions/forms/Form/Visibility/useVisibility.js +22 -19
  438. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  439. package/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  440. package/extensions/forms/Form/data-context/clearData.js +10 -0
  441. package/extensions/forms/Form/data-context/clearData.js.map +1 -0
  442. package/extensions/forms/Form/index.d.ts +2 -0
  443. package/extensions/forms/Form/index.js +2 -0
  444. package/extensions/forms/Form/index.js.map +1 -1
  445. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  446. package/extensions/forms/Iterate/Array/types.d.ts +1 -4
  447. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  448. package/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  449. package/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  450. package/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  451. package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  452. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  453. package/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  454. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  455. package/extensions/forms/constants/locales/en-GB.d.ts +7 -0
  456. package/extensions/forms/constants/locales/en-GB.js +7 -0
  457. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  458. package/extensions/forms/constants/locales/en-US.d.ts +7 -0
  459. package/extensions/forms/constants/locales/index.d.ts +14 -0
  460. package/extensions/forms/constants/locales/nb-NO.d.ts +7 -0
  461. package/extensions/forms/constants/locales/nb-NO.js +7 -0
  462. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  463. package/extensions/forms/hooks/DataValueDocs.js +4 -4
  464. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  465. package/extensions/forms/hooks/useDataValue.d.ts +1 -0
  466. package/extensions/forms/hooks/useDataValue.js +18 -9
  467. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  468. package/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  469. package/extensions/forms/hooks/useFieldProps.js +50 -34
  470. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  471. package/extensions/forms/hooks/usePath.d.ts +1 -1
  472. package/extensions/forms/hooks/usePath.js +9 -8
  473. package/extensions/forms/hooks/usePath.js.map +1 -1
  474. package/extensions/forms/style/dnb-forms.css +1 -1
  475. package/extensions/forms/style/dnb-forms.min.css +1 -1
  476. package/extensions/forms/types.d.ts +16 -6
  477. package/extensions/forms/types.js.map +1 -1
  478. package/extensions/payment-card/utils/Types.js.map +1 -1
  479. package/package.json +1 -1
  480. package/shared/Eufemia.d.ts +1 -1
  481. package/shared/Eufemia.js +2 -2
  482. package/shared/Eufemia.js.map +1 -1
  483. package/shared/helpers/extendPropsWithContext.js +3 -3
  484. package/shared/helpers/extendPropsWithContext.js.map +1 -1
  485. package/shared/helpers/isAsync.js +2 -2
  486. package/shared/helpers/isAsync.js.map +1 -1
  487. package/style/core/scopes.scss +1 -1
  488. package/style/dnb-ui-basis.css +1 -1
  489. package/style/dnb-ui-basis.min.css +1 -1
  490. package/style/dnb-ui-body.css +1 -1
  491. package/style/dnb-ui-body.min.css +1 -1
  492. package/style/dnb-ui-components.css +1 -1
  493. package/style/dnb-ui-components.min.css +1 -1
  494. package/style/dnb-ui-core.css +1 -1
  495. package/style/dnb-ui-core.min.css +1 -1
  496. package/style/dnb-ui-extensions.css +1 -1
  497. package/style/dnb-ui-extensions.min.css +1 -1
  498. package/style/dnb-ui-forms.css +1 -1
  499. package/style/dnb-ui-forms.min.css +1 -1
  500. package/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  501. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  502. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  503. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  504. package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  505. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  506. package/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
  507. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  508. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  509. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  510. package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  511. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  512. package/style/themes/theme-ui/ui-theme-components.css +2 -2
  513. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  514. package/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  515. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  516. package/style/themes/theme-ui/ui-theme-forms.css +1 -1
  517. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  518. package/umd/dnb-ui-basis.min.js +1 -1
  519. package/umd/dnb-ui-components.min.js +1 -1
  520. package/umd/dnb-ui-elements.min.js +1 -1
  521. package/umd/dnb-ui-extensions.min.js +3 -3
  522. package/umd/dnb-ui-lib.min.js +1 -1
@@ -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","filterSubmitData","globalStatusId","required","disabled","locale","children","ProviderEvents","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete"],"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',\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 <a href=\"/uilib/extensions/forms/Form/schema-validation/#custom-ajv-instance-and-keywords\">Schema validation</a> 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 filterSubmitData: {\n doc: 'Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.',\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 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`).\",\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.\",\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.',\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}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProviderDocs.js","names":["ProviderProperties","defaultData","doc","type","status","data","id","schema","errorMessages","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","globalStatusId","required","disabled","locale","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',\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 filterSubmitData: {\n doc: 'Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.',\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 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`).\",\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.\",\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.',\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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"}
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const currencyProperties: PropertiesTableProps;
@@ -0,0 +1,22 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ import { numberProperties } from '../Number/NumberDocs';
5
+ export const currencyProperties = _objectSpread({
6
+ currency: {
7
+ doc: 'Defines what format to show the currency value in I.e `NOK` or `USD`.',
8
+ type: 'string',
9
+ status: 'optional'
10
+ },
11
+ currencyDisplay: {
12
+ doc: 'Defined the currency display style. Defaults to `code`.',
13
+ type: ['code', 'symbol', 'narrowSymbol', 'name'],
14
+ status: 'optional'
15
+ },
16
+ help: {
17
+ doc: 'Provide a help button. Object consisting of `title` and `content`.',
18
+ type: 'object',
19
+ status: 'optional'
20
+ }
21
+ }, numberProperties);
22
+ //# sourceMappingURL=CurrencyDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CurrencyDocs.js","names":["numberProperties","currencyProperties","_objectSpread","currency","doc","type","status","currencyDisplay","help"],"sources":["../../../../../../src/extensions/forms/Field/Currency/CurrencyDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { numberProperties } from '../Number/NumberDocs'\n\nexport const currencyProperties: PropertiesTableProps = {\n currency: {\n doc: 'Defines what format to show the currency value in I.e `NOK` or `USD`.',\n type: 'string',\n status: 'optional',\n },\n currencyDisplay: {\n doc: 'Defined the currency display style. Defaults to `code`.',\n type: ['code', 'symbol', 'narrowSymbol', 'name'],\n status: 'optional',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n ...numberProperties,\n}\n"],"mappings":";;;AACA,SAASA,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,kBAAwC,GAAAC,aAAA;EACnDC,QAAQ,EAAE;IACRC,GAAG,EAAE,uEAAuE;IAC5EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC;IAChDC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAE;IACJJ,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AAAC,GACEN,gBAAgB,CACpB"}
@@ -1,5 +1,5 @@
1
1
  import { FieldHelpProps, FieldProps } from '../../types';
2
- export type ExpiryProps = FieldHelpProps & FieldProps<string>;
2
+ export type ExpiryProps = FieldHelpProps & FieldProps<string, undefined | ''>;
3
3
  declare function Expiry(props: ExpiryProps): import("react/jsx-runtime").JSX.Element;
4
4
  declare namespace Expiry {
5
5
  var _supportsEufemiaSpacingProps: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Expiry.js","names":["React","useCallback","pickSpacingProps","useFieldProps","classnames","FieldBlock","MultiInputMask","HelpButton","useErrorMessage","useTranslation","useSharedTranslation","Expiry","props","_value$substring","Date","errorRequired","label","expiryLabel","DatePicker","placeholder_characters","placeholders","month","monthLabel","year","yearLabel","errorMessages","path","required","validateRequired","value","error","undefined","preparedProps","_objectSpread","fromInput","toExpiryString","id","className","hasError","info","warning","help","disabled","labelDescription","layout","htmlAttributes","handleFocus","handleBlur","handleChange","expiry","ensureValidMonth","substring","status","createElement","_extends","forId","stretch","values","statusState","onChange","onBlur","onFocus","delimiter","inputMode","inputs","mask","getMonthMask","placeholderCharacter","autoComplete","suffix","title","content","Object","join","firstMask","secondMask","firstDigit","charAt","isFirstDigitValid","test","secondDigit","isSecondDigitValid","_supportsEufemiaSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Expiry/Expiry.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport { FieldHelpProps, FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { useFieldProps } from '../../hooks'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { MultiInputMask } from '../../../../components/input-masked'\nimport type { MultiInputMaskValue } from '../../../../components/input-masked'\nimport { HelpButton } from '../../../../components'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport useTranslation from '../../hooks/useTranslation'\n\ntype ExpiryValue = MultiInputMaskValue<'month' | 'year'>\n\nexport type ExpiryProps = FieldHelpProps & FieldProps<string>\n\nfunction Expiry(props: ExpiryProps) {\n const {\n Date: { errorRequired },\n Expiry: { label: expiryLabel },\n } = useTranslation()\n\n const {\n DatePicker: {\n placeholder_characters: placeholders,\n month: monthLabel,\n year: yearLabel,\n },\n } = useSharedTranslation()\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: errorRequired,\n })\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n return required && !value ? error : undefined\n },\n []\n )\n\n const preparedProps: ExpiryProps = {\n ...props,\n errorMessages,\n fromInput: toExpiryString,\n validateRequired,\n }\n\n const {\n id,\n className,\n label = expiryLabel,\n error,\n hasError,\n info,\n warning,\n help,\n disabled,\n value = '',\n labelDescription,\n layout = 'vertical',\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const expiry: ExpiryValue = {\n month: ensureValidMonth(value?.substring(0, 2)),\n year: value?.substring(2, 4) ?? '',\n }\n\n const status = hasError\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-expiry', className)}\n id={id}\n forId={`${id}-input-month`}\n label={label}\n layout={layout}\n labelDescription={labelDescription}\n info={info}\n warning={warning}\n error={error}\n {...pickSpacingProps(props)}\n >\n <MultiInputMask\n stretch\n id={`${id}-input`}\n values={expiry}\n status={status}\n statusState={disabled ? 'disabled' : undefined}\n disabled={disabled}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n delimiter=\"/\"\n inputMode=\"numeric\"\n inputs={[\n {\n id: 'month',\n label: monthLabel,\n mask: getMonthMask(expiry?.month),\n placeholderCharacter: placeholders['month'],\n autoComplete: 'cc-exp-month',\n ...htmlAttributes,\n },\n {\n id: 'year',\n label: yearLabel,\n mask: [/[0-9]/, /[0-9]/],\n placeholderCharacter: placeholders['year'],\n autoComplete: 'cc-exp-year',\n ...htmlAttributes,\n },\n ]}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n />\n </FieldBlock>\n )\n\n function toExpiryString(values: ExpiryValue) {\n return Object.values(values).join('')\n }\n\n function ensureValidMonth(month: string) {\n // Return empty value if no month is given\n if (!month) {\n return ''\n }\n\n const [firstMask, secondMask] = getMonthMask(month)\n\n const firstDigit = month?.charAt(0)\n const isFirstDigitValid = firstMask.test(firstDigit)\n\n if (firstDigit && !isFirstDigitValid) {\n // Return empty value if the first digit is invalid\n return ''\n }\n\n const secondDigit = month?.charAt(1)\n const isSecondDigitValid = secondMask.test(secondDigit)\n\n if (secondDigit && !isSecondDigitValid) {\n // Return empty value if the second digit is invalid\n return ''\n }\n\n // Return given month of month value is valid\n return month\n }\n\n function getMonthMask(month: string) {\n const firstDigit = month?.charAt(0)\n\n return [\n /[0-1]/,\n firstDigit === '0' || firstDigit === '' ? /[1-9]/ : /[0-2]/,\n ]\n }\n}\n\nExpiry._supportsEufemiaSpacingProps = true\nexport default Expiry\n"],"mappings":"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"}
1
+ {"version":3,"file":"Expiry.js","names":["React","useCallback","pickSpacingProps","useFieldProps","classnames","FieldBlock","MultiInputMask","HelpButton","useErrorMessage","useTranslation","useSharedTranslation","Expiry","props","_value$substring","Date","errorRequired","label","expiryLabel","DatePicker","placeholder_characters","placeholders","month","monthLabel","year","yearLabel","errorMessages","path","required","validateRequired","value","error","undefined","preparedProps","_objectSpread","fromInput","toExpiryString","id","className","hasError","info","warning","help","disabled","labelDescription","layout","htmlAttributes","handleFocus","handleBlur","handleChange","expiry","ensureValidMonth","substring","status","createElement","_extends","forId","stretch","values","statusState","onChange","onBlur","onFocus","delimiter","inputMode","inputs","mask","getMonthMask","placeholderCharacter","autoComplete","suffix","title","content","Object","join","firstMask","secondMask","firstDigit","charAt","isFirstDigitValid","test","secondDigit","isSecondDigitValid","_supportsEufemiaSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Expiry/Expiry.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport { FieldHelpProps, FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { useFieldProps } from '../../hooks'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { MultiInputMask } from '../../../../components/input-masked'\nimport type { MultiInputMaskValue } from '../../../../components/input-masked'\nimport { HelpButton } from '../../../../components'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport useTranslation from '../../hooks/useTranslation'\n\ntype ExpiryValue = MultiInputMaskValue<'month' | 'year'>\n\nexport type ExpiryProps = FieldHelpProps &\n FieldProps<string, undefined | ''>\n\nfunction Expiry(props: ExpiryProps) {\n const {\n Date: { errorRequired },\n Expiry: { label: expiryLabel },\n } = useTranslation()\n\n const {\n DatePicker: {\n placeholder_characters: placeholders,\n month: monthLabel,\n year: yearLabel,\n },\n } = useSharedTranslation()\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: errorRequired,\n })\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n return required && !value ? error : undefined\n },\n []\n )\n\n const preparedProps: ExpiryProps = {\n ...props,\n errorMessages,\n fromInput: toExpiryString,\n validateRequired,\n }\n\n const {\n id,\n className,\n label = expiryLabel,\n error,\n hasError,\n info,\n warning,\n help,\n disabled,\n value = '',\n labelDescription,\n layout = 'vertical',\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const expiry: ExpiryValue = {\n month: ensureValidMonth(value?.substring(0, 2)),\n year: value?.substring(2, 4) ?? '',\n }\n\n const status = hasError\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-expiry', className)}\n id={id}\n forId={`${id}-input-month`}\n label={label}\n layout={layout}\n labelDescription={labelDescription}\n info={info}\n warning={warning}\n error={error}\n {...pickSpacingProps(props)}\n >\n <MultiInputMask\n stretch\n id={`${id}-input`}\n values={expiry}\n status={status}\n statusState={disabled ? 'disabled' : undefined}\n disabled={disabled}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n delimiter=\"/\"\n inputMode=\"numeric\"\n inputs={[\n {\n id: 'month',\n label: monthLabel,\n mask: getMonthMask(expiry?.month),\n placeholderCharacter: placeholders['month'],\n autoComplete: 'cc-exp-month',\n ...htmlAttributes,\n },\n {\n id: 'year',\n label: yearLabel,\n mask: [/[0-9]/, /[0-9]/],\n placeholderCharacter: placeholders['year'],\n autoComplete: 'cc-exp-year',\n ...htmlAttributes,\n },\n ]}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n />\n </FieldBlock>\n )\n\n function toExpiryString(values: ExpiryValue) {\n return Object.values(values).join('')\n }\n\n function ensureValidMonth(month: string) {\n // Return empty value if no month is given\n if (!month) {\n return ''\n }\n\n const [firstMask, secondMask] = getMonthMask(month)\n\n const firstDigit = month?.charAt(0)\n const isFirstDigitValid = firstMask.test(firstDigit)\n\n if (firstDigit && !isFirstDigitValid) {\n // Return empty value if the first digit is invalid\n return ''\n }\n\n const secondDigit = month?.charAt(1)\n const isSecondDigitValid = secondMask.test(secondDigit)\n\n if (secondDigit && !isSecondDigitValid) {\n // Return empty value if the second digit is invalid\n return ''\n }\n\n // Return given month of month value is valid\n return month\n }\n\n function getMonthMask(month: string) {\n const firstDigit = month?.charAt(0)\n\n return [\n /[0-1]/,\n firstDigit === '0' || firstDigit === '' ? /[1-9]/ : /[0-2]/,\n ]\n }\n}\n\nExpiry._supportsEufemiaSpacingProps = true\nexport default Expiry\n"],"mappings":"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"}
@@ -1,3 +1,10 @@
1
1
  import { PropertiesTableProps } from '../../../shared/types';
2
2
  export declare const fieldProperties: PropertiesTableProps;
3
3
  export declare const fieldEvents: PropertiesTableProps;
4
+ export declare const getFieldEventsWithTypes: (valueType?: {
5
+ type: string;
6
+ optional?: boolean;
7
+ }, additionalArgsType?: {
8
+ type: string;
9
+ optional?: boolean;
10
+ }) => PropertiesTableProps;
@@ -5,4 +5,20 @@ import { fieldBlockSharedProperties } from '../FieldBlock/FieldBlockDocs';
5
5
  import { dataValueEvents, dataValueProperties } from '../hooks/DataValueDocs';
6
6
  export const fieldProperties = _objectSpread(_objectSpread({}, dataValueProperties), fieldBlockSharedProperties);
7
7
  export const fieldEvents = _objectSpread({}, dataValueEvents);
8
+ export const getFieldEventsWithTypes = (valueType = undefined, additionalArgsType = undefined) => {
9
+ const value = valueType ? `value${valueType.optional ? '?' : ''}: ${valueType.type}` : 'value';
10
+ const add = additionalArgsType ? `, additionalArgs${additionalArgsType.optional ? '?' : ''}: ${additionalArgsType.type}` : '';
11
+ const typeString = `(${value}${add}) => void`;
12
+ return _objectSpread(_objectSpread({}, fieldEvents), {}, {
13
+ onChange: _objectSpread(_objectSpread({}, fieldEvents.onChange), {}, {
14
+ type: typeString
15
+ }),
16
+ onFocus: _objectSpread(_objectSpread({}, fieldEvents.onFocus), {}, {
17
+ type: typeString
18
+ }),
19
+ onBlur: _objectSpread(_objectSpread({}, fieldEvents.onBlur), {}, {
20
+ type: typeString
21
+ })
22
+ });
23
+ };
8
24
  //# sourceMappingURL=FieldDocs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDocs.js","names":["fieldBlockSharedProperties","dataValueEvents","dataValueProperties","fieldProperties","_objectSpread","fieldEvents"],"sources":["../../../../../src/extensions/forms/Field/FieldDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\nimport { fieldBlockSharedProperties } from '../FieldBlock/FieldBlockDocs'\nimport {\n dataValueEvents,\n dataValueProperties,\n} from '../hooks/DataValueDocs'\n\nexport const fieldProperties: PropertiesTableProps = {\n ...dataValueProperties,\n ...fieldBlockSharedProperties,\n}\n\nexport const fieldEvents: PropertiesTableProps = {\n ...dataValueEvents,\n}\n"],"mappings":";;;AACA,SAASA,0BAA0B,QAAQ,8BAA8B;AACzE,SACEC,eAAe,EACfC,mBAAmB,QACd,wBAAwB;AAE/B,OAAO,MAAMC,eAAqC,GAAAC,aAAA,CAAAA,aAAA,KAC7CF,mBAAmB,GACnBF,0BAA0B,CAC9B;AAED,OAAO,MAAMK,WAAiC,GAAAD,aAAA,KACzCH,eAAe,CACnB"}
1
+ {"version":3,"file":"FieldDocs.js","names":["fieldBlockSharedProperties","dataValueEvents","dataValueProperties","fieldProperties","_objectSpread","fieldEvents","getFieldEventsWithTypes","valueType","undefined","additionalArgsType","value","optional","type","add","typeString","onChange","onFocus","onBlur"],"sources":["../../../../../src/extensions/forms/Field/FieldDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\nimport { fieldBlockSharedProperties } from '../FieldBlock/FieldBlockDocs'\nimport {\n dataValueEvents,\n dataValueProperties,\n} from '../hooks/DataValueDocs'\n\nexport const fieldProperties: PropertiesTableProps = {\n ...dataValueProperties,\n ...fieldBlockSharedProperties,\n}\n\nexport const fieldEvents: PropertiesTableProps = {\n ...dataValueEvents,\n}\n\nexport const getFieldEventsWithTypes = (\n valueType: { type: string; optional?: boolean } = undefined,\n additionalArgsType: { type: string; optional?: boolean } = undefined\n): PropertiesTableProps => {\n const value = valueType\n ? `value${valueType.optional ? '?' : ''}: ${valueType.type}`\n : 'value'\n\n const add = additionalArgsType\n ? `, additionalArgs${additionalArgsType.optional ? '?' : ''}: ${\n additionalArgsType.type\n }`\n : ''\n\n const typeString = `(${value}${add}) => void`\n\n return {\n ...fieldEvents,\n onChange: {\n ...fieldEvents.onChange,\n type: typeString,\n },\n onFocus: {\n ...fieldEvents.onFocus,\n type: typeString,\n },\n onBlur: {\n ...fieldEvents.onBlur,\n type: typeString,\n },\n }\n}\n"],"mappings":";;;AACA,SAASA,0BAA0B,QAAQ,8BAA8B;AACzE,SACEC,eAAe,EACfC,mBAAmB,QACd,wBAAwB;AAE/B,OAAO,MAAMC,eAAqC,GAAAC,aAAA,CAAAA,aAAA,KAC7CF,mBAAmB,GACnBF,0BAA0B,CAC9B;AAED,OAAO,MAAMK,WAAiC,GAAAD,aAAA,KACzCH,eAAe,CACnB;AAED,OAAO,MAAMK,uBAAuB,GAAGA,CACrCC,SAA+C,GAAGC,SAAS,EAC3DC,kBAAwD,GAAGD,SAAS,KAC3C;EACzB,MAAME,KAAK,GAAGH,SAAS,GAClB,QAAOA,SAAS,CAACI,QAAQ,GAAG,GAAG,GAAG,EAAG,KAAIJ,SAAS,CAACK,IAAK,EAAC,GAC1D,OAAO;EAEX,MAAMC,GAAG,GAAGJ,kBAAkB,GACzB,mBAAkBA,kBAAkB,CAACE,QAAQ,GAAG,GAAG,GAAG,EAAG,KACxDF,kBAAkB,CAACG,IACpB,EAAC,GACF,EAAE;EAEN,MAAME,UAAU,GAAI,IAAGJ,KAAM,GAAEG,GAAI,WAAU;EAE7C,OAAAT,aAAA,CAAAA,aAAA,KACKC,WAAW;IACdU,QAAQ,EAAAX,aAAA,CAAAA,aAAA,KACHC,WAAW,CAACU,QAAQ;MACvBH,IAAI,EAAEE;IAAU,EACjB;IACDE,OAAO,EAAAZ,aAAA,CAAAA,aAAA,KACFC,WAAW,CAACW,OAAO;MACtBJ,IAAI,EAAEE;IAAU,EACjB;IACDG,MAAM,EAAAb,aAAA,CAAAA,aAAA,KACDC,WAAW,CAACY,MAAM;MACrBL,IAAI,EAAEE;IAAU;EACjB;AAEL,CAAC"}
@@ -15,8 +15,12 @@ import { pickSpacingProps } from '../../../../components/flex/utils';
15
15
  import { clamp } from '../../../../components/slider/SliderHelpers';
16
16
  import useErrorMessage from '../../hooks/useErrorMessage';
17
17
  import useTranslation from '../../hooks/useTranslation';
18
+ import DataContext from '../../DataContext/Context';
19
+ const defaultMinimum = Number.MIN_SAFE_INTEGER;
20
+ const defaultMaximum = Number.MAX_SAFE_INTEGER;
18
21
  function NumberComponent(props) {
19
- var _props$width, _sharedContext$transl, _sharedContext$transl2;
22
+ var _props$width, _dataContext$props2, _sharedContext$transl, _sharedContext$transl2;
23
+ const dataContext = useContext(DataContext);
20
24
  const fieldBlockContext = useContext(FieldBlockContext);
21
25
  const sharedContext = useContext(SharedContext);
22
26
  const translations = useTranslation();
@@ -42,11 +46,11 @@ function NumberComponent(props) {
42
46
  multipleOf: translations.NumberField.errorMultipleOf
43
47
  });
44
48
  const schema = useMemo(() => {
45
- var _props$schema;
49
+ var _props$schema, _props$minimum, _props$maximum;
46
50
  return (_props$schema = props.schema) !== null && _props$schema !== void 0 ? _props$schema : {
47
51
  type: 'number',
48
- minimum: props.minimum,
49
- maximum: props.maximum,
52
+ minimum: (_props$minimum = props.minimum) !== null && _props$minimum !== void 0 ? _props$minimum : defaultMinimum,
53
+ maximum: (_props$maximum = props.maximum) !== null && _props$maximum !== void 0 ? _props$maximum : defaultMaximum,
50
54
  exclusiveMinimum: props.exclusiveMinimum,
51
55
  exclusiveMaximum: props.exclusiveMaximum,
52
56
  multipleOf: props.multipleOf
@@ -67,12 +71,6 @@ function NumberComponent(props) {
67
71
  }
68
72
  return numberValue;
69
73
  }, [props.emptyValue]);
70
- const transformValue = useCallback((value, currentValue) => {
71
- if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER) {
72
- return currentValue;
73
- }
74
- return value;
75
- }, []);
76
74
  const maskProps = useMemo(() => {
77
75
  const mask_options = {
78
76
  prefix,
@@ -109,7 +107,6 @@ function NumberComponent(props) {
109
107
  schema,
110
108
  toInput,
111
109
  fromInput,
112
- transformValue,
113
110
  width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : fieldBlockContext !== null && fieldBlockContext !== void 0 && fieldBlockContext.composition ? 'stretch' : 'medium'
114
111
  });
115
112
  const {
@@ -124,8 +121,8 @@ function NumberComponent(props) {
124
121
  labelDescription,
125
122
  value,
126
123
  startWith = null,
127
- minimum = Number.MIN_SAFE_INTEGER,
128
- maximum = Number.MAX_SAFE_INTEGER,
124
+ minimum = defaultMinimum,
125
+ maximum = defaultMaximum,
129
126
  disabled,
130
127
  htmlAttributes,
131
128
  info,
@@ -140,15 +137,23 @@ function NumberComponent(props) {
140
137
  handleBlur,
141
138
  handleChange
142
139
  } = useFieldProps(preparedProps);
140
+ const {
141
+ handleSubmit
142
+ } = dataContext !== null && dataContext !== void 0 ? dataContext : {};
143
143
  const onKeyDownHandler = useCallback(({
144
- key,
145
144
  event
146
145
  }) => {
146
+ var _dataContext$props;
147
+ if (dataContext !== null && dataContext !== void 0 && (_dataContext$props = dataContext.props) !== null && _dataContext$props !== void 0 && _dataContext$props.isolate && event.key === 'Enter') {
148
+ var _event$preventDefault;
149
+ handleSubmit();
150
+ (_event$preventDefault = event.preventDefault) === null || _event$preventDefault === void 0 ? void 0 : _event$preventDefault.call(event);
151
+ }
147
152
  if (!showStepControls) {
148
153
  return;
149
154
  }
150
155
  let numberValue = null;
151
- switch (key) {
156
+ switch (event.key) {
152
157
  case 'ArrowUp':
153
158
  numberValue = clamp((value !== null && value !== void 0 ? value : startWith) + step, minimum, maximum);
154
159
  break;
@@ -163,7 +168,7 @@ function NumberComponent(props) {
163
168
  numberValue
164
169
  });
165
170
  }
166
- }, [handleChange, maximum, minimum, showStepControls, startWith, step, value]);
171
+ }, [dataContext === null || dataContext === void 0 ? void 0 : (_dataContext$props2 = dataContext.props) === null || _dataContext$props2 === void 0 ? void 0 : _dataContext$props2.isolate, handleChange, handleSubmit, maximum, minimum, showStepControls, startWith, step, value]);
167
172
  const fieldBlockProps = _objectSpread({
168
173
  className: classnames("dnb-forms-field-number dnb-input__border--tokens", className),
169
174
  contentClassName: classnames('dnb-forms-field-number__contents', showStepControls && 'dnb-forms-field-number__contents--has-controls', hasError && 'dnb-input__status--error', disabled && 'dnb-input--disabled'),
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","NumberComponent","props","_props$width","_sharedContext$transl","_sharedContext$transl2","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","suffix","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","type","toInput","external","undefined","fromInput","value","numberValue","emptyValue","transformValue","currentValue","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","_objectSpread","preparedProps","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","startWith","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","onKeyDownHandler","key","event","persist","preventDefault","fieldBlockProps","contentClassName","forId","contentWidth","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseClickHandler","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined | number, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\n prefix?: string\n suffix?: 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\nfunction NumberComponent(props: Props) {\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix,\n suffix,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\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 const transformValue = useCallback(\n (value: number, currentValue: number) => {\n if (\n value > Number.MAX_SAFE_INTEGER ||\n value < Number.MIN_SAFE_INTEGER\n ) {\n return currentValue\n }\n\n return value\n },\n []\n )\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n startWith = null,\n minimum = Number.MIN_SAFE_INTEGER,\n maximum = Number.MAX_SAFE_INTEGER,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const onKeyDownHandler = useCallback(\n ({ key, event }) => {\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (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 handleChange,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","DataContext","defaultMinimum","Number","MIN_SAFE_INTEGER","defaultMaximum","MAX_SAFE_INTEGER","NumberComponent","props","_props$width","_dataContext$props2","_sharedContext$transl","_sharedContext$transl2","dataContext","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","suffix","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","_props$minimum","_props$maximum","type","toInput","external","undefined","fromInput","value","numberValue","emptyValue","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","_objectSpread","preparedProps","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","startWith","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","handleSubmit","onKeyDownHandler","event","_dataContext$props","isolate","key","_event$preventDefault","preventDefault","call","persist","fieldBlockProps","contentClassName","forId","contentWidth","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseClickHandler","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext from '../../DataContext/Context'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined | number, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n }\n\nconst defaultMinimum = Number.MIN_SAFE_INTEGER\nconst defaultMaximum = Number.MAX_SAFE_INTEGER\n\nfunction NumberComponent(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix,\n suffix,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum ?? defaultMinimum,\n maximum: props.maximum ?? defaultMaximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n startWith = null,\n minimum = defaultMinimum,\n maximum = defaultMaximum,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const { handleSubmit } = dataContext ?? {}\n const onKeyDownHandler = useCallback(\n ({ event }: { event: React.KeyboardEvent<HTMLInputElement> }) => {\n if (dataContext?.props?.isolate && event.key === 'Enter') {\n handleSubmit() // So we commit the data to the outer context\n event.preventDefault?.() // And prevent the default form submit\n }\n\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (event.key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n dataContext?.props?.isolate,\n handleChange,\n handleSubmit,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
@@ -1,10 +1,8 @@
1
1
  import React from 'react';
2
2
  import type { FieldHelpProps, FieldProps } from '../../types';
3
- import { DrawerListProps } from '../../../../fragments/DrawerList';
4
3
  export type Props = FieldHelpProps & FieldProps<number | string> & {
5
- title?: string;
6
- text?: string;
4
+ title?: React.ReactNode;
5
+ text?: React.ReactNode;
7
6
  children?: React.ReactNode;
8
7
  };
9
8
  export default function Option({ className, title, text, children, }: Props): import("react/jsx-runtime").JSX.Element;
10
- export declare function makeOptions<T = DrawerListProps['data']>(children: React.ReactNode): T;
@@ -1,4 +1,3 @@
1
- var _em;
2
1
  import React from 'react';
3
2
  import classnames from 'classnames';
4
3
  export default function Option({
@@ -12,23 +11,4 @@ export default function Option({
12
11
  role: "option"
13
12
  }, children !== null && children !== void 0 ? children : title, text);
14
13
  }
15
- export function makeOptions(children) {
16
- return React.Children.map(children, child => {
17
- if (React.isValidElement(child) && child.type === Option) {
18
- var _child$props$value, _ref, _child$props$children, _child$props$children2;
19
- return child.props.text ? {
20
- selectedKey: String((_child$props$value = child.props.value) !== null && _child$props$value !== void 0 ? _child$props$value : ''),
21
- content: [(_ref = (_child$props$children = child.props.children) !== null && _child$props$children !== void 0 ? _child$props$children : child.props.title) !== null && _ref !== void 0 ? _ref : _em || (_em = React.createElement("em", null, "Untitled")), child.props.text]
22
- } : {
23
- selectedKey: child.props.value,
24
- content: (_child$props$children2 = child.props.children) !== null && _child$props$children2 !== void 0 ? _child$props$children2 : child.props.title
25
- };
26
- }
27
- if (child) {
28
- return {
29
- content: child
30
- };
31
- }
32
- }).filter(Boolean);
33
- }
34
14
  //# sourceMappingURL=Option.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","names":["React","classnames","Option","className","title","text","children","createElement","role","makeOptions","Children","map","child","isValidElement","type","_child$props$value","_ref","_child$props$children","_child$props$children2","props","selectedKey","String","value","content","_em","filter","Boolean"],"sources":["../../../../../../src/extensions/forms/Field/Option/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldHelpProps, FieldProps } from '../../types'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\n\nexport type Props = FieldHelpProps &\n FieldProps<number | string> & {\n title?: string\n text?: string\n children?: React.ReactNode\n }\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {children ?? title}\n {text}\n </span>\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode\n): T {\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === Option) {\n // Option components\n return child.props.text\n ? {\n selectedKey: String(child.props.value ?? ''),\n content: [\n child.props.children ?? child.props.title ?? (\n <em>Untitled</em>\n ),\n child.props.text,\n ],\n }\n : {\n selectedKey: child.props.value,\n content: child.props.children ?? child.props.title,\n }\n }\n\n if (child) {\n // For other children, just show them as content\n return {\n content: child,\n }\n }\n }).filter(Boolean) as T\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAWnC,eAAe,SAASC,MAAMA,CAAC;EAC7BC,SAAS;EACTC,KAAK;EACLC,IAAI;EACJC;AACK,CAAC,EAAE;EACR,OACEN,KAAA,CAAAO,aAAA;IACEJ,SAAS,EAAEF,UAAU,CAAC,wBAAwB,EAAEE,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZF,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIF,KAAK,EACjBC,IACG,CAAC;AAEX;AAEA,OAAO,SAASI,WAAWA,CACzBH,QAAyB,EACtB;EACH,OAAON,KAAK,CAACU,QAAQ,CAACC,GAAG,CAACL,QAAQ,EAAGM,KAAK,IAAK;IAC7C,IAAIZ,KAAK,CAACa,cAAc,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACE,IAAI,KAAKZ,MAAM,EAAE;MAAA,IAAAa,kBAAA,EAAAC,IAAA,EAAAC,qBAAA,EAAAC,sBAAA;MAExD,OAAON,KAAK,CAACO,KAAK,CAACd,IAAI,GACnB;QACEe,WAAW,EAAEC,MAAM,EAAAN,kBAAA,GAACH,KAAK,CAACO,KAAK,CAACG,KAAK,cAAAP,kBAAA,cAAAA,kBAAA,GAAI,EAAE,CAAC;QAC5CQ,OAAO,EAAE,EAAAP,IAAA,IAAAC,qBAAA,GACPL,KAAK,CAACO,KAAK,CAACb,QAAQ,cAAAW,qBAAA,cAAAA,qBAAA,GAAIL,KAAK,CAACO,KAAK,CAACf,KAAK,cAAAY,IAAA,cAAAA,IAAA,GAAAQ,GAAA,KAAAA,GAAA,GACvCxB,KAAA,CAAAO,aAAA,aAAI,UAAY,CAAC,GAEnBK,KAAK,CAACO,KAAK,CAACd,IAAI;MAEpB,CAAC,GACD;QACEe,WAAW,EAAER,KAAK,CAACO,KAAK,CAACG,KAAK;QAC9BC,OAAO,GAAAL,sBAAA,GAAEN,KAAK,CAACO,KAAK,CAACb,QAAQ,cAAAY,sBAAA,cAAAA,sBAAA,GAAIN,KAAK,CAACO,KAAK,CAACf;MAC/C,CAAC;IACP;IAEA,IAAIQ,KAAK,EAAE;MAET,OAAO;QACLW,OAAO,EAAEX;MACX,CAAC;IACH;EACF,CAAC,CAAC,CAACa,MAAM,CAACC,OAAO,CAAC;AACpB"}
1
+ {"version":3,"file":"Option.js","names":["React","classnames","Option","className","title","text","children","createElement","role"],"sources":["../../../../../../src/extensions/forms/Field/Option/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldHelpProps, FieldProps } from '../../types'\n\nexport type Props = FieldHelpProps &\n FieldProps<number | string> & {\n title?: React.ReactNode\n text?: React.ReactNode\n children?: React.ReactNode\n }\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {children ?? title}\n {text}\n </span>\n )\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAUnC,eAAe,SAASC,MAAMA,CAAC;EAC7BC,SAAS;EACTC,KAAK;EACLC,IAAI;EACJC;AACK,CAAC,EAAE;EACR,OACEN,KAAA,CAAAO,aAAA;IACEJ,SAAS,EAAEF,UAAU,CAAC,wBAAwB,EAAEE,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZF,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIF,KAAK,EACjBC,IACG,CAAC;AAEX"}
@@ -1,9 +1,12 @@
1
1
  import { InputMaskedProps } from '../../../../components/InputMasked';
2
2
  import { type CountryType } from '../../constants/countries';
3
3
  import { Props as StringFieldProps } from '../String';
4
- import { FieldHelpProps, FieldProps } from '../../types';
4
+ import { FieldHelpProps, FieldPropsWithExtraValue } from '../../types';
5
5
  import { CountryFilterSet } from '../SelectCountry';
6
- export type Props = FieldHelpProps & FieldProps<string, undefined | string> & {
6
+ export type Props = FieldHelpProps & FieldPropsWithExtraValue<string, {
7
+ country: string;
8
+ phone: string;
9
+ }, undefined | string> & {
7
10
  countryCodeFieldClassName?: string;
8
11
  numberFieldClassName?: string;
9
12
  countryCodePlaceholder?: string;
@@ -92,8 +92,7 @@ function PhoneNumber(props) {
92
92
  continuousValidation,
93
93
  validateUnchanged,
94
94
  omitCountryCodeField,
95
- handleFocus,
96
- handleBlur,
95
+ setHasFocus,
97
96
  handleChange,
98
97
  onCountryCodeChange,
99
98
  onNumberChange,
@@ -121,17 +120,29 @@ function PhoneNumber(props) {
121
120
  makeObject
122
121
  });
123
122
  }, [lang, filterCountries, ccFilter]);
124
- const callOnChange = useCallback(({
125
- countryCode = omitCountryCodeField ? emptyValue : countryCodeRef.current || emptyValue,
123
+ const getEventValues = useCallback(({
124
+ countryCode = countryCodeRef.current || emptyValue,
126
125
  phoneNumber = numberRef.current || emptyValue
127
- }) => {
128
- handleChange(joinValue([countryCode, phoneNumber]), omitCountryCodeField ? {
126
+ } = {}) => {
127
+ return _objectSpread(_objectSpread({}, !omitCountryCodeField ? {
128
+ countryCode
129
+ } : {}), {}, {
129
130
  phoneNumber
130
- } : {
131
+ });
132
+ }, [omitCountryCodeField, emptyValue]);
133
+ const callOnChange = useCallback(({
134
+ countryCode = undefined,
135
+ phoneNumber = undefined
136
+ }) => {
137
+ const eventValues = getEventValues({
131
138
  countryCode,
132
139
  phoneNumber
133
140
  });
134
- }, [omitCountryCodeField, emptyValue, handleChange]);
141
+ handleChange(joinValue([eventValues.countryCode, eventValues.phoneNumber]), eventValues);
142
+ }, [getEventValues, handleChange]);
143
+ const callOnBlurOrFocus = useCallback(hasFocus => {
144
+ setHasFocus(hasFocus, undefined, getEventValues());
145
+ }, [setHasFocus, getEventValues]);
135
146
  useMemo(() => {
136
147
  const [countryCode, phoneNumber] = splitValue(props.value || value);
137
148
  numberRef.current = phoneNumber;
@@ -161,7 +172,13 @@ function PhoneNumber(props) {
161
172
  });
162
173
  onNumberChange === null || onNumberChange === void 0 ? void 0 : onNumberChange(phoneNumber);
163
174
  }, [emptyValue, callOnChange, onNumberChange]);
164
- const onFocusHandler = useCallback(({
175
+ const handleOnBlur = useCallback(() => {
176
+ callOnBlurOrFocus(false);
177
+ }, [callOnBlurOrFocus]);
178
+ const handleOnFocus = useCallback(() => {
179
+ callOnBlurOrFocus(true);
180
+ }, [callOnBlurOrFocus]);
181
+ const handleCountryCodeFocus = useCallback(({
165
182
  updateData
166
183
  }) => {
167
184
  if (!wasFilled.current) {
@@ -169,8 +186,8 @@ function PhoneNumber(props) {
169
186
  updateCurrentDataSet();
170
187
  updateData(dataRef.current);
171
188
  }
172
- handleFocus();
173
- }, [handleFocus, updateCurrentDataSet]);
189
+ handleOnFocus();
190
+ }, [handleOnFocus, updateCurrentDataSet]);
174
191
  const onTypeHandler = useCallback(({
175
192
  value,
176
193
  updateData,
@@ -216,8 +233,8 @@ function PhoneNumber(props) {
216
233
  value: countryCodeRef.current,
217
234
  status: hasError ? 'error' : undefined,
218
235
  disabled: disabled,
219
- on_focus: onFocusHandler,
220
- on_blur: handleBlur,
236
+ on_focus: handleCountryCodeFocus,
237
+ on_blur: handleOnBlur,
221
238
  on_change: handleCountryCodeChange,
222
239
  on_type: onTypeHandler,
223
240
  independent_width: true,
@@ -235,8 +252,8 @@ function PhoneNumber(props) {
235
252
  label: label,
236
253
  placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : isDefault ? defaultPlaceholder : undefined,
237
254
  mask: numberMask !== null && numberMask !== void 0 ? numberMask : isDefault ? defaultMask : Array(12).fill(/\d/),
238
- onFocus: handleFocus,
239
- onBlur: handleBlur,
255
+ onFocus: handleOnFocus,
256
+ onBlur: handleOnBlur,
240
257
  onChange: handleNumberChange,
241
258
  value: numberRef.current,
242
259
  info: info,