@dnb/eufemia 10.52.0 → 10.53.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 (333) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  3. package/cjs/components/progress-indicator/ProgressIndicator.js +2 -2
  4. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  5. package/cjs/components/upload/UploadVerify.js +2 -2
  6. package/cjs/components/upload/UploadVerify.js.map +1 -1
  7. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
  8. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  9. package/cjs/extensions/forms/DataContext/Provider/Provider.js +3 -4
  10. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  11. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +5 -1
  12. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  13. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
  14. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +51 -11
  15. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  16. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
  17. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +25 -0
  18. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
  19. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +1 -1
  20. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
  21. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
  22. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +61 -17
  23. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  24. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
  25. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  26. package/cjs/extensions/forms/Field/Slider/Slider.js +3 -1
  27. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  28. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +21 -3
  29. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  30. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
  31. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  32. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
  33. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  34. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
  35. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
  36. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  37. package/cjs/extensions/forms/Iterate/Array/Array.js +51 -27
  38. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  39. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
  40. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  41. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +89 -73
  42. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  43. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +12 -12
  44. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +24 -24
  45. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  46. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  47. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -2
  48. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  49. package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -1
  50. package/cjs/extensions/forms/constants/locales/index.d.ts +4 -2
  51. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  52. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -2
  53. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  54. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +4 -2
  55. package/cjs/extensions/forms/hooks/useFieldProps.js +40 -8
  56. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  57. package/cjs/extensions/forms/hooks/useTranslation.d.ts +4 -1
  58. package/cjs/extensions/forms/hooks/useTranslation.js +6 -3
  59. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  60. package/cjs/extensions/forms/hooks/useValueProps.d.ts +1 -1
  61. package/cjs/extensions/forms/hooks/useValueProps.js +2 -2
  62. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  63. package/cjs/extensions/forms/style/dnb-forms.css +6 -0
  64. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  65. package/cjs/extensions/forms/types.d.ts +2 -1
  66. package/cjs/extensions/forms/types.js.map +1 -1
  67. package/cjs/shared/Context.d.ts +4 -4
  68. package/cjs/shared/Context.js.map +1 -1
  69. package/cjs/shared/Eufemia.d.ts +1 -1
  70. package/cjs/shared/Eufemia.js +2 -2
  71. package/cjs/shared/Eufemia.js.map +1 -1
  72. package/cjs/shared/defaults.d.ts +1 -0
  73. package/cjs/shared/defaults.js +3 -1
  74. package/cjs/shared/defaults.js.map +1 -1
  75. package/cjs/shared/useTranslation.d.ts +11 -4
  76. package/cjs/shared/useTranslation.js +68 -22
  77. package/cjs/shared/useTranslation.js.map +1 -1
  78. package/cjs/style/core/scopes.scss +1 -1
  79. package/cjs/style/dnb-ui-basis.css +1 -1
  80. package/cjs/style/dnb-ui-basis.min.css +1 -1
  81. package/cjs/style/dnb-ui-body.css +1 -1
  82. package/cjs/style/dnb-ui-body.min.css +1 -1
  83. package/cjs/style/dnb-ui-components.css +6 -0
  84. package/cjs/style/dnb-ui-components.min.css +1 -1
  85. package/cjs/style/dnb-ui-core.css +1 -1
  86. package/cjs/style/dnb-ui-core.min.css +1 -1
  87. package/cjs/style/dnb-ui-extensions.css +6 -0
  88. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  89. package/cjs/style/dnb-ui-forms.css +6 -0
  90. package/cjs/style/dnb-ui-forms.min.css +1 -1
  91. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +12 -0
  92. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  93. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -0
  94. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  95. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -0
  96. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  97. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +12 -0
  98. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  99. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -0
  100. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  101. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -0
  102. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  103. package/cjs/style/themes/theme-ui/ui-theme-components.css +12 -0
  104. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  105. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +6 -0
  106. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  107. package/cjs/style/themes/theme-ui/ui-theme-forms.css +6 -0
  108. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  109. package/components/number-format/NumberUtils.js.map +1 -1
  110. package/components/progress-indicator/ProgressIndicator.js +2 -2
  111. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  112. package/components/upload/UploadVerify.js +2 -2
  113. package/components/upload/UploadVerify.js.map +1 -1
  114. package/es/components/number-format/NumberUtils.js.map +1 -1
  115. package/es/components/progress-indicator/ProgressIndicator.js +2 -2
  116. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  117. package/es/components/upload/UploadVerify.js +2 -2
  118. package/es/components/upload/UploadVerify.js.map +1 -1
  119. package/es/extensions/forms/DataContext/Context.d.ts +1 -0
  120. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  121. package/es/extensions/forms/DataContext/Provider/Provider.js +3 -4
  122. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  123. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +5 -1
  124. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  125. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
  126. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +52 -12
  127. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  128. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
  129. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +18 -0
  130. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
  131. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +1 -1
  132. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
  133. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
  134. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +59 -17
  135. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  136. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
  137. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  138. package/es/extensions/forms/Field/Slider/Slider.js +3 -1
  139. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  140. package/es/extensions/forms/FieldBlock/FieldBlock.js +21 -3
  141. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  142. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
  143. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  144. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
  145. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  146. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
  147. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
  148. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  149. package/es/extensions/forms/Iterate/Array/Array.js +52 -28
  150. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  151. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
  152. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  153. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +89 -70
  154. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  155. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +12 -12
  156. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +24 -24
  157. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  158. package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  159. package/es/extensions/forms/constants/locales/en-GB.js +3 -2
  160. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  161. package/es/extensions/forms/constants/locales/en-US.d.ts +2 -1
  162. package/es/extensions/forms/constants/locales/index.d.ts +4 -2
  163. package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  164. package/es/extensions/forms/constants/locales/nb-NO.js +3 -2
  165. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  166. package/es/extensions/forms/hooks/useFieldProps.d.ts +4 -2
  167. package/es/extensions/forms/hooks/useFieldProps.js +40 -9
  168. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  169. package/es/extensions/forms/hooks/useTranslation.d.ts +4 -1
  170. package/es/extensions/forms/hooks/useTranslation.js +7 -4
  171. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  172. package/es/extensions/forms/hooks/useValueProps.d.ts +1 -1
  173. package/es/extensions/forms/hooks/useValueProps.js +2 -2
  174. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  175. package/es/extensions/forms/style/dnb-forms.css +6 -0
  176. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  177. package/es/extensions/forms/types.d.ts +2 -1
  178. package/es/extensions/forms/types.js.map +1 -1
  179. package/es/shared/Context.d.ts +4 -4
  180. package/es/shared/Context.js.map +1 -1
  181. package/es/shared/Eufemia.d.ts +1 -1
  182. package/es/shared/Eufemia.js +2 -2
  183. package/es/shared/Eufemia.js.map +1 -1
  184. package/es/shared/defaults.d.ts +1 -0
  185. package/es/shared/defaults.js +1 -0
  186. package/es/shared/defaults.js.map +1 -1
  187. package/es/shared/useTranslation.d.ts +11 -4
  188. package/es/shared/useTranslation.js +64 -22
  189. package/es/shared/useTranslation.js.map +1 -1
  190. package/es/style/core/scopes.scss +1 -1
  191. package/es/style/dnb-ui-basis.css +1 -1
  192. package/es/style/dnb-ui-basis.min.css +1 -1
  193. package/es/style/dnb-ui-body.css +1 -1
  194. package/es/style/dnb-ui-body.min.css +1 -1
  195. package/es/style/dnb-ui-components.css +6 -0
  196. package/es/style/dnb-ui-components.min.css +1 -1
  197. package/es/style/dnb-ui-core.css +1 -1
  198. package/es/style/dnb-ui-core.min.css +1 -1
  199. package/es/style/dnb-ui-extensions.css +6 -0
  200. package/es/style/dnb-ui-extensions.min.css +1 -1
  201. package/es/style/dnb-ui-forms.css +6 -0
  202. package/es/style/dnb-ui-forms.min.css +1 -1
  203. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +12 -0
  204. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  205. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -0
  206. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  207. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -0
  208. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  209. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +12 -0
  210. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  211. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -0
  212. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  213. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -0
  214. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  215. package/es/style/themes/theme-ui/ui-theme-components.css +12 -0
  216. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  217. package/es/style/themes/theme-ui/ui-theme-extensions.css +6 -0
  218. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  219. package/es/style/themes/theme-ui/ui-theme-forms.css +6 -0
  220. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  221. package/esm/dnb-ui-basis.min.mjs +1 -1
  222. package/esm/dnb-ui-components.min.mjs +1 -1
  223. package/esm/dnb-ui-elements.min.mjs +1 -1
  224. package/esm/dnb-ui-extensions.min.mjs +5 -5
  225. package/esm/dnb-ui-lib.min.mjs +1 -1
  226. package/extensions/forms/DataContext/Context.d.ts +1 -0
  227. package/extensions/forms/DataContext/Context.js.map +1 -1
  228. package/extensions/forms/DataContext/Provider/Provider.js +3 -4
  229. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  230. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +5 -1
  231. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  232. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
  233. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +52 -12
  234. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  235. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
  236. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +18 -0
  237. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
  238. package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +1 -1
  239. package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
  240. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
  241. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +59 -17
  242. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  243. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
  244. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  245. package/extensions/forms/Field/Slider/Slider.js +3 -1
  246. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  247. package/extensions/forms/FieldBlock/FieldBlock.js +21 -3
  248. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  249. package/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
  250. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  251. package/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
  252. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  253. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
  254. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
  255. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  256. package/extensions/forms/Iterate/Array/Array.js +52 -28
  257. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  258. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
  259. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  260. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +89 -73
  261. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  262. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +12 -12
  263. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +24 -24
  264. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  265. package/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  266. package/extensions/forms/constants/locales/en-GB.js +3 -2
  267. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  268. package/extensions/forms/constants/locales/en-US.d.ts +2 -1
  269. package/extensions/forms/constants/locales/index.d.ts +4 -2
  270. package/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  271. package/extensions/forms/constants/locales/nb-NO.js +3 -2
  272. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  273. package/extensions/forms/hooks/useFieldProps.d.ts +4 -2
  274. package/extensions/forms/hooks/useFieldProps.js +41 -9
  275. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  276. package/extensions/forms/hooks/useTranslation.d.ts +4 -1
  277. package/extensions/forms/hooks/useTranslation.js +7 -4
  278. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  279. package/extensions/forms/hooks/useValueProps.d.ts +1 -1
  280. package/extensions/forms/hooks/useValueProps.js +2 -2
  281. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  282. package/extensions/forms/style/dnb-forms.css +6 -0
  283. package/extensions/forms/style/dnb-forms.min.css +1 -1
  284. package/extensions/forms/types.d.ts +2 -1
  285. package/extensions/forms/types.js.map +1 -1
  286. package/package.json +1 -1
  287. package/shared/Context.d.ts +4 -4
  288. package/shared/Context.js.map +1 -1
  289. package/shared/Eufemia.d.ts +1 -1
  290. package/shared/Eufemia.js +2 -2
  291. package/shared/Eufemia.js.map +1 -1
  292. package/shared/defaults.d.ts +1 -0
  293. package/shared/defaults.js +1 -0
  294. package/shared/defaults.js.map +1 -1
  295. package/shared/useTranslation.d.ts +11 -4
  296. package/shared/useTranslation.js +64 -22
  297. package/shared/useTranslation.js.map +1 -1
  298. package/style/core/scopes.scss +1 -1
  299. package/style/dnb-ui-basis.css +1 -1
  300. package/style/dnb-ui-basis.min.css +1 -1
  301. package/style/dnb-ui-body.css +1 -1
  302. package/style/dnb-ui-body.min.css +1 -1
  303. package/style/dnb-ui-components.css +6 -0
  304. package/style/dnb-ui-components.min.css +1 -1
  305. package/style/dnb-ui-core.css +1 -1
  306. package/style/dnb-ui-core.min.css +1 -1
  307. package/style/dnb-ui-extensions.css +6 -0
  308. package/style/dnb-ui-extensions.min.css +1 -1
  309. package/style/dnb-ui-forms.css +6 -0
  310. package/style/dnb-ui-forms.min.css +1 -1
  311. package/style/themes/theme-eiendom/eiendom-theme-components.css +12 -0
  312. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  313. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -0
  314. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  315. package/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -0
  316. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  317. package/style/themes/theme-sbanken/sbanken-theme-components.css +12 -0
  318. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  319. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -0
  320. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  321. package/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -0
  322. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  323. package/style/themes/theme-ui/ui-theme-components.css +12 -0
  324. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  325. package/style/themes/theme-ui/ui-theme-extensions.css +6 -0
  326. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  327. package/style/themes/theme-ui/ui-theme-forms.css +6 -0
  328. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  329. package/umd/dnb-ui-basis.min.js +1 -1
  330. package/umd/dnb-ui-components.min.js +1 -1
  331. package/umd/dnb-ui-elements.min.js +1 -1
  332. package/umd/dnb-ui-extensions.min.js +5 -5
  333. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1,33 +1,73 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
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
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 React, { useMemo } from 'react';
4
+ import React, { useCallback, useMemo } from 'react';
5
5
  import StringField from '../String';
6
6
  import useErrorMessage from '../../hooks/useErrorMessage';
7
7
  import useTranslation from '../../hooks/useTranslation';
8
8
  function BankAccountNumber(props) {
9
- var _props$pattern, _props$label, _props$width;
10
- const translations = useTranslation().BankAccountNumber;
11
9
  const {
12
- validate = true,
13
- omitMask
14
- } = props;
10
+ errorBankAccountNumber,
11
+ errorBankAccountNumberLength,
12
+ errorRequired,
13
+ label
14
+ } = useTranslation().BankAccountNumber;
15
15
  const errorMessages = useErrorMessage(props.path, props.errorMessages, {
16
- required: translations.errorRequired,
17
- pattern: translations.errorPattern
16
+ required: errorRequired,
17
+ pattern: errorBankAccountNumber,
18
+ errorBankAccountNumber,
19
+ errorBankAccountNumberLength
18
20
  });
21
+ const bankAccountNumberValidator = useCallback(value => {
22
+ if (value !== undefined) {
23
+ const bankAccountNoIs11Digits = (value === null || value === void 0 ? void 0 : value.length) === 11;
24
+ if (!bankAccountNoIs11Digits) {
25
+ return Error(errorBankAccountNumberLength);
26
+ }
27
+ if (bankAccountNoIs11Digits && !isValidAccountNumber(value)) {
28
+ return Error(errorBankAccountNumber);
29
+ }
30
+ }
31
+ }, [errorBankAccountNumber, errorBankAccountNumberLength]);
32
+ const {
33
+ validate = true,
34
+ omitMask,
35
+ validator,
36
+ onBlurValidator = bankAccountNumberValidator,
37
+ label: labelProp,
38
+ width
39
+ } = props;
19
40
  const mask = useMemo(() => omitMask ? [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/] : [/\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, /\d/], [omitMask]);
41
+ const onBlurValidatorToUse = onBlurValidator === false ? undefined : onBlurValidator;
20
42
  const StringFieldProps = _objectSpread(_objectSpread({}, props), {}, {
21
43
  className: 'dnb-forms-field-bank-account-number',
22
- pattern: (_props$pattern = props.pattern) !== null && _props$pattern !== void 0 ? _props$pattern : validate ? '^[0-9]{11}$' : undefined,
23
- label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : translations.label,
44
+ label: labelProp !== null && labelProp !== void 0 ? labelProp : label,
24
45
  errorMessages,
25
46
  mask,
26
- width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : 'medium',
27
- inputMode: 'numeric'
47
+ width: width !== null && width !== void 0 ? width : 'medium',
48
+ inputMode: 'numeric',
49
+ validator: validate ? validator : undefined,
50
+ onBlurValidator: validate ? onBlurValidatorToUse : undefined,
51
+ exportValidators: {
52
+ bankAccountNumberValidator
53
+ }
28
54
  });
29
55
  return React.createElement(StringField, StringFieldProps);
30
56
  }
57
+ function isValidAccountNumber(digits) {
58
+ let checkDigit = 2;
59
+ let sum = 0;
60
+ for (let i = digits.length - 2; i >= 0; --i) {
61
+ sum += parseInt(digits.charAt(i)) * checkDigit;
62
+ checkDigit += 1;
63
+ if (checkDigit > 7) {
64
+ checkDigit = 2;
65
+ }
66
+ }
67
+ const result = 11 - sum % 11;
68
+ const finalCheckDigit = result === 11 ? 0 : result;
69
+ return parseInt(digits.charAt(digits.length - 1), 10) === finalCheckDigit;
70
+ }
31
71
  BankAccountNumber._supportsSpacingProps = true;
32
72
  export default BankAccountNumber;
33
73
  //# sourceMappingURL=BankAccountNumber.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BankAccountNumber.js","names":["React","useMemo","StringField","useErrorMessage","useTranslation","BankAccountNumber","props","_props$pattern","_props$label","_props$width","translations","validate","omitMask","errorMessages","path","required","errorRequired","pattern","errorPattern","mask","StringFieldProps","_objectSpread","className","undefined","label","width","inputMode","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumber.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\n\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps & {\n validate?: boolean\n omitMask?: boolean\n}\n\nfunction BankAccountNumber(props: Props) {\n const translations = useTranslation().BankAccountNumber\n const { validate = true, omitMask } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n const mask = useMemo(\n () =>\n omitMask\n ? [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const StringFieldProps: Props = {\n ...props,\n className: 'dnb-forms-field-bank-account-number',\n pattern: props.pattern ?? (validate ? '^[0-9]{11}$' : undefined),\n label: props.label ?? translations.label,\n errorMessages,\n mask,\n width: props.width ?? 'medium',\n inputMode: 'numeric',\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nBankAccountNumber._supportsSpacingProps = true\nexport default BankAccountNumber\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,WAAW,MAAqC,WAAW;AAElE,OAAOC,eAAe,MAAM,6BAA6B;AACzD,OAAOC,cAAc,MAAM,4BAA4B;AAOvD,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,cAAA,EAAAC,YAAA,EAAAC,YAAA;EACvC,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACC,iBAAiB;EACvD,MAAM;IAAEM,QAAQ,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGN,KAAK;EAE3C,MAAMO,aAAa,GAAGV,eAAe,CAACG,KAAK,CAACQ,IAAI,EAAER,KAAK,CAACO,aAAa,EAAE;IACrEE,QAAQ,EAAEL,YAAY,CAACM,aAAa;IACpCC,OAAO,EAAEP,YAAY,CAACQ;EACxB,CAAC,CAAC;EACF,MAAMC,IAAI,GAAGlB,OAAO,CAClB,MACEW,QAAQ,GACJ,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,GACD,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,EACP,CAACA,QAAQ,CACX,CAAC;EAED,MAAMQ,gBAAuB,GAAAC,aAAA,CAAAA,aAAA,KACxBf,KAAK;IACRgB,SAAS,EAAE,qCAAqC;IAChDL,OAAO,GAAAV,cAAA,GAAED,KAAK,CAACW,OAAO,cAAAV,cAAA,cAAAA,cAAA,GAAKI,QAAQ,GAAG,aAAa,GAAGY,SAAU;IAChEC,KAAK,GAAAhB,YAAA,GAAEF,KAAK,CAACkB,KAAK,cAAAhB,YAAA,cAAAA,YAAA,GAAIE,YAAY,CAACc,KAAK;IACxCX,aAAa;IACbM,IAAI;IACJM,KAAK,GAAAhB,YAAA,GAAEH,KAAK,CAACmB,KAAK,cAAAhB,YAAA,cAAAA,YAAA,GAAI,QAAQ;IAC9BiB,SAAS,EAAE;EAAS,EACrB;EAED,OAAO1B,KAAA,CAAA2B,aAAA,CAACzB,WAAW,EAAKkB,gBAAmB,CAAC;AAC9C;AAEAf,iBAAiB,CAACuB,qBAAqB,GAAG,IAAI;AAC9C,eAAevB,iBAAiB"}
1
+ {"version":3,"file":"BankAccountNumber.js","names":["React","useCallback","useMemo","StringField","useErrorMessage","useTranslation","BankAccountNumber","props","errorBankAccountNumber","errorBankAccountNumberLength","errorRequired","label","errorMessages","path","required","pattern","bankAccountNumberValidator","value","undefined","bankAccountNoIs11Digits","length","Error","isValidAccountNumber","validate","omitMask","validator","onBlurValidator","labelProp","width","mask","onBlurValidatorToUse","StringFieldProps","_objectSpread","className","inputMode","exportValidators","createElement","digits","checkDigit","sum","i","parseInt","charAt","result","finalCheckDigit","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\n\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\nimport { Validator } from '../../types'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n validate?: boolean\n omitMask?: boolean\n onBlurValidator?: Validator<string> | false\n}\n\nfunction BankAccountNumber(props: Props) {\n const {\n errorBankAccountNumber,\n errorBankAccountNumberLength,\n errorRequired,\n label,\n } = useTranslation().BankAccountNumber\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: errorRequired,\n pattern: errorBankAccountNumber,\n errorBankAccountNumber,\n errorBankAccountNumberLength,\n })\n\n const bankAccountNumberValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n const bankAccountNoIs11Digits = value?.length === 11\n\n if (!bankAccountNoIs11Digits) {\n return Error(errorBankAccountNumberLength)\n }\n\n if (bankAccountNoIs11Digits && !isValidAccountNumber(value)) {\n return Error(errorBankAccountNumber)\n }\n }\n },\n [errorBankAccountNumber, errorBankAccountNumberLength]\n )\n\n const {\n validate = true,\n omitMask,\n validator,\n onBlurValidator = bankAccountNumberValidator,\n label: labelProp,\n width,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n className: 'dnb-forms-field-bank-account-number',\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n validator: validate ? validator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: { bankAccountNumberValidator },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nfunction isValidAccountNumber(digits: string) {\n let checkDigit = 2\n let sum = 0\n\n for (let i = digits.length - 2; i >= 0; --i) {\n sum += parseInt(digits.charAt(i)) * checkDigit\n\n checkDigit += 1\n\n if (checkDigit > 7) {\n checkDigit = 2\n }\n }\n\n const result = 11 - (sum % 11)\n const finalCheckDigit = result === 11 ? 0 : result\n\n return parseInt(digits.charAt(digits.length - 1), 10) === finalCheckDigit\n}\n\nBankAccountNumber._supportsSpacingProps = true\nexport default BankAccountNumber\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const BankAccountNumberProperties: PropertiesTableProps;
@@ -0,0 +1,18 @@
1
+ export const BankAccountNumberProperties = {
2
+ validate: {
3
+ doc: 'Using this prop you can disable the default validation.',
4
+ type: 'boolean',
5
+ status: 'optional'
6
+ },
7
+ help: {
8
+ doc: 'Provide a help button. Object consisting of `title` and `content`.',
9
+ type: 'object',
10
+ status: 'optional'
11
+ },
12
+ onBlurValidator: {
13
+ doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to bank account number validation, using `bankAccountNumberValidator`. Can be disabled using `false`.',
14
+ type: 'function',
15
+ status: 'optional'
16
+ }
17
+ };
18
+ //# sourceMappingURL=BankAccountNumberDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BankAccountNumberDocs.js","names":["BankAccountNumberProperties","validate","doc","type","status","help","onBlurValidator"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const BankAccountNumberProperties: PropertiesTableProps = {\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\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 onBlurValidator: {\n doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to bank account number validation, using `bankAccountNumberValidator`. Can be disabled using `false`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,2BAAiD,GAAG;EAC/DC,QAAQ,EAAE;IACRC,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,8aAA8a;IACnbC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -10,7 +10,7 @@ export const OrganizationNumberProperties = {
10
10
  status: 'optional'
11
11
  },
12
12
  onBlurValidator: {
13
- doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to organization number validation, using `organizationNumberValidator`.',
13
+ doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to organization number validation, using `organizationNumberValidator`. Can be disabled using `false`.',
14
14
  type: 'function',
15
15
  status: 'optional'
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OrganizationNumberDocs.js","names":["OrganizationNumberProperties","validate","doc","type","status","help","onBlurValidator"],"sources":["../../../../../../src/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const OrganizationNumberProperties: PropertiesTableProps = {\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\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 onBlurValidator: {\n doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to organization number validation, using `organizationNumberValidator`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,4BAAkD,GAAG;EAChEC,QAAQ,EAAE;IACRC,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,gZAAgZ;IACrZC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"OrganizationNumberDocs.js","names":["OrganizationNumberProperties","validate","doc","type","status","help","onBlurValidator"],"sources":["../../../../../../src/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const OrganizationNumberProperties: PropertiesTableProps = {\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\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 onBlurValidator: {\n doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to organization number validation, using `organizationNumberValidator`. Can be disabled using `false`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,4BAAkD,GAAG;EAChEC,QAAQ,EAAE;IACRC,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,+aAA+a;IACpbC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -1,7 +1,15 @@
1
1
  import { Props as FieldBlockProps } from '../../FieldBlock';
2
2
  import { Props as StringFieldProps } from '../String';
3
- import { FieldHelpProps } from '../../types';
4
- export type Props = FieldHelpProps & Omit<FieldBlockProps, 'children'> & Partial<Record<'postalCode' | 'city', StringFieldProps>>;
3
+ import { FieldHelpProps, Path } from '../../types';
4
+ export type Props = FieldHelpProps & Omit<FieldBlockProps, 'children'> & Partial<Record<'postalCode' | 'city', StringFieldProps>> & {
5
+ /**
6
+ * Defines which country the postal code and city is for.
7
+ * Setting it to anything other than `no` will remove the default norwegian postal code pattern.
8
+ * You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`.
9
+ * Default: `NO`
10
+ */
11
+ country?: Path | string;
12
+ };
5
13
  declare function PostalCodeAndCity(props: Props): import("react/jsx-runtime").JSX.Element;
6
14
  declare namespace PostalCodeAndCity {
7
15
  var _supportsSpacingProps: boolean;
@@ -1,52 +1,94 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- const _excluded = ["postalCode", "city", "help", "width"];
4
+ const _excluded = ["postalCode", "city", "help", "width", "country"];
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
- import React from 'react';
7
+ import React, { useCallback } from 'react';
8
8
  import classnames from 'classnames';
9
9
  import StringField from '../String';
10
10
  import CompositionField from '../Composition';
11
11
  import useTranslation from '../../hooks/useTranslation';
12
+ import useDataValue from '../../hooks/useDataValue';
13
+ import { COUNTRY as defaultCountry } from '../../../../shared/defaults';
12
14
  function PostalCodeAndCity(props) {
13
- var _postalCode$pattern, _postalCode$label, _postalCode$placehold, _city$label, _city$pattern;
14
15
  const translations = useTranslation();
16
+ const {
17
+ getSourceValue
18
+ } = useDataValue();
15
19
  const {
16
20
  postalCode = {},
17
21
  city = {},
18
22
  help,
19
- width = 'large'
23
+ width = 'large',
24
+ country = defaultCountry
20
25
  } = props,
21
26
  fieldBlockProps = _objectWithoutProperties(props, _excluded);
27
+ const {
28
+ pattern: cityPattern,
29
+ className: cityClassName,
30
+ label: cityLabel,
31
+ width: cityWidth,
32
+ errorMessages: cityErrorMessages
33
+ } = city;
34
+ const countryValue = getSourceValue(country);
35
+ const handleDefaults = useCallback(postalCode => {
36
+ const props = {};
37
+ switch (countryValue) {
38
+ case defaultCountry:
39
+ case 'DK':
40
+ case 'CH':
41
+ {
42
+ props.mask = [/\d/, /\d/, /\d/, /\d/];
43
+ props.pattern = '^[0-9]{4}$';
44
+ props.placeholder = '0000';
45
+ break;
46
+ }
47
+ default:
48
+ props.width = '8rem';
49
+ break;
50
+ }
51
+ return _objectSpread(_objectSpread({}, props), postalCode);
52
+ }, [countryValue]);
53
+ const {
54
+ mask: postalCodeMask,
55
+ pattern: postalCodePattern,
56
+ placeholder: postalCodePlaceHolder,
57
+ className: postalCodeClassName,
58
+ label: postalCodeLabel,
59
+ width: postalCodeWidth,
60
+ errorMessages: postalCodeErrorMessages
61
+ } = handleDefaults(postalCode);
62
+ const postalCodeValidationProps = {
63
+ mask: postalCodeMask,
64
+ pattern: postalCodePattern,
65
+ placeholder: postalCodePlaceHolder
66
+ };
22
67
  return React.createElement(CompositionField, _extends({
23
68
  className: classnames('dnb-forms-field-postal-code-and-city', props.className)
24
69
  }, fieldBlockProps, {
25
70
  width: width
26
- }), React.createElement(StringField, _extends({}, postalCode, {
27
- pattern: (_postalCode$pattern = postalCode.pattern) !== null && _postalCode$pattern !== void 0 ? _postalCode$pattern : '^[0-9]{4}$',
28
- mask: [/\d/, /\d/, /\d/, /\d/],
29
- className: classnames('dnb-forms-field-postal-code-and-city__postal-code', postalCode.className),
30
- label: (_postalCode$label = postalCode.label) !== null && _postalCode$label !== void 0 ? _postalCode$label : translations.PostalCode.label,
71
+ }), React.createElement(StringField, _extends({}, postalCode, postalCodeValidationProps, {
72
+ className: classnames('dnb-forms-field-postal-code-and-city__postal-code', postalCodeClassName),
73
+ label: postalCodeLabel !== null && postalCodeLabel !== void 0 ? postalCodeLabel : translations.PostalCode.label,
31
74
  errorMessages: _objectSpread({
32
75
  required: translations.PostalCode.errorRequired,
33
76
  pattern: translations.PostalCode.errorPattern
34
- }, postalCode.errorMessages),
35
- placeholder: (_postalCode$placehold = postalCode.placeholder) !== null && _postalCode$placehold !== void 0 ? _postalCode$placehold : '0000',
36
- width: false,
77
+ }, postalCodeErrorMessages),
78
+ width: postalCodeWidth !== null && postalCodeWidth !== void 0 ? postalCodeWidth : false,
37
79
  inputClassName: "dnb-forms-field-postal-code-and-city__postal-code-input",
38
80
  inputMode: "numeric",
39
81
  autoComplete: "postal-code"
40
82
  })), React.createElement(StringField, _extends({}, city, {
41
- className: classnames('dnb-forms-field-postal-code-and-city__city', city.className),
42
- label: (_city$label = city.label) !== null && _city$label !== void 0 ? _city$label : translations.City.label,
83
+ className: classnames('dnb-forms-field-postal-code-and-city__city', cityClassName),
84
+ label: cityLabel !== null && cityLabel !== void 0 ? cityLabel : translations.City.label,
43
85
  errorMessages: _objectSpread({
44
86
  required: translations.City.errorRequired,
45
87
  pattern: translations.City.errorPattern
46
- }, city.errorMessages),
47
- pattern: (_city$pattern = city.pattern) !== null && _city$pattern !== void 0 ? _city$pattern : '^[A-Za-zÆØÅæøå -]+$',
88
+ }, cityErrorMessages),
89
+ pattern: cityPattern !== null && cityPattern !== void 0 ? cityPattern : '^[A-Za-zÆØÅæøå -]+$',
48
90
  trim: true,
49
- width: "stretch",
91
+ width: cityWidth !== null && cityWidth !== void 0 ? cityWidth : 'stretch',
50
92
  autoComplete: "address-level2",
51
93
  help: help
52
94
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"PostalCodeAndCity.js","names":["React","classnames","StringField","CompositionField","useTranslation","PostalCodeAndCity","props","_postalCode$pattern","_postalCode$label","_postalCode$placehold","_city$label","_city$pattern","translations","postalCode","city","help","width","fieldBlockProps","_objectWithoutProperties","_excluded","createElement","_extends","className","pattern","mask","label","PostalCode","errorMessages","_objectSpread","required","errorRequired","errorPattern","placeholder","inputClassName","inputMode","autoComplete","City","trim","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { Props as FieldBlockProps } from '../../FieldBlock'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport CompositionField from '../Composition'\nimport { FieldHelpProps } from '../../types'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = FieldHelpProps &\n Omit<FieldBlockProps, 'children'> &\n Partial<Record<'postalCode' | 'city', StringFieldProps>>\n\nfunction PostalCodeAndCity(props: Props) {\n const translations = useTranslation()\n\n const {\n postalCode = {},\n city = {},\n help,\n width = 'large',\n ...fieldBlockProps\n } = props\n\n return (\n <CompositionField\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldBlockProps}\n width={width}\n >\n <StringField\n {...postalCode}\n pattern={postalCode.pattern ?? '^[0-9]{4}$'}\n mask={[/\\d/, /\\d/, /\\d/, /\\d/]}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCode.className\n )}\n label={postalCode.label ?? translations.PostalCode.label}\n errorMessages={{\n required: translations.PostalCode.errorRequired,\n pattern: translations.PostalCode.errorPattern,\n ...postalCode.errorMessages,\n }}\n placeholder={postalCode.placeholder ?? '0000'}\n width={false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n />\n <StringField\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n city.className\n )}\n label={city.label ?? translations.City.label}\n errorMessages={{\n required: translations.City.errorRequired,\n pattern: translations.City.errorPattern,\n ...city.errorMessages,\n }}\n pattern={city.pattern ?? '^[A-Za-zÆØÅæøå -]+$'}\n trim\n width=\"stretch\"\n autoComplete=\"address-level2\"\n help={help}\n />\n </CompositionField>\n )\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,gBAAgB,MAAM,gBAAgB;AAE7C,OAAOC,cAAc,MAAM,4BAA4B;AAMvD,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,mBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,WAAA,EAAAC,aAAA;EACvC,MAAMC,YAAY,GAAGR,cAAc,CAAC,CAAC;EAErC,MAAM;MACJS,UAAU,GAAG,CAAC,CAAC;MACfC,IAAI,GAAG,CAAC,CAAC;MACTC,IAAI;MACJC,KAAK,GAAG;IAEV,CAAC,GAAGV,KAAK;IADJW,eAAe,GAAAC,wBAAA,CAChBZ,KAAK,EAAAa,SAAA;EAET,OACEnB,KAAA,CAAAoB,aAAA,CAACjB,gBAAgB,EAAAkB,QAAA;IACfC,SAAS,EAAErB,UAAU,CACnB,sCAAsC,EACtCK,KAAK,CAACgB,SACR;EAAE,GACEL,eAAe;IACnBD,KAAK,EAAEA;EAAM,IAEbhB,KAAA,CAAAoB,aAAA,CAAClB,WAAW,EAAAmB,QAAA,KACNR,UAAU;IACdU,OAAO,GAAAhB,mBAAA,GAAEM,UAAU,CAACU,OAAO,cAAAhB,mBAAA,cAAAA,mBAAA,GAAI,YAAa;IAC5CiB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE;IAC/BF,SAAS,EAAErB,UAAU,CACnB,mDAAmD,EACnDY,UAAU,CAACS,SACb,CAAE;IACFG,KAAK,GAAAjB,iBAAA,GAAEK,UAAU,CAACY,KAAK,cAAAjB,iBAAA,cAAAA,iBAAA,GAAII,YAAY,CAACc,UAAU,CAACD,KAAM;IACzDE,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAEjB,YAAY,CAACc,UAAU,CAACI,aAAa;MAC/CP,OAAO,EAAEX,YAAY,CAACc,UAAU,CAACK;IAAY,GAC1ClB,UAAU,CAACc,aAAa,CAC3B;IACFK,WAAW,GAAAvB,qBAAA,GAAEI,UAAU,CAACmB,WAAW,cAAAvB,qBAAA,cAAAA,qBAAA,GAAI,MAAO;IAC9CO,KAAK,EAAE,KAAM;IACbiB,cAAc,EAAC,yDAAyD;IACxEC,SAAS,EAAC,SAAS;IACnBC,YAAY,EAAC;EAAa,EAC3B,CAAC,EACFnC,KAAA,CAAAoB,aAAA,CAAClB,WAAW,EAAAmB,QAAA,KACNP,IAAI;IACRQ,SAAS,EAAErB,UAAU,CACnB,4CAA4C,EAC5Ca,IAAI,CAACQ,SACP,CAAE;IACFG,KAAK,GAAAf,WAAA,GAAEI,IAAI,CAACW,KAAK,cAAAf,WAAA,cAAAA,WAAA,GAAIE,YAAY,CAACwB,IAAI,CAACX,KAAM;IAC7CE,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAEjB,YAAY,CAACwB,IAAI,CAACN,aAAa;MACzCP,OAAO,EAAEX,YAAY,CAACwB,IAAI,CAACL;IAAY,GACpCjB,IAAI,CAACa,aAAa,CACrB;IACFJ,OAAO,GAAAZ,aAAA,GAAEG,IAAI,CAACS,OAAO,cAAAZ,aAAA,cAAAA,aAAA,GAAI,qBAAsB;IAC/C0B,IAAI;IACJrB,KAAK,EAAC,SAAS;IACfmB,YAAY,EAAC,gBAAgB;IAC7BpB,IAAI,EAAEA;EAAK,EACZ,CACe,CAAC;AAEvB;AAEAV,iBAAiB,CAACiC,qBAAqB,GAAG,IAAI;AAC9C,eAAejC,iBAAiB"}
1
+ {"version":3,"file":"PostalCodeAndCity.js","names":["React","useCallback","classnames","StringField","CompositionField","useTranslation","useDataValue","COUNTRY","defaultCountry","PostalCodeAndCity","props","translations","getSourceValue","postalCode","city","help","width","country","fieldBlockProps","_objectWithoutProperties","_excluded","pattern","cityPattern","className","cityClassName","label","cityLabel","cityWidth","errorMessages","cityErrorMessages","countryValue","handleDefaults","mask","placeholder","_objectSpread","postalCodeMask","postalCodePattern","postalCodePlaceHolder","postalCodeClassName","postalCodeLabel","postalCodeWidth","postalCodeErrorMessages","postalCodeValidationProps","createElement","_extends","PostalCode","required","errorRequired","errorPattern","inputClassName","inputMode","autoComplete","City","trim","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport classnames from 'classnames'\nimport { Props as FieldBlockProps } from '../../FieldBlock'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport CompositionField from '../Composition'\nimport { FieldHelpProps, Path } from '../../types'\nimport useTranslation from '../../hooks/useTranslation'\nimport useDataValue from '../../hooks/useDataValue'\nimport { COUNTRY as defaultCountry } from '../../../../shared/defaults'\n\nexport type Props = FieldHelpProps &\n Omit<FieldBlockProps, 'children'> &\n Partial<Record<'postalCode' | 'city', StringFieldProps>> & {\n /**\n * Defines which country the postal code and city is for.\n * Setting it to anything other than `no` will remove the default norwegian postal code pattern.\n * You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`.\n * Default: `NO`\n */\n // Add type for all country codes?\n country?: Path | string\n }\n\nfunction PostalCodeAndCity(props: Props) {\n const translations = useTranslation()\n const { getSourceValue } = useDataValue()\n\n const {\n postalCode = {},\n city = {},\n help,\n width = 'large',\n country = defaultCountry,\n ...fieldBlockProps\n } = props\n\n const {\n pattern: cityPattern,\n className: cityClassName,\n label: cityLabel,\n width: cityWidth,\n errorMessages: cityErrorMessages,\n } = city\n\n const countryValue = getSourceValue(country)\n const handleDefaults = useCallback(\n (postalCode: StringFieldProps) => {\n const props: StringFieldProps = {}\n\n switch (countryValue) {\n case defaultCountry:\n case 'DK':\n case 'CH': {\n props.mask = [/\\d/, /\\d/, /\\d/, /\\d/]\n props.pattern = '^[0-9]{4}$'\n props.placeholder = '0000'\n break\n }\n default:\n props.width = '8rem'\n break\n }\n\n return { ...props, ...postalCode }\n },\n [countryValue]\n )\n\n const {\n mask: postalCodeMask,\n pattern: postalCodePattern,\n placeholder: postalCodePlaceHolder,\n className: postalCodeClassName,\n label: postalCodeLabel,\n width: postalCodeWidth,\n errorMessages: postalCodeErrorMessages,\n } = handleDefaults(postalCode)\n\n const postalCodeValidationProps = {\n mask: postalCodeMask,\n pattern: postalCodePattern,\n placeholder: postalCodePlaceHolder,\n }\n\n return (\n <CompositionField\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldBlockProps}\n width={width}\n >\n <StringField\n {...postalCode}\n {...postalCodeValidationProps}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCodeClassName\n )}\n label={postalCodeLabel ?? translations.PostalCode.label}\n errorMessages={{\n required: translations.PostalCode.errorRequired,\n pattern: translations.PostalCode.errorPattern,\n ...postalCodeErrorMessages,\n }}\n width={postalCodeWidth ?? false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n />\n <StringField\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n cityClassName\n )}\n label={cityLabel ?? translations.City.label}\n errorMessages={{\n required: translations.City.errorRequired,\n pattern: translations.City.errorPattern,\n ...cityErrorMessages,\n }}\n pattern={cityPattern ?? '^[A-Za-zÆØÅæøå -]+$'}\n trim\n width={cityWidth ?? 'stretch'}\n autoComplete=\"address-level2\"\n help={help}\n />\n </CompositionField>\n )\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,gBAAgB,MAAM,gBAAgB;AAE7C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,YAAY,MAAM,0BAA0B;AACnD,SAASC,OAAO,IAAIC,cAAc,QAAQ,6BAA6B;AAevE,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EACvC,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC;EACrC,MAAM;IAAEO;EAAe,CAAC,GAAGN,YAAY,CAAC,CAAC;EAEzC,MAAM;MACJO,UAAU,GAAG,CAAC,CAAC;MACfC,IAAI,GAAG,CAAC,CAAC;MACTC,IAAI;MACJC,KAAK,GAAG,OAAO;MACfC,OAAO,GAAGT;IAEZ,CAAC,GAAGE,KAAK;IADJQ,eAAe,GAAAC,wBAAA,CAChBT,KAAK,EAAAU,SAAA;EAET,MAAM;IACJC,OAAO,EAAEC,WAAW;IACpBC,SAAS,EAAEC,aAAa;IACxBC,KAAK,EAAEC,SAAS;IAChBV,KAAK,EAAEW,SAAS;IAChBC,aAAa,EAAEC;EACjB,CAAC,GAAGf,IAAI;EAER,MAAMgB,YAAY,GAAGlB,cAAc,CAACK,OAAO,CAAC;EAC5C,MAAMc,cAAc,GAAG9B,WAAW,CAC/BY,UAA4B,IAAK;IAChC,MAAMH,KAAuB,GAAG,CAAC,CAAC;IAElC,QAAQoB,YAAY;MAClB,KAAKtB,cAAc;MACnB,KAAK,IAAI;MACT,KAAK,IAAI;QAAE;UACTE,KAAK,CAACsB,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;UACrCtB,KAAK,CAACW,OAAO,GAAG,YAAY;UAC5BX,KAAK,CAACuB,WAAW,GAAG,MAAM;UAC1B;QACF;MACA;QACEvB,KAAK,CAACM,KAAK,GAAG,MAAM;QACpB;IACJ;IAEA,OAAAkB,aAAA,CAAAA,aAAA,KAAYxB,KAAK,GAAKG,UAAU;EAClC,CAAC,EACD,CAACiB,YAAY,CACf,CAAC;EAED,MAAM;IACJE,IAAI,EAAEG,cAAc;IACpBd,OAAO,EAAEe,iBAAiB;IAC1BH,WAAW,EAAEI,qBAAqB;IAClCd,SAAS,EAAEe,mBAAmB;IAC9Bb,KAAK,EAAEc,eAAe;IACtBvB,KAAK,EAAEwB,eAAe;IACtBZ,aAAa,EAAEa;EACjB,CAAC,GAAGV,cAAc,CAAClB,UAAU,CAAC;EAE9B,MAAM6B,yBAAyB,GAAG;IAChCV,IAAI,EAAEG,cAAc;IACpBd,OAAO,EAAEe,iBAAiB;IAC1BH,WAAW,EAAEI;EACf,CAAC;EAED,OACErC,KAAA,CAAA2C,aAAA,CAACvC,gBAAgB,EAAAwC,QAAA;IACfrB,SAAS,EAAErB,UAAU,CACnB,sCAAsC,EACtCQ,KAAK,CAACa,SACR;EAAE,GACEL,eAAe;IACnBF,KAAK,EAAEA;EAAM,IAEbhB,KAAA,CAAA2C,aAAA,CAACxC,WAAW,EAAAyC,QAAA,KACN/B,UAAU,EACV6B,yBAAyB;IAC7BnB,SAAS,EAAErB,UAAU,CACnB,mDAAmD,EACnDoC,mBACF,CAAE;IACFb,KAAK,EAAEc,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI5B,YAAY,CAACkC,UAAU,CAACpB,KAAM;IACxDG,aAAa,EAAAM,aAAA;MACXY,QAAQ,EAAEnC,YAAY,CAACkC,UAAU,CAACE,aAAa;MAC/C1B,OAAO,EAAEV,YAAY,CAACkC,UAAU,CAACG;IAAY,GAC1CP,uBAAuB,CAC1B;IACFzB,KAAK,EAAEwB,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI,KAAM;IAChCS,cAAc,EAAC,yDAAyD;IACxEC,SAAS,EAAC,SAAS;IACnBC,YAAY,EAAC;EAAa,EAC3B,CAAC,EACFnD,KAAA,CAAA2C,aAAA,CAACxC,WAAW,EAAAyC,QAAA,KACN9B,IAAI;IACRS,SAAS,EAAErB,UAAU,CACnB,4CAA4C,EAC5CsB,aACF,CAAE;IACFC,KAAK,EAAEC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIf,YAAY,CAACyC,IAAI,CAAC3B,KAAM;IAC5CG,aAAa,EAAAM,aAAA;MACXY,QAAQ,EAAEnC,YAAY,CAACyC,IAAI,CAACL,aAAa;MACzC1B,OAAO,EAAEV,YAAY,CAACyC,IAAI,CAACJ;IAAY,GACpCnB,iBAAiB,CACpB;IACFR,OAAO,EAAEC,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,qBAAsB;IAC9C+B,IAAI;IACJrC,KAAK,EAAEW,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,SAAU;IAC9BwB,YAAY,EAAC,gBAAgB;IAC7BpC,IAAI,EAAEA;EAAK,EACZ,CACe,CAAC;AAEvB;AAEAN,iBAAiB,CAAC6C,qBAAqB,GAAG,IAAI;AAC9C,eAAe7C,iBAAiB"}
@@ -1,4 +1,9 @@
1
1
  export const PostalCodeAndCityProperties = {
2
+ country: {
3
+ doc: 'Defines which country the postal code and city is for, based on the ISO 3166-1 alpha-2 format i.e. `NO`, `DE` etc. ' + 'Setting it to anything other than `NO` will remove the default norwegian postal code pattern. ' + 'You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`. ' + 'Defaults to `NO`',
4
+ type: ['Path', 'string'],
5
+ status: 'optional'
6
+ },
2
7
  postalCode: {
3
8
  doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postcode.',
4
9
  type: 'object',
@@ -1 +1 @@
1
- {"version":3,"file":"PostalCodeAndCityDocs.js","names":["PostalCodeAndCityProperties","postalCode","doc","type","status","city","help"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PostalCodeAndCityProperties: PropertiesTableProps = {\n postalCode: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postcode.',\n type: 'object',\n status: 'required',\n },\n city: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for city.',\n type: 'object',\n status: 'required',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,2BAAiD,GAAG;EAC/DC,UAAU,EAAE;IACVC,GAAG,EAAE,wGAAwG;IAC7GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAE;IACJJ,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"PostalCodeAndCityDocs.js","names":["PostalCodeAndCityProperties","country","doc","type","status","postalCode","city","help"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PostalCodeAndCityProperties: PropertiesTableProps = {\n country: {\n doc:\n 'Defines which country the postal code and city is for, based on the ISO 3166-1 alpha-2 format i.e. `NO`, `DE` etc. ' +\n 'Setting it to anything other than `NO` will remove the default norwegian postal code pattern. ' +\n 'You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`. ' +\n 'Defaults to `NO`',\n type: ['Path', 'string'],\n status: 'optional',\n },\n postalCode: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postcode.',\n type: 'object',\n status: 'required',\n },\n city: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for city.',\n type: 'object',\n status: 'required',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,2BAAiD,GAAG;EAC/DC,OAAO,EAAE;IACPC,GAAG,EACD,qHAAqH,GACrH,gGAAgG,GAChG,kHAAkH,GAClH,kBAAkB;IACpBC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACxBC,MAAM,EAAE;EACV,CAAC;EACDC,UAAU,EAAE;IACVH,GAAG,EAAE,wGAAwG;IAC7GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAE;IACJJ,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,IAAI,EAAE;IACJL,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -48,7 +48,9 @@ function SliderComponent(props) {
48
48
  handleChange,
49
49
  handleFocus,
50
50
  handleBlur
51
- } = useFieldProps(preparedProps);
51
+ } = useFieldProps(preparedProps, {
52
+ omitMultiplePathWarning: true
53
+ });
52
54
  const handleLocalChange = useCallback(_ref2 => {
53
55
  let {
54
56
  value
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","names":["React","useCallback","useContext","useRef","FieldBlock","useFieldProps","Slider","pickSpacingProps","HelpButton","DataContext","useDataValue","SliderComponent","props","_ref","_props$paths","dataContextRef","current","getSourceValue","getValues","source","Array","isArray","map","s","value","paths","path","preparedProps","_objectSpread","step","min","max","id","width","layout","label","help","labelDescription","info","warning","error","hasError","disabled","handleChange","handleFocus","handleBlur","handleLocalChange","_ref2","forEach","i","updateDataValue","fieldBlockProps","forId","sliderProps","status","undefined","suffix","createElement","title","content","on_change","on_drag_start","on_drag_end","vertical","reverse","hideButtons","multiThumbBehavior","thumbTitle","subtractTitle","addTitle","numberFormat","tooltip","alwaysShowTooltip","extensions","stretch","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Slider/Slider.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldBlockWidth,\n FieldHelpProps,\n FieldProps,\n Path,\n} from '../../types'\nimport Slider, { SliderProps } from '../../../../components/Slider'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { HelpButton } from '../../../../components'\nimport DataContext, { ContextState } from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\n\nexport type SliderVisibilityEvent = React.MouseEvent<HTMLButtonElement> & {\n value: string\n}\n\nexport type SliderValue = number | Array<number>\nexport type Props = FieldHelpProps &\n FieldProps<SliderValue> & {\n /**\n * Define an array with JSON Pointers for multiple thumb buttons.\n */\n paths?: Array<Path>\n step?: SliderProps['step'] | Path\n min?: SliderProps['min'] | Path\n max?: SliderProps['max'] | Path\n vertical?: SliderProps['vertical']\n reverse?: SliderProps['reverse']\n hideButtons?: SliderProps['hideButtons']\n multiThumbBehavior?: SliderProps['multiThumbBehavior']\n thumbTitle?: SliderProps['thumbTitle']\n subtractTitle?: SliderProps['subtractTitle']\n addTitle?: SliderProps['addTitle']\n numberFormat?: SliderProps['numberFormat']\n tooltip?: SliderProps['tooltip']\n alwaysShowTooltip?: SliderProps['alwaysShowTooltip']\n extensions?: SliderProps['extensions']\n\n /** Styling */\n width?: FieldBlockWidth\n }\n\nfunction SliderComponent(props: Props) {\n const dataContextRef = useRef<ContextState>()\n dataContextRef.current = useContext<ContextState>(DataContext)\n\n const { getSourceValue } = useDataValue()\n const getValues = useCallback(\n (source: SliderValue | Path | Array<Path>) => {\n if (Array.isArray(source)) {\n return source.map((s) => getSourceValue(s) || 0)\n }\n\n return getSourceValue(source) || 0\n },\n [getSourceValue]\n )\n\n const value = getValues(props.paths ?? props.path ?? props.value)\n const preparedProps = {\n ...props,\n step: getSourceValue(props.step),\n min: getSourceValue(props.min),\n max: getSourceValue(props.max),\n }\n\n const {\n id,\n step = 1,\n min = 0,\n max = 100,\n width = 'stretch',\n layout,\n label,\n help,\n labelDescription,\n info,\n warning,\n error,\n hasError,\n disabled,\n handleChange,\n handleFocus,\n handleBlur,\n } = useFieldProps(preparedProps)\n\n const handleLocalChange = useCallback(\n ({ value }: { value: number | number[] }) => {\n if (Array.isArray(props.paths) && Array.isArray(value)) {\n value.forEach((value, i) => {\n dataContextRef.current.updateDataValue(props.paths[i], value)\n })\n }\n\n handleChange?.(value)\n },\n [handleChange, props.paths]\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width,\n ...pickSpacingProps(props),\n }\n\n const sliderProps: SliderProps = {\n value,\n step,\n min,\n max,\n disabled,\n status: hasError ? 'error' : undefined,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleLocalChange,\n on_drag_start: handleFocus,\n on_drag_end: handleBlur,\n vertical: props.vertical,\n reverse: props.reverse,\n hideButtons: props.hideButtons,\n multiThumbBehavior: props.multiThumbBehavior,\n thumbTitle: props.thumbTitle,\n subtractTitle: props.subtractTitle,\n addTitle: props.addTitle,\n numberFormat: props.numberFormat,\n tooltip: props.tooltip,\n alwaysShowTooltip: props.alwaysShowTooltip,\n extensions: props.extensions,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Slider {...sliderProps} />\n </FieldBlock>\n )\n}\n\nexport default SliderComponent\n\nSliderComponent._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.js","names":["React","useCallback","useContext","useRef","FieldBlock","useFieldProps","Slider","pickSpacingProps","HelpButton","DataContext","useDataValue","SliderComponent","props","_ref","_props$paths","dataContextRef","current","getSourceValue","getValues","source","Array","isArray","map","s","value","paths","path","preparedProps","_objectSpread","step","min","max","id","width","layout","label","help","labelDescription","info","warning","error","hasError","disabled","handleChange","handleFocus","handleBlur","omitMultiplePathWarning","handleLocalChange","_ref2","forEach","i","updateDataValue","fieldBlockProps","forId","sliderProps","status","undefined","suffix","createElement","title","content","on_change","on_drag_start","on_drag_end","vertical","reverse","hideButtons","multiThumbBehavior","thumbTitle","subtractTitle","addTitle","numberFormat","tooltip","alwaysShowTooltip","extensions","stretch","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Slider/Slider.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldBlockWidth,\n FieldHelpProps,\n FieldProps,\n Path,\n} from '../../types'\nimport Slider, { SliderProps } from '../../../../components/Slider'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { HelpButton } from '../../../../components'\nimport DataContext, { ContextState } from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\n\nexport type SliderVisibilityEvent = React.MouseEvent<HTMLButtonElement> & {\n value: string\n}\n\nexport type SliderValue = number | Array<number>\nexport type Props = FieldHelpProps &\n FieldProps<SliderValue> & {\n /**\n * Define an array with JSON Pointers for multiple thumb buttons.\n */\n paths?: Array<Path>\n step?: SliderProps['step'] | Path\n min?: SliderProps['min'] | Path\n max?: SliderProps['max'] | Path\n vertical?: SliderProps['vertical']\n reverse?: SliderProps['reverse']\n hideButtons?: SliderProps['hideButtons']\n multiThumbBehavior?: SliderProps['multiThumbBehavior']\n thumbTitle?: SliderProps['thumbTitle']\n subtractTitle?: SliderProps['subtractTitle']\n addTitle?: SliderProps['addTitle']\n numberFormat?: SliderProps['numberFormat']\n tooltip?: SliderProps['tooltip']\n alwaysShowTooltip?: SliderProps['alwaysShowTooltip']\n extensions?: SliderProps['extensions']\n\n /** Styling */\n width?: FieldBlockWidth\n }\n\nfunction SliderComponent(props: Props) {\n const dataContextRef = useRef<ContextState>()\n dataContextRef.current = useContext<ContextState>(DataContext)\n\n const { getSourceValue } = useDataValue()\n const getValues = useCallback(\n (source: SliderValue | Path | Array<Path>) => {\n if (Array.isArray(source)) {\n return source.map((s) => getSourceValue(s) || 0)\n }\n\n return getSourceValue(source) || 0\n },\n [getSourceValue]\n )\n\n const value = getValues(props.paths ?? props.path ?? props.value)\n const preparedProps = {\n ...props,\n step: getSourceValue(props.step),\n min: getSourceValue(props.min),\n max: getSourceValue(props.max),\n }\n\n const {\n id,\n step = 1,\n min = 0,\n max = 100,\n width = 'stretch',\n layout,\n label,\n help,\n labelDescription,\n info,\n warning,\n error,\n hasError,\n disabled,\n handleChange,\n handleFocus,\n handleBlur,\n } = useFieldProps(preparedProps, {\n omitMultiplePathWarning: true,\n })\n\n const handleLocalChange = useCallback(\n ({ value }: { value: number | number[] }) => {\n if (Array.isArray(props.paths) && Array.isArray(value)) {\n value.forEach((value, i) => {\n dataContextRef.current.updateDataValue(props.paths[i], value)\n })\n }\n\n handleChange?.(value)\n },\n [handleChange, props.paths]\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width,\n ...pickSpacingProps(props),\n }\n\n const sliderProps: SliderProps = {\n value,\n step,\n min,\n max,\n disabled,\n status: hasError ? 'error' : undefined,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleLocalChange,\n on_drag_start: handleFocus,\n on_drag_end: handleBlur,\n vertical: props.vertical,\n reverse: props.reverse,\n hideButtons: props.hideButtons,\n multiThumbBehavior: props.multiThumbBehavior,\n thumbTitle: props.thumbTitle,\n subtractTitle: props.subtractTitle,\n addTitle: props.addTitle,\n numberFormat: props.numberFormat,\n tooltip: props.tooltip,\n alwaysShowTooltip: props.alwaysShowTooltip,\n extensions: props.extensions,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Slider {...sliderProps} />\n </FieldBlock>\n )\n}\n\nexport default SliderComponent\n\nSliderComponent._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -49,6 +49,8 @@ function FieldBlock(props) {
49
49
  children
50
50
  } = _Object$assign,
51
51
  rest = _objectWithoutProperties(_Object$assign, _excluded);
52
+ const hasCustomWidth = /\d(rem)$/.test(String(width));
53
+ const hasCustomContentWidth = /\d(rem)$/.test(String(contentWidth));
52
54
  const iterateItemContext = useContext(IterateElementContext);
53
55
  const {
54
56
  index: iterateIndex
@@ -88,7 +90,7 @@ function FieldBlock(props) {
88
90
  }
89
91
  }
90
92
  return content;
91
- }, [iterateIndex, labelProp, labelSuffixText]);
93
+ }, [iterateIndex, labelProp, labelSuffixText, optionalLabelSuffix]);
92
94
  const setInternalRecord = useCallback(props => {
93
95
  const {
94
96
  stateId,
@@ -246,7 +248,7 @@ function FieldBlock(props) {
246
248
  mountedFieldsRef.current = {};
247
249
  stateRecordRef.current = {};
248
250
  }, []);
249
- const mainClasses = classnames('dnb-forms-field-block', className, width !== undefined && `dnb-forms-field-block--width-${width}`);
251
+ const mainClasses = classnames('dnb-forms-field-block', className, width && `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`);
250
252
  const gridClasses = `dnb-forms-field-block__grid dnb-forms-field-block--layout-${layout}`;
251
253
  const enableFieldset = useEnableFieldset({
252
254
  label,
@@ -265,6 +267,20 @@ function FieldBlock(props) {
265
267
  size: labelSize,
266
268
  disabled
267
269
  };
270
+ const mainStyle = useMemo(() => {
271
+ if (hasCustomWidth) {
272
+ return {
273
+ '--dnb-forms-field-block-width': width
274
+ };
275
+ }
276
+ }, [hasCustomWidth, width]);
277
+ const contentsStyle = useMemo(() => {
278
+ if (hasCustomContentWidth) {
279
+ return {
280
+ '--dnb-forms-field-block-content-width': contentWidth
281
+ };
282
+ }
283
+ }, [contentWidth, hasCustomContentWidth]);
268
284
  if (dataContext !== null && dataContext !== void 0 && dataContext.prerenderFieldProps) {
269
285
  return null;
270
286
  }
@@ -283,6 +299,7 @@ function FieldBlock(props) {
283
299
  }
284
300
  }, React.createElement(Space, _extends({
285
301
  element: enableFieldset ? 'fieldset' : 'div',
302
+ style: mainStyle,
286
303
  className: mainClasses
287
304
  }, rest), React.createElement("div", {
288
305
  className: gridClasses
@@ -295,7 +312,8 @@ function FieldBlock(props) {
295
312
  }, labelDescription)))), React.createElement("div", {
296
313
  className: "dnb-forms-field-block__status"
297
314
  }, React.createElement(FormStatus, statusContent === null || statusContent === void 0 ? void 0 : statusContent.error), React.createElement(FormStatus, statusContent === null || statusContent === void 0 ? void 0 : statusContent.warning), React.createElement(FormStatus, statusContent === null || statusContent === void 0 ? void 0 : statusContent.info)), React.createElement("div", {
298
- className: classnames('dnb-forms-field-block__contents', contentClassName, contentWidth && `dnb-forms-field-block__contents--width-${contentWidth}`, align && `dnb-forms-field-block__contents--align-${align}`, composition && `dnb-forms-field-block__contents__composition--${composition === true ? 'horizontal' : composition}`),
315
+ style: contentsStyle,
316
+ className: classnames('dnb-forms-field-block__contents', contentClassName, contentWidth && `dnb-forms-field-block__contents--width-${hasCustomContentWidth ? 'custom' : contentWidth}`, align && `dnb-forms-field-block__contents--align-${align}`, composition && `dnb-forms-field-block__contents__composition--${composition === true ? 'horizontal' : composition}`),
299
317
  ref: contentsRef
300
318
  }, children))));
301
319
  }