@dnb/eufemia 10.70.0 → 10.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/cjs/components/autocomplete/AutocompleteDocs.js +3 -3
  3. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  4. package/cjs/components/avatar/Avatar.js +3 -8
  5. package/cjs/components/avatar/Avatar.js.map +1 -1
  6. package/cjs/components/checkbox/CheckboxDocs.js +2 -2
  7. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  8. package/cjs/components/date-picker/DatePickerContext.d.ts +0 -1
  9. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  10. package/cjs/components/date-picker/DatePickerDocs.js +1 -1
  11. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  12. package/cjs/components/date-picker/DatePickerInput.js +110 -136
  13. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  14. package/cjs/components/date-picker/DatePickerProvider.js +0 -2
  15. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  16. package/cjs/components/date-picker/hooks/useDates.d.ts +0 -2
  17. package/cjs/components/date-picker/hooks/useDates.js +5 -5
  18. package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
  19. package/cjs/components/date-picker/style/dnb-date-picker.css +4 -0
  20. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  21. package/cjs/components/date-picker/style/dnb-date-picker.scss +3 -0
  22. package/cjs/components/dialog/DialogDocs.js +7 -2
  23. package/cjs/components/dialog/DialogDocs.js.map +1 -1
  24. package/cjs/components/dropdown/Dropdown.d.ts +20 -20
  25. package/cjs/components/dropdown/DropdownDocs.d.ts +1 -0
  26. package/cjs/components/dropdown/DropdownDocs.js +158 -1
  27. package/cjs/components/dropdown/DropdownDocs.js.map +1 -1
  28. package/cjs/components/flex/ContainerDocs.js +1 -1
  29. package/cjs/components/flex/ContainerDocs.js.map +1 -1
  30. package/cjs/components/flex/ItemDocs.d.ts +2 -0
  31. package/cjs/components/flex/ItemDocs.js +39 -0
  32. package/cjs/components/flex/ItemDocs.js.map +1 -0
  33. package/cjs/components/grid/ItemDocs.d.ts +2 -0
  34. package/cjs/components/grid/ItemDocs.js +19 -0
  35. package/cjs/components/grid/ItemDocs.js.map +1 -0
  36. package/cjs/components/input/InputDocs.js +3 -3
  37. package/cjs/components/input/InputDocs.js.map +1 -1
  38. package/cjs/components/input-masked/InputMasked.d.ts +0 -3
  39. package/cjs/components/input-masked/InputMaskedDocs.d.ts +1 -0
  40. package/cjs/components/input-masked/InputMaskedDocs.js +58 -1
  41. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  42. package/cjs/components/input-masked/InputMaskedHooks.js +11 -7
  43. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  44. package/cjs/components/input-masked/InputMaskedUtils.d.ts +1 -1
  45. package/cjs/components/input-masked/InputMaskedUtils.js +2 -1
  46. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  47. package/cjs/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
  48. package/cjs/components/input-masked/MultiInputMaskedDocs.js +70 -1
  49. package/cjs/components/input-masked/MultiInputMaskedDocs.js.map +1 -1
  50. package/cjs/components/input-masked/style/dnb-input-masked.css +9 -0
  51. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  52. package/cjs/components/input-masked/style/dnb-input-masked.scss +12 -0
  53. package/cjs/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  54. package/cjs/components/input-masked/text-mask/InputModeNumber.js +32 -9
  55. package/cjs/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  56. package/cjs/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  57. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  58. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  59. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  60. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  61. package/cjs/components/modal/ModalDocs.d.ts +5 -0
  62. package/cjs/components/modal/ModalDocs.js +201 -0
  63. package/cjs/components/modal/ModalDocs.js.map +1 -0
  64. package/cjs/components/radio/RadioDocs.js +2 -2
  65. package/cjs/components/radio/RadioDocs.js.map +1 -1
  66. package/cjs/components/section/Section.js +2 -7
  67. package/cjs/components/section/Section.js.map +1 -1
  68. package/cjs/components/section/SectionDocs.js +1 -1
  69. package/cjs/components/section/SectionDocs.js.map +1 -1
  70. package/cjs/components/slider/SliderDocs.js +2 -2
  71. package/cjs/components/slider/SliderDocs.js.map +1 -1
  72. package/cjs/components/space/SpaceDocs.d.ts +3 -0
  73. package/cjs/components/space/SpaceDocs.js +61 -0
  74. package/cjs/components/space/SpaceDocs.js.map +1 -0
  75. package/cjs/components/switch/SwitchDocs.js +2 -2
  76. package/cjs/components/switch/SwitchDocs.js.map +1 -1
  77. package/cjs/components/textarea/TextareaDocs.js +3 -3
  78. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  79. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js +1 -1
  80. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  81. package/cjs/components/tooltip/TooltipDocs.js +1 -1
  82. package/cjs/components/tooltip/TooltipDocs.js.map +1 -1
  83. package/cjs/components/upload/Upload.js +6 -3
  84. package/cjs/components/upload/Upload.js.map +1 -1
  85. package/cjs/components/upload/UploadDocs.d.ts +1 -0
  86. package/cjs/components/upload/UploadDocs.js +43 -1
  87. package/cjs/components/upload/UploadDocs.js.map +1 -1
  88. package/cjs/components/upload/UploadFileListCell.js +32 -12
  89. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  90. package/cjs/components/upload/types.d.ts +7 -0
  91. package/cjs/components/upload/types.js.map +1 -1
  92. package/cjs/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  93. package/cjs/extensions/forms/DataContext/At/AtDocs.js +24 -0
  94. package/cjs/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  95. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  96. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  97. package/cjs/extensions/forms/Field/Number/Number.js +3 -6
  98. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  99. package/cjs/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  100. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +14 -2
  101. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  102. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  103. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
  104. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  105. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  106. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +8 -3
  107. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  108. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  109. package/cjs/extensions/forms/Field/String/StringDocs.js +1 -1
  110. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  111. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  112. package/cjs/extensions/forms/Field/Upload/Upload.js +3 -1
  113. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  114. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  115. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  116. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  117. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  118. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  119. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +19 -0
  120. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  121. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  122. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  123. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  124. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js +14 -0
  125. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  126. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  127. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  128. package/cjs/extensions/forms/hooks/useFieldProps.js +55 -18
  129. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  130. package/cjs/extensions/forms/types.d.ts +8 -5
  131. package/cjs/extensions/forms/types.js.map +1 -1
  132. package/cjs/extensions/forms/utils/FormError.d.ts +20 -16
  133. package/cjs/extensions/forms/utils/FormError.js.map +1 -1
  134. package/cjs/shared/Eufemia.d.ts +1 -1
  135. package/cjs/shared/Eufemia.js +2 -2
  136. package/cjs/shared/Eufemia.js.map +1 -1
  137. package/cjs/shared/helpers.d.ts +1 -0
  138. package/cjs/shared/helpers.js +7 -0
  139. package/cjs/shared/helpers.js.map +1 -1
  140. package/cjs/shared/locales/sv-SE.js +2 -2
  141. package/cjs/shared/locales/sv-SE.js.map +1 -1
  142. package/cjs/style/core/scopes.scss +1 -1
  143. package/cjs/style/dnb-ui-basis.css +1 -1
  144. package/cjs/style/dnb-ui-basis.min.css +1 -1
  145. package/cjs/style/dnb-ui-body.css +1 -1
  146. package/cjs/style/dnb-ui-body.min.css +1 -1
  147. package/cjs/style/dnb-ui-components.css +13 -0
  148. package/cjs/style/dnb-ui-components.min.css +1 -1
  149. package/cjs/style/dnb-ui-core.css +1 -1
  150. package/cjs/style/dnb-ui-core.min.css +1 -1
  151. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +13 -0
  152. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  153. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +13 -0
  154. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  155. package/cjs/style/themes/theme-ui/ui-theme-components.css +13 -0
  156. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  157. package/components/autocomplete/AutocompleteDocs.js +3 -3
  158. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  159. package/components/avatar/Avatar.js +1 -6
  160. package/components/avatar/Avatar.js.map +1 -1
  161. package/components/checkbox/CheckboxDocs.js +2 -2
  162. package/components/checkbox/CheckboxDocs.js.map +1 -1
  163. package/components/date-picker/DatePickerContext.d.ts +0 -1
  164. package/components/date-picker/DatePickerContext.js.map +1 -1
  165. package/components/date-picker/DatePickerDocs.js +1 -1
  166. package/components/date-picker/DatePickerDocs.js.map +1 -1
  167. package/components/date-picker/DatePickerInput.js +111 -137
  168. package/components/date-picker/DatePickerInput.js.map +1 -1
  169. package/components/date-picker/DatePickerProvider.js +0 -2
  170. package/components/date-picker/DatePickerProvider.js.map +1 -1
  171. package/components/date-picker/hooks/useDates.d.ts +0 -2
  172. package/components/date-picker/hooks/useDates.js +3 -5
  173. package/components/date-picker/hooks/useDates.js.map +1 -1
  174. package/components/date-picker/style/dnb-date-picker.css +4 -0
  175. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  176. package/components/date-picker/style/dnb-date-picker.scss +3 -0
  177. package/components/dialog/DialogDocs.js +7 -2
  178. package/components/dialog/DialogDocs.js.map +1 -1
  179. package/components/dropdown/Dropdown.d.ts +20 -20
  180. package/components/dropdown/DropdownDocs.d.ts +1 -0
  181. package/components/dropdown/DropdownDocs.js +157 -0
  182. package/components/dropdown/DropdownDocs.js.map +1 -1
  183. package/components/flex/ContainerDocs.js +1 -1
  184. package/components/flex/ContainerDocs.js.map +1 -1
  185. package/components/flex/ItemDocs.d.ts +2 -0
  186. package/components/flex/ItemDocs.js +33 -0
  187. package/components/flex/ItemDocs.js.map +1 -0
  188. package/components/grid/ItemDocs.d.ts +2 -0
  189. package/components/grid/ItemDocs.js +13 -0
  190. package/components/grid/ItemDocs.js.map +1 -0
  191. package/components/input/InputDocs.js +3 -3
  192. package/components/input/InputDocs.js.map +1 -1
  193. package/components/input-masked/InputMasked.d.ts +0 -3
  194. package/components/input-masked/InputMaskedDocs.d.ts +1 -0
  195. package/components/input-masked/InputMaskedDocs.js +57 -0
  196. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  197. package/components/input-masked/InputMaskedHooks.js +11 -7
  198. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  199. package/components/input-masked/InputMaskedUtils.d.ts +1 -1
  200. package/components/input-masked/InputMaskedUtils.js +2 -1
  201. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  202. package/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
  203. package/components/input-masked/MultiInputMaskedDocs.js +69 -0
  204. package/components/input-masked/MultiInputMaskedDocs.js.map +1 -1
  205. package/components/input-masked/style/dnb-input-masked.css +9 -0
  206. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  207. package/components/input-masked/style/dnb-input-masked.scss +12 -0
  208. package/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  209. package/components/input-masked/text-mask/InputModeNumber.js +32 -9
  210. package/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  211. package/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  212. package/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  213. package/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  214. package/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  215. package/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  216. package/components/modal/ModalDocs.d.ts +5 -0
  217. package/components/modal/ModalDocs.js +195 -0
  218. package/components/modal/ModalDocs.js.map +1 -0
  219. package/components/radio/RadioDocs.js +2 -2
  220. package/components/radio/RadioDocs.js.map +1 -1
  221. package/components/section/Section.js +1 -6
  222. package/components/section/Section.js.map +1 -1
  223. package/components/section/SectionDocs.js +1 -1
  224. package/components/section/SectionDocs.js.map +1 -1
  225. package/components/slider/SliderDocs.js +2 -2
  226. package/components/slider/SliderDocs.js.map +1 -1
  227. package/components/space/SpaceDocs.d.ts +3 -0
  228. package/components/space/SpaceDocs.js +55 -0
  229. package/components/space/SpaceDocs.js.map +1 -0
  230. package/components/switch/SwitchDocs.js +2 -2
  231. package/components/switch/SwitchDocs.js.map +1 -1
  232. package/components/textarea/TextareaDocs.js +3 -3
  233. package/components/textarea/TextareaDocs.js.map +1 -1
  234. package/components/toggle-button/ToggleButtonGroupDocs.js +1 -1
  235. package/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  236. package/components/tooltip/TooltipDocs.js +1 -1
  237. package/components/tooltip/TooltipDocs.js.map +1 -1
  238. package/components/upload/Upload.js +6 -3
  239. package/components/upload/Upload.js.map +1 -1
  240. package/components/upload/UploadDocs.d.ts +1 -0
  241. package/components/upload/UploadDocs.js +42 -0
  242. package/components/upload/UploadDocs.js.map +1 -1
  243. package/components/upload/UploadFileListCell.js +32 -12
  244. package/components/upload/UploadFileListCell.js.map +1 -1
  245. package/components/upload/types.d.ts +7 -0
  246. package/components/upload/types.js.map +1 -1
  247. package/es/components/autocomplete/AutocompleteDocs.js +3 -3
  248. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  249. package/es/components/avatar/Avatar.js +1 -6
  250. package/es/components/avatar/Avatar.js.map +1 -1
  251. package/es/components/checkbox/CheckboxDocs.js +2 -2
  252. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  253. package/es/components/date-picker/DatePickerContext.d.ts +0 -1
  254. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  255. package/es/components/date-picker/DatePickerDocs.js +1 -1
  256. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  257. package/es/components/date-picker/DatePickerInput.js +103 -130
  258. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  259. package/es/components/date-picker/DatePickerProvider.js +0 -2
  260. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  261. package/es/components/date-picker/hooks/useDates.d.ts +0 -2
  262. package/es/components/date-picker/hooks/useDates.js +3 -5
  263. package/es/components/date-picker/hooks/useDates.js.map +1 -1
  264. package/es/components/date-picker/style/dnb-date-picker.css +4 -0
  265. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  266. package/es/components/date-picker/style/dnb-date-picker.scss +3 -0
  267. package/es/components/dialog/DialogDocs.js +7 -2
  268. package/es/components/dialog/DialogDocs.js.map +1 -1
  269. package/es/components/dropdown/Dropdown.d.ts +20 -20
  270. package/es/components/dropdown/DropdownDocs.d.ts +1 -0
  271. package/es/components/dropdown/DropdownDocs.js +157 -0
  272. package/es/components/dropdown/DropdownDocs.js.map +1 -1
  273. package/es/components/flex/ContainerDocs.js +1 -1
  274. package/es/components/flex/ContainerDocs.js.map +1 -1
  275. package/es/components/flex/ItemDocs.d.ts +2 -0
  276. package/es/components/flex/ItemDocs.js +33 -0
  277. package/es/components/flex/ItemDocs.js.map +1 -0
  278. package/es/components/grid/ItemDocs.d.ts +2 -0
  279. package/es/components/grid/ItemDocs.js +13 -0
  280. package/es/components/grid/ItemDocs.js.map +1 -0
  281. package/es/components/input/InputDocs.js +3 -3
  282. package/es/components/input/InputDocs.js.map +1 -1
  283. package/es/components/input-masked/InputMasked.d.ts +0 -3
  284. package/es/components/input-masked/InputMaskedDocs.d.ts +1 -0
  285. package/es/components/input-masked/InputMaskedDocs.js +57 -0
  286. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  287. package/es/components/input-masked/InputMaskedHooks.js +11 -7
  288. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  289. package/es/components/input-masked/InputMaskedUtils.d.ts +1 -1
  290. package/es/components/input-masked/InputMaskedUtils.js +2 -1
  291. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  292. package/es/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
  293. package/es/components/input-masked/MultiInputMaskedDocs.js +69 -0
  294. package/es/components/input-masked/MultiInputMaskedDocs.js.map +1 -1
  295. package/es/components/input-masked/style/dnb-input-masked.css +9 -0
  296. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  297. package/es/components/input-masked/style/dnb-input-masked.scss +12 -0
  298. package/es/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  299. package/es/components/input-masked/text-mask/InputModeNumber.js +39 -9
  300. package/es/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  301. package/es/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  302. package/es/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  303. package/es/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  304. package/es/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  305. package/es/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  306. package/es/components/modal/ModalDocs.d.ts +5 -0
  307. package/es/components/modal/ModalDocs.js +191 -0
  308. package/es/components/modal/ModalDocs.js.map +1 -0
  309. package/es/components/radio/RadioDocs.js +2 -2
  310. package/es/components/radio/RadioDocs.js.map +1 -1
  311. package/es/components/section/Section.js +1 -6
  312. package/es/components/section/Section.js.map +1 -1
  313. package/es/components/section/SectionDocs.js +1 -1
  314. package/es/components/section/SectionDocs.js.map +1 -1
  315. package/es/components/slider/SliderDocs.js +2 -2
  316. package/es/components/slider/SliderDocs.js.map +1 -1
  317. package/es/components/space/SpaceDocs.d.ts +3 -0
  318. package/es/components/space/SpaceDocs.js +55 -0
  319. package/es/components/space/SpaceDocs.js.map +1 -0
  320. package/es/components/switch/SwitchDocs.js +2 -2
  321. package/es/components/switch/SwitchDocs.js.map +1 -1
  322. package/es/components/textarea/TextareaDocs.js +3 -3
  323. package/es/components/textarea/TextareaDocs.js.map +1 -1
  324. package/es/components/toggle-button/ToggleButtonGroupDocs.js +1 -1
  325. package/es/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  326. package/es/components/tooltip/TooltipDocs.js +1 -1
  327. package/es/components/tooltip/TooltipDocs.js.map +1 -1
  328. package/es/components/upload/Upload.js +6 -3
  329. package/es/components/upload/Upload.js.map +1 -1
  330. package/es/components/upload/UploadDocs.d.ts +1 -0
  331. package/es/components/upload/UploadDocs.js +42 -0
  332. package/es/components/upload/UploadDocs.js.map +1 -1
  333. package/es/components/upload/UploadFileListCell.js +32 -12
  334. package/es/components/upload/UploadFileListCell.js.map +1 -1
  335. package/es/components/upload/types.d.ts +7 -0
  336. package/es/components/upload/types.js.map +1 -1
  337. package/es/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  338. package/es/extensions/forms/DataContext/At/AtDocs.js +18 -0
  339. package/es/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  340. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  341. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  342. package/es/extensions/forms/Field/Number/Number.js +3 -6
  343. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  344. package/es/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  345. package/es/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  346. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  347. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  348. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +24 -16
  349. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  350. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  351. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
  352. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  353. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  354. package/es/extensions/forms/Field/String/StringDocs.js +1 -1
  355. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  356. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  357. package/es/extensions/forms/Field/Upload/Upload.js +3 -1
  358. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  359. package/es/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  360. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  361. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  362. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  363. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  364. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  365. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  366. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  367. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  368. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  369. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  370. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  371. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  372. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  373. package/es/extensions/forms/hooks/useFieldProps.js +56 -19
  374. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  375. package/es/extensions/forms/types.d.ts +8 -5
  376. package/es/extensions/forms/types.js.map +1 -1
  377. package/es/extensions/forms/utils/FormError.d.ts +20 -16
  378. package/es/extensions/forms/utils/FormError.js +1 -0
  379. package/es/extensions/forms/utils/FormError.js.map +1 -1
  380. package/es/shared/Eufemia.d.ts +1 -1
  381. package/es/shared/Eufemia.js +2 -2
  382. package/es/shared/Eufemia.js.map +1 -1
  383. package/es/shared/helpers.d.ts +1 -0
  384. package/es/shared/helpers.js +6 -0
  385. package/es/shared/helpers.js.map +1 -1
  386. package/es/shared/locales/sv-SE.js +2 -2
  387. package/es/shared/locales/sv-SE.js.map +1 -1
  388. package/es/style/core/scopes.scss +1 -1
  389. package/es/style/dnb-ui-basis.css +1 -1
  390. package/es/style/dnb-ui-basis.min.css +1 -1
  391. package/es/style/dnb-ui-body.css +1 -1
  392. package/es/style/dnb-ui-body.min.css +1 -1
  393. package/es/style/dnb-ui-components.css +13 -0
  394. package/es/style/dnb-ui-components.min.css +1 -1
  395. package/es/style/dnb-ui-core.css +1 -1
  396. package/es/style/dnb-ui-core.min.css +1 -1
  397. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +13 -0
  398. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  399. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +13 -0
  400. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  401. package/es/style/themes/theme-ui/ui-theme-components.css +13 -0
  402. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  403. package/esm/dnb-ui-basis.min.mjs +1 -1
  404. package/esm/dnb-ui-components.min.mjs +1 -1
  405. package/esm/dnb-ui-elements.min.mjs +1 -1
  406. package/esm/dnb-ui-extensions.min.mjs +1 -1
  407. package/esm/dnb-ui-lib.min.mjs +1 -1
  408. package/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  409. package/extensions/forms/DataContext/At/AtDocs.js +18 -0
  410. package/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  411. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  412. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  413. package/extensions/forms/Field/Number/Number.js +3 -6
  414. package/extensions/forms/Field/Number/Number.js.map +1 -1
  415. package/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  416. package/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  417. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  418. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  419. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
  420. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  421. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  422. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
  423. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  424. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  425. package/extensions/forms/Field/String/StringDocs.js +1 -1
  426. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  427. package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  428. package/extensions/forms/Field/Upload/Upload.js +3 -1
  429. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  430. package/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  431. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  432. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  433. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  434. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  435. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  436. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  437. package/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  438. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  439. package/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  440. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  441. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  442. package/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  443. package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  444. package/extensions/forms/hooks/useFieldProps.js +56 -19
  445. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  446. package/extensions/forms/types.d.ts +8 -5
  447. package/extensions/forms/types.js.map +1 -1
  448. package/extensions/forms/utils/FormError.d.ts +20 -16
  449. package/extensions/forms/utils/FormError.js.map +1 -1
  450. package/package.json +1 -1
  451. package/shared/Eufemia.d.ts +1 -1
  452. package/shared/Eufemia.js +2 -2
  453. package/shared/Eufemia.js.map +1 -1
  454. package/shared/helpers.d.ts +1 -0
  455. package/shared/helpers.js +6 -0
  456. package/shared/helpers.js.map +1 -1
  457. package/shared/locales/sv-SE.js +2 -2
  458. package/shared/locales/sv-SE.js.map +1 -1
  459. package/style/core/scopes.scss +1 -1
  460. package/style/dnb-ui-basis.css +1 -1
  461. package/style/dnb-ui-basis.min.css +1 -1
  462. package/style/dnb-ui-body.css +1 -1
  463. package/style/dnb-ui-body.min.css +1 -1
  464. package/style/dnb-ui-components.css +13 -0
  465. package/style/dnb-ui-components.min.css +1 -1
  466. package/style/dnb-ui-core.css +1 -1
  467. package/style/dnb-ui-core.min.css +1 -1
  468. package/style/themes/theme-eiendom/eiendom-theme-components.css +13 -0
  469. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  470. package/style/themes/theme-sbanken/sbanken-theme-components.css +13 -0
  471. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  472. package/style/themes/theme-ui/ui-theme-components.css +13 -0
  473. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  474. package/umd/dnb-ui-basis.min.js +1 -1
  475. package/umd/dnb-ui-components.min.js +1 -1
  476. package/umd/dnb-ui-elements.min.js +1 -1
  477. package/umd/dnb-ui-extensions.min.js +1 -1
  478. package/umd/dnb-ui-lib.min.js +1 -1
@@ -15,7 +15,7 @@ export type AllJSONSchemaVersions<DataType = unknown> = AllJSONSchemaVersionsBas
15
15
  required?: readonly string[];
16
16
  });
17
17
  export { JSONSchemaType };
18
- export type ValidatorReturnSync<Value> = Error | FormError | undefined | void | Array<Validator<Value>> | Array<Error | FormError>;
18
+ export type ValidatorReturnSync<Value> = Error | FormError | string | React.ReactElement | undefined | void | Array<Validator<Value>> | Array<Error | FormError>;
19
19
  export type ValidatorReturnAsync<Value> = ValidatorReturnSync<Value> | Promise<ValidatorReturnSync<Value>>;
20
20
  export type Validator<Value, ErrorMessages = DefaultErrorMessages> = (value: Value, additionalArgs: ReceiveAdditionalEventArgs<Value, ErrorMessages>) => ValidatorReturnAsync<Value>;
21
21
  export type ReceiveAdditionalEventArgs<Value, ErrorMessages = DefaultErrorMessages> = {
@@ -78,7 +78,7 @@ export type GlobalErrorMessagesWithPaths = VariousErrorMessages | {
78
78
  /**
79
79
  * 'MyCustom.message': 'Your custom message'
80
80
  */
81
- export type DotNotationErrorMessages = Record<`${string}` | `${string}.${string}`, string>;
81
+ export type DotNotationErrorMessages = Record<`${string}` | `${string}.${string}`, string | React.ReactElement>;
82
82
  /**
83
83
  * { 'nb-NO': { 'Field.errorRequired': 'Dette feltet er påkrevd' } }
84
84
  */
@@ -170,6 +170,9 @@ export type MessagePropParams<Value, ReturnValue> = {
170
170
  export type MessageProp<Value, ReturnValue> = ReturnValue | ((value: Value, options: MessagePropParams<Value, ReturnValue>) => ReturnValue | undefined);
171
171
  export type MessageTypes<Value> = UseFieldProps<Value>['info'] | UseFieldProps<Value>['warning'] | UseFieldProps<Value>['error'];
172
172
  export type ConnectorProps<Value = unknown> = Pick<UseFieldProps<Value>, 'onChange' | 'onBlurValidator'>;
173
+ export type InfoProp<Value> = MessageProp<Value, React.ReactNode | Array<React.ReactNode>>;
174
+ export type WarningProp<Value> = MessageProp<Value, React.ReactNode | Array<React.ReactNode>>;
175
+ export type ErrorProp<Value> = MessageProp<Value, string | React.ReactElement | Error | FormError | Array<string | React.ReactElement | Error | FormError>>;
173
176
  export interface UseFieldProps<Value = unknown, EmptyValue = undefined | unknown, ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages> extends DataValueReadWriteComponentProps<Value, EmptyValue>, AriaAttributes {
174
177
  /**
175
178
  * ID added to the actual field component, and linked to the label via for-attribute
@@ -193,9 +196,9 @@ export interface UseFieldProps<Value = unknown, EmptyValue = undefined | unknown
193
196
  * Forwards all given props in a props object.
194
197
  */
195
198
  props?: Record<string, unknown>;
196
- info?: MessageProp<Value, React.ReactNode | Array<React.ReactNode>>;
197
- warning?: MessageProp<Value, React.ReactNode | Array<React.ReactNode>>;
198
- error?: MessageProp<Value, Error | FormError | Array<Error | FormError>>;
199
+ info?: InfoProp<Value>;
200
+ warning?: WarningProp<Value>;
201
+ error?: ErrorProp<Value>;
199
202
  required?: boolean;
200
203
  schema?: AllJSONSchemaVersions<Value>;
201
204
  /** @deprecated Use `onChangeValidator` instead */
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["dataValueReadProps","pickDataValueReadProps","props","Object","fromEntries","entries","filter","key","includes","omitDataValueReadProps","dataValueWriteProps","pickDataValueWriteProps","omitDataValueWriteProps","pickDataValueReadWriteProps","omitDataValueReadWriteProps"],"sources":["../../../../src/extensions/forms/types.ts"],"sourcesContent":["import type { AriaAttributes } from 'react'\nimport type { SpacingProps } from '../../components/space/types'\nimport type {\n ContextState,\n DataPathHandlerParameters,\n EventListenerCall,\n FilterData,\n TransformData,\n VisibleDataOptions,\n} from './DataContext'\nimport type { SharedFieldBlockProps } from './FieldBlock'\nimport type { JSONSchema4, JSONSchema6, JSONSchema7 } from 'json-schema'\nimport type { JSONSchemaType } from 'ajv/dist/2020'\nimport { JsonObject, FormError } from './utils'\nimport {\n FormsTranslationFlat,\n FormsTranslationLocale,\n} from './hooks/useTranslation'\nimport { GetValueByPath } from './hooks/useDataValue'\nimport { HelpProps } from '../../components/help-button/HelpButtonInline'\n\nexport type * from 'json-schema'\nexport type JSONSchema = JSONSchema7\nexport type AllJSONSchemaVersionsBasis<DataType> =\n | JSONSchema4\n | JSONSchema6\n | JSONSchema7\n | JSONSchemaType<DataType>\nexport type AllJSONSchemaVersions<DataType = unknown> =\n | AllJSONSchemaVersionsBasis<DataType>\n\n // In order to support \"schema = { ... } as const\"\n | (Omit<AllJSONSchemaVersionsBasis<DataType>, 'required'> & {\n required?: readonly string[]\n })\nexport { JSONSchemaType }\n\nexport type ValidatorReturnSync<Value> =\n | Error\n | FormError\n | undefined\n | void\n | Array<Validator<Value>>\n | Array<Error | FormError>\n\nexport type ValidatorReturnAsync<Value> =\n | ValidatorReturnSync<Value>\n | Promise<ValidatorReturnSync<Value>>\nexport type Validator<Value, ErrorMessages = DefaultErrorMessages> = (\n value: Value,\n additionalArgs: ReceiveAdditionalEventArgs<Value, ErrorMessages>\n) => ValidatorReturnAsync<Value>\nexport type ReceiveAdditionalEventArgs<\n Value,\n ErrorMessages = DefaultErrorMessages,\n> = {\n /**\n * Returns the error messages from the { errorMessages } object.\n */\n errorMessages: ErrorMessages\n\n /**\n * Connects the validator to another field.\n * This allows you to rerun the validator function once the value of the connected field changes.\n */\n connectWithPath: (path: Path) => { getValue: () => Value }\n\n /**\n * Connects the validator to another field within an Iterate.Array.\n * This allows you to rerun the validator function once the value of the connected field changes.\n */\n connectWithItemPath: (path: Path) => { getValue: () => Value }\n\n /**\n * Returns the value of the given path.\n */\n getValueByPath: GetValueByPath<Value>\n\n /**\n * Returns the value of the given path or the source value.\n */\n getSourceValue: GetValueByPath<Value>\n\n /**\n * Used internally to connect a field event listener to a path.\n */\n setFieldEventListener: (\n path: Path,\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n\n /**\n * Returns the validators from the { exportValidators } object.\n */\n validators: Record<string, Validator<Value>> | undefined\n\n /**\n * The props passed to the Field component.\n */\n props: UseFieldProps<Value>\n\n /**\n * The internal data context.\n */\n dataContext: ContextState\n} & {\n /** @deprecated use the error messages from the { errorMessages } object instead. */\n pattern?: string\n /** @deprecated use the error messages from the { errorMessages } object instead. */\n required?: string\n}\n\nexport type ValidatorDisableable<Value> = Validator<Value> | false\n\n/**\n * Accept any key, so custom message keys can be used\n * including the path to the field the message is for\n */\nexport type GlobalErrorMessagesWithPaths =\n | VariousErrorMessages\n | {\n // eslint-disable-next-line no-unused-vars\n [K in `/${string}`]?: VariousErrorMessages\n }\n\n/**\n * 'MyCustom.message': 'Your custom message'\n */\nexport type DotNotationErrorMessages = Record<\n `${string}` | `${string}.${string}`,\n string\n>\n/**\n * { 'nb-NO': { 'Field.errorRequired': 'Dette feltet er påkrevd' } }\n */\nexport type ErrorMessagesWithLocaleSupport = Record<\n FormsTranslationLocale,\n DefaultErrorMessages\n>\n\nexport type InternalErrorMessages = Record<\n Exclude<FormsTranslationFlat, undefined>,\n string\n>\nexport type DefaultErrorMessages = Partial<InternalErrorMessages> &\n Partial<DotNotationErrorMessages> &\n Partial<DeprecatedErrorMessages>\n\nexport type VariousErrorMessages =\n | DefaultErrorMessages\n | ErrorMessagesWithLocaleSupport\n\nexport type DeprecatedErrorMessages = {\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n required?: string\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorPattern)\n */\n pattern?: string\n /**\n * @deprecated use StringField.errorMinLength instead\n */\n minLength?: string\n /**\n * @deprecated use StringField.errorMaxLength instead\n */\n maxLength?: string\n /**\n * @deprecated use NumberField.errorMinimum instead\n */\n minimum?: string\n /**\n * @deprecated use NumberField.errorMaximum instead\n */\n maximum?: string\n /**\n * @deprecated use NumberField.errorExclusiveMinimum instead\n */\n exclusiveMinimum?: string\n /**\n * @deprecated use NumberField.errorExclusiveMaximum instead\n */\n exclusiveMaximum?: string\n /**\n * @deprecated use NumberField.errorMultipleOf instead\n */\n multipleOf?: string\n}\n\nexport interface DataValueReadProps<Value = unknown> {\n /** JSON Pointer for where the data for this field is located in the source dataset */\n path?: Path\n /** JSON Pointer for where the data for this field is located in the source iterate loop element */\n itemPath?: Path\n /** Source data value for the field. Will take precedence over the path value given in the data context */\n value?: Value\n /** Default source data value for the field. Will not take precedence over the path value given in the data context */\n defaultValue?: Value\n}\n\nconst dataValueReadProps = ['path', 'itemPath', 'value']\n\nexport function pickDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): DataValueReadProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueReadProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): Omit<DataValueReadProps, keyof DataValueReadProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueReadProps.includes(key)\n )\n )\n}\n\ntype EventArgs<Value, ExtraValue extends ProvideAdditionalEventArgs> = [\n value: Value,\n additionalArgs?: ExtraValue & ReceiveAdditionalEventArgs<Value>,\n]\n\nexport interface DataValueWriteProps<\n Value = unknown,\n EmptyValue = undefined | unknown,\n ExtraValue extends\n ProvideAdditionalEventArgs = ProvideAdditionalEventArgs,\n> {\n emptyValue?: EmptyValue\n onFocus?: (...args: EventArgs<Value | EmptyValue, ExtraValue>) => void\n onBlur?: (...args: EventArgs<Value | EmptyValue, ExtraValue>) => void\n onChange?: (\n ...args: EventArgs<Value | EmptyValue, ExtraValue>\n ) => OnChangeReturnType\n}\n\nconst dataValueWriteProps = ['emptyValue', 'onFocus', 'onBlur', 'onChange']\n\nexport function pickDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): DataValueWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): Omit<DataValueWriteProps, keyof DataValueWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type DataValueReadWriteProps<\n Value = unknown,\n EmptyValue = undefined | unknown,\n> = DataValueReadProps<Value> & DataValueWriteProps<Value, EmptyValue>\n\nexport function pickDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(props: Props): DataValueReadWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n dataValueReadProps.includes(key) ||\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(\n props: Props\n): Omit<DataValueReadWriteProps, keyof DataValueReadWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n !dataValueReadProps.includes(key) &&\n !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type ComponentProps = SpacingProps & {\n className?: string\n}\n\nexport type ProvideAdditionalEventArgs = Record<string, unknown>\n\nexport type DataValueReadComponentProps<Value = unknown> = ComponentProps &\n DataValueReadProps<Value>\n\nexport type DataValueReadWriteComponentProps<\n Value = unknown,\n EmptyValue = undefined | unknown,\n> = ComponentProps &\n DataValueReadProps<Value> &\n DataValueWriteProps<Value, EmptyValue>\n\nexport type MessagePropParams<Value, ReturnValue> = {\n conditionally: (\n callback: () => ReturnValue | void,\n options?: {\n showInitially?: boolean\n }\n ) => ReturnValue\n getValueByPath: GetValueByPath<Value>\n getFieldByPath: (path: Path) => {\n props: FieldProps\n id: Identifier\n }\n}\nexport type MessageProp<Value, ReturnValue> =\n | ReturnValue\n | ((\n value: Value,\n options: MessagePropParams<Value, ReturnValue>\n ) => ReturnValue | undefined)\nexport type MessageTypes<Value> =\n | UseFieldProps<Value>['info']\n | UseFieldProps<Value>['warning']\n | UseFieldProps<Value>['error']\n\nexport type ConnectorProps<Value = unknown> = Pick<\n UseFieldProps<Value>,\n 'onChange' | 'onBlurValidator'\n>\n\nexport interface UseFieldProps<\n Value = unknown,\n EmptyValue = undefined | unknown,\n ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages,\n> extends DataValueReadWriteComponentProps<Value, EmptyValue>,\n AriaAttributes {\n // - HTML Element Attributes\n /**\n * ID added to the actual field component, and linked to the label via for-attribute\n */\n id?: Identifier\n name?: string\n disabled?: boolean\n readOnly?: boolean\n autoComplete?:\n | HTMLInputElement['autocomplete']\n | HTMLTextAreaElement['autocomplete']\n /**\n * Text showing in place of the value if no value is given\n */\n placeholder?: React.ReactNode\n\n /**\n * NB: Undocumented for now.\n * Forwards all possible props to the underlying component.\n */\n htmlAttributes?: Record<string, unknown>\n\n /**\n * NB: Undocumented for now.\n * Forwards all given props in a props object.\n */\n props?: Record<string, unknown>\n\n // - Used by useFieldProps and FieldBlock\n info?: MessageProp<Value, React.ReactNode | Array<React.ReactNode>>\n warning?: MessageProp<Value, React.ReactNode | Array<React.ReactNode>>\n error?: MessageProp<Value, Error | FormError | Array<Error | FormError>>\n\n // - Validation\n required?: boolean\n schema?: AllJSONSchemaVersions<Value>\n /** @deprecated Use `onChangeValidator` instead */\n validator?: Validator<Value>\n onChangeValidator?: Validator<Value>\n onBlurValidator?: Validator<Value>\n exportValidators?: Record<string, Validator<Value>>\n validateRequired?: (\n internal: Value,\n {\n emptyValue,\n required,\n isChanged,\n error,\n }: {\n emptyValue: EmptyValue\n required: boolean\n isChanged: boolean\n error: FormError | undefined\n }\n ) => FormError | undefined\n /**\n * Should error messages based on validation be shown initially (from given value-prop or source data)\n * before the user interacts with the field?\n * @default false\n */\n validateInitially?: boolean\n /**\n * Should error messages be shown when touching (like focusing a field and blurring) without having changed\n * the value? So the user did not introduce a new error, but it was invalid based on validation initially.\n */\n validateUnchanged?: boolean\n /**\n * Should validation be done while writing, not just when blurring the field?\n */\n /**\n * @deprecated – Replaced with validateContinuously, continuousValidation can be removed in v11.\n */\n continuousValidation?: boolean\n /**\n * Should validation be done while writing, not just when blurring the field?\n */\n validateContinuously?: boolean\n /**\n * Provide custom error messages for the field\n */\n errorMessages?: ErrorMessages\n\n // - Derivatives\n\n /**\n * Transforms the `value` before it's displayed in the field (e.g. input).\n * Public API. Should not be used internally.\n */\n transformIn?: (external: unknown) => Value\n\n /**\n * Transforms the value before it gets forwarded to the form data object or returned as the onChange value parameter.\n * Public API. Should not be used internally.\n */\n transformOut?: (internal: Value, additionalArgs?: unknown) => unknown\n\n /**\n * Transforms the value given by `handleChange` after `fromInput` and before `updateValue` and `toEvent`. The second parameter returns the current value.\n */\n transformValue?: (value: Value, currentValue?: Value) => Value\n\n /**\n * Transform additionalArgs or generate it based on `value`.\n */\n provideAdditionalArgs?: (\n value: Value,\n additionalArgs?: ProvideAdditionalEventArgs\n ) => ProvideAdditionalEventArgs\n\n /**\n * Transforms the value before it gets returned as the `value`.\n */\n toInput?: (external: Value | unknown) => Value | unknown\n\n /**\n * Transforms the internal value before it gets returned by even callbacks such as `onChange`, `onFocus` and `onBlur`. The second parameter returns the event type: `onChange`, `onFocus`, `onBlur` or `onBlurValidator`.\n */\n toEvent?: (\n internal: Value,\n type: 'onChange' | 'onFocus' | 'onBlur' | 'onBlurValidator'\n ) => Value\n\n /**\n * Transforms the value given by `handleChange` before it is used in the further process flow. Use it to destruct the value from the original event object.\n */\n fromInput?: (external: Value | unknown) => Value\n\n /**\n * Transforms the given props `value` before any other step gets entered.\n */\n fromExternal?: (external: Value) => Value\n\n /**\n * For internal use only.\n */\n valueType?: string | number | boolean | Array<string | number | boolean>\n}\n\nexport type FieldProps<\n Value = unknown,\n EmptyValue = undefined | unknown,\n ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages,\n> = UseFieldProps<Value, EmptyValue, ErrorMessages> & SharedFieldBlockProps\n\nexport type FieldPropsGeneric<\n Value = unknown,\n EmptyValue = undefined | unknown,\n ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages,\n> = Omit<\n FieldProps<Value, EmptyValue, ErrorMessages>,\n keyof DataValueWriteProps\n> &\n DataValueWriteProps<Value, EmptyValue, ProvideAdditionalEventArgs>\n\nexport type FieldPropsWithExtraValue<\n Value = unknown,\n ExtraValue extends\n ProvideAdditionalEventArgs = ProvideAdditionalEventArgs,\n EmptyValue = undefined | unknown,\n ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages,\n> = Omit<\n FieldProps<Value, EmptyValue, ErrorMessages>,\n keyof DataValueWriteProps\n> &\n DataValueWriteProps<Value, EmptyValue, ExtraValue>\n\nexport interface ValueProps<Value = unknown>\n extends DataValueReadComponentProps<Value> {\n /**\n * Field label to show above the data value.\n */\n label?: React.ReactNode\n\n /** Use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n\n /**\n * Use `true` to inherit the label from a visible (rendered) field with the same path.\n */\n inheritLabel?: boolean\n\n /**\n * Use `true` to inherit the visibility from a field with the same path.\n */\n inheritVisibility?: boolean\n\n /**\n * Shows the value even if it is empty.\n */\n showEmpty?: boolean\n\n /**\n * Text showing in place of the value if no value is given.\n */\n placeholder?: React.ReactNode\n\n /**\n * For showing the value inline (not as a block element)\n */\n inline?: boolean\n\n /** The max-width of a value block. Defaults to large */\n maxWidth?: 'small' | 'medium' | 'large' | 'auto'\n\n /**\n * Provide help content for the value.\n */\n help?: HelpProps\n\n /**\n * Transforms the label before it gets displayed. Receives the label as the first parameter. The second parameter is a object containing the `convertJsxToString` function.\n */\n transformLabel?: (\n label: React.ReactNode,\n convertJsxToString: (label: React.ReactNode) => string\n ) => React.ReactNode\n\n /**\n * Transforms the `value` before it's displayed in the field (e.g. input).\n * Public API. Should not be used internally.\n */\n transformIn?: (external: Value | unknown) => Value | unknown\n\n /**\n * Transforms the value before it gets returned as the `value`.\n */\n toInput?: (external: Value | unknown) => Value | unknown\n\n /**\n * Transforms the given props `value` before any other step gets entered.\n */\n fromExternal?: (external: Value) => Value\n}\n\nexport type Path = string\nexport type PathStrict = `/${string}`\nexport type Identifier = string\n\nexport type SubmitState =\n | 'pending' // Used for async operations\n | 'complete' // Used to hide the submit indicator\n | 'success' // Used for fields\n | 'error' // Used when error is shown\n | 'abort' // Used to abort the state regardless (step change)\n\n/**\n * Provide a error that shows in the FormStatus of a field.\n */\ntype EventStateObjectError = Error\n/**\n * Provide a warning that shows in the FormStatus of a field.\n */\ntype EventStateObjectWarning = React.ReactNode\n/**\n * Provide an info that shows in the FormStatus of a field.\n */\ntype EventStateObjectInfo = React.ReactNode\n\n/**\n * Provide a status that will enforce the form to stay in pending state\n */\ntype EventStateObjectStatus = 'pending'\n\n/**\n * Provide a success state that will show an indicator on the related field label\n */\ntype EventStateObjectSuccess = 'saved'\n\n/**\n * Provide an error or status messages that shows in the FormStatus of a field\n */\nexport type EventStateObjectOr = {\n error?: EventStateObjectError\n warning?: EventStateObjectWarning\n info?: EventStateObjectInfo\n pending?: EventStateObjectStatus\n customStatus?: unknown\n}\n\nexport type EventStateObjectEitherOr =\n | { error: EventStateObjectError }\n | { warning: EventStateObjectWarning }\n | { info: EventStateObjectInfo }\n | { status: EventStateObjectStatus }\n | { customStatus: unknown }\n\nexport type EventStateObject = EventStateObjectOr &\n EventStateObjectEitherOr\n\n/**\n * Provide 'saved' to indicate the data has been saved successfully. Cannot be combined with `error`.\n */\nexport type EventStateObjectWithSuccess = EventStateObjectOr & {\n success?: EventStateObjectSuccess\n} & (EventStateObjectEitherOr | { success: EventStateObjectSuccess })\n\n/**\n * Provide an error or status messages that shows in the FormStatus of a field\n */\nexport type EventReturnWithStateObject = Error | EventStateObject\n\nexport type EventReturnWithStateObjectAndSuccess =\n | Error\n | EventStateObjectWithSuccess\n\nexport type OnSubmitParams<Data = JsonObject> = {\n /** Will remove data entries of fields that are not visible */\n reduceToVisibleFields: (\n data: Data,\n options?: VisibleDataOptions\n ) => Partial<Data>\n\n /** Will call the given function for each data path. The returned `value` will replace each data entry. It's up to you to define the shape of the value. */\n transformData: (data: Data, handler: TransformData) => Partial<Data>\n\n /** Will filter data based on the given \"filterDataHandler\" method */\n filterData: (filterDataHandler: FilterData) => Partial<Data>\n\n /** Will remove browser-side stored autocomplete data */\n resetForm: () => void\n\n /** Will empty the whole internal data set of the form */\n clearData: () => void\n}\n\nexport type OnSubmitReturn =\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\nexport type OnSubmit<Data = JsonObject> = (\n data: Data,\n {\n reduceToVisibleFields,\n transformData,\n filterData,\n resetForm,\n clearData,\n }: OnSubmitParams\n) => OnSubmitReturn\nexport type OnSubmitRequest = ({\n getErrors,\n}: {\n getErrors: () => Array<DataPathHandlerParameters>\n}) => void\n\nexport type OnCommit<Data = JsonObject> = (\n data: Data,\n {\n clearData,\n preventCommit,\n }: {\n clearData: () => void\n preventCommit?: () => void\n }\n) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n\nexport type OnChange<Data = JsonObject> = (\n data: Data,\n additionalArgs: Pick<OnSubmitParams, 'filterData'>\n) => OnChangeReturnType\n\ntype OnChangeReturnType =\n | EventReturnWithStateObjectAndSuccess\n | void\n | Promise<EventReturnWithStateObjectAndSuccess | void>\n\nexport type CountryCode =\n | PathStrict\n | `${Uppercase<string>}${Uppercase<string>}`\n"],"mappings":"AA2MA,MAAMA,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;AAExD,OAAO,SAASC,sBAAsBA,CACpCC,KAAY,EACQ;EACpB,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,KACvCP,kBAAkB,CAACQ,QAAQ,CAACD,GAAG,CACjC,CACF,CAAC;AACH;AAEA,OAAO,SAASE,sBAAsBA,CACpCP,KAAY,EACwC;EACpD,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChC,CAAC,CAACC,GAAG,CAAC,KAAK,CAACP,kBAAkB,CAACQ,QAAQ,CAACD,GAAG,CAC7C,CACF,CAAC;AACH;AAqBA,MAAMG,mBAAmB,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;AAE3E,OAAO,SAASC,uBAAuBA,CACrCT,KAAY,EACS;EACrB,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,KACvCG,mBAAmB,CAACF,QAAQ,CAACD,GAAG,CAClC,CACF,CAAC;AACH;AAEA,OAAO,SAASK,uBAAuBA,CACrCV,KAAY,EAC0C;EACtD,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChC,CAAC,CAACC,GAAG,CAAC,KAAK,CAACG,mBAAmB,CAACF,QAAQ,CAACD,GAAG,CAC9C,CACF,CAAC;AACH;AAOA,OAAO,SAASM,2BAA2BA,CAEzCX,KAAY,EAA2B;EACvC,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChC,CAAC,CAACC,GAAG,CAAC,KACJP,kBAAkB,CAACQ,QAAQ,CAACD,GAAG,CAAC,IAChCG,mBAAmB,CAACF,QAAQ,CAACD,GAAG,CACpC,CACF,CAAC;AACH;AAEA,OAAO,SAASO,2BAA2BA,CAGzCZ,KAAY,EACkD;EAC9D,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChC,CAAC,CAACC,GAAG,CAAC,KACJ,CAACP,kBAAkB,CAACQ,QAAQ,CAACD,GAAG,CAAC,IACjC,CAACG,mBAAmB,CAACF,QAAQ,CAACD,GAAG,CACrC,CACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["dataValueReadProps","pickDataValueReadProps","props","Object","fromEntries","entries","filter","key","includes","omitDataValueReadProps","dataValueWriteProps","pickDataValueWriteProps","omitDataValueWriteProps","pickDataValueReadWriteProps","omitDataValueReadWriteProps"],"sources":["../../../../src/extensions/forms/types.ts"],"sourcesContent":["import type { AriaAttributes } from 'react'\nimport type { SpacingProps } from '../../components/space/types'\nimport type {\n ContextState,\n DataPathHandlerParameters,\n EventListenerCall,\n FilterData,\n TransformData,\n VisibleDataOptions,\n} from './DataContext'\nimport type { SharedFieldBlockProps } from './FieldBlock'\nimport type { JSONSchema4, JSONSchema6, JSONSchema7 } from 'json-schema'\nimport type { JSONSchemaType } from 'ajv/dist/2020'\nimport { JsonObject, FormError } from './utils'\nimport {\n FormsTranslationFlat,\n FormsTranslationLocale,\n} from './hooks/useTranslation'\nimport { GetValueByPath } from './hooks/useDataValue'\nimport { HelpProps } from '../../components/help-button/HelpButtonInline'\n\nexport type * from 'json-schema'\nexport type JSONSchema = JSONSchema7\nexport type AllJSONSchemaVersionsBasis<DataType> =\n | JSONSchema4\n | JSONSchema6\n | JSONSchema7\n | JSONSchemaType<DataType>\nexport type AllJSONSchemaVersions<DataType = unknown> =\n | AllJSONSchemaVersionsBasis<DataType>\n\n // In order to support \"schema = { ... } as const\"\n | (Omit<AllJSONSchemaVersionsBasis<DataType>, 'required'> & {\n required?: readonly string[]\n })\nexport { JSONSchemaType }\n\nexport type ValidatorReturnSync<Value> =\n | Error\n | FormError\n | string\n | React.ReactElement\n | undefined\n | void\n | Array<Validator<Value>>\n | Array<Error | FormError>\n\nexport type ValidatorReturnAsync<Value> =\n | ValidatorReturnSync<Value>\n | Promise<ValidatorReturnSync<Value>>\nexport type Validator<Value, ErrorMessages = DefaultErrorMessages> = (\n value: Value,\n additionalArgs: ReceiveAdditionalEventArgs<Value, ErrorMessages>\n) => ValidatorReturnAsync<Value>\nexport type ReceiveAdditionalEventArgs<\n Value,\n ErrorMessages = DefaultErrorMessages,\n> = {\n /**\n * Returns the error messages from the { errorMessages } object.\n */\n errorMessages: ErrorMessages\n\n /**\n * Connects the validator to another field.\n * This allows you to rerun the validator function once the value of the connected field changes.\n */\n connectWithPath: (path: Path) => { getValue: () => Value }\n\n /**\n * Connects the validator to another field within an Iterate.Array.\n * This allows you to rerun the validator function once the value of the connected field changes.\n */\n connectWithItemPath: (path: Path) => { getValue: () => Value }\n\n /**\n * Returns the value of the given path.\n */\n getValueByPath: GetValueByPath<Value>\n\n /**\n * Returns the value of the given path or the source value.\n */\n getSourceValue: GetValueByPath<Value>\n\n /**\n * Used internally to connect a field event listener to a path.\n */\n setFieldEventListener: (\n path: Path,\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n\n /**\n * Returns the validators from the { exportValidators } object.\n */\n validators: Record<string, Validator<Value>> | undefined\n\n /**\n * The props passed to the Field component.\n */\n props: UseFieldProps<Value>\n\n /**\n * The internal data context.\n */\n dataContext: ContextState\n} & {\n /** @deprecated use the error messages from the { errorMessages } object instead. */\n pattern?: string\n /** @deprecated use the error messages from the { errorMessages } object instead. */\n required?: string\n}\n\nexport type ValidatorDisableable<Value> = Validator<Value> | false\n\n/**\n * Accept any key, so custom message keys can be used\n * including the path to the field the message is for\n */\nexport type GlobalErrorMessagesWithPaths =\n | VariousErrorMessages\n | {\n // eslint-disable-next-line no-unused-vars\n [K in `/${string}`]?: VariousErrorMessages\n }\n\n/**\n * 'MyCustom.message': 'Your custom message'\n */\nexport type DotNotationErrorMessages = Record<\n `${string}` | `${string}.${string}`,\n string | React.ReactElement\n>\n/**\n * { 'nb-NO': { 'Field.errorRequired': 'Dette feltet er påkrevd' } }\n */\nexport type ErrorMessagesWithLocaleSupport = Record<\n FormsTranslationLocale,\n DefaultErrorMessages\n>\n\nexport type InternalErrorMessages = Record<\n Exclude<FormsTranslationFlat, undefined>,\n string\n>\nexport type DefaultErrorMessages = Partial<InternalErrorMessages> &\n Partial<DotNotationErrorMessages> &\n Partial<DeprecatedErrorMessages>\n\nexport type VariousErrorMessages =\n | DefaultErrorMessages\n | ErrorMessagesWithLocaleSupport\n\nexport type DeprecatedErrorMessages = {\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n required?: string\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorPattern)\n */\n pattern?: string\n /**\n * @deprecated use StringField.errorMinLength instead\n */\n minLength?: string\n /**\n * @deprecated use StringField.errorMaxLength instead\n */\n maxLength?: string\n /**\n * @deprecated use NumberField.errorMinimum instead\n */\n minimum?: string\n /**\n * @deprecated use NumberField.errorMaximum instead\n */\n maximum?: string\n /**\n * @deprecated use NumberField.errorExclusiveMinimum instead\n */\n exclusiveMinimum?: string\n /**\n * @deprecated use NumberField.errorExclusiveMaximum instead\n */\n exclusiveMaximum?: string\n /**\n * @deprecated use NumberField.errorMultipleOf instead\n */\n multipleOf?: string\n}\n\nexport interface DataValueReadProps<Value = unknown> {\n /** JSON Pointer for where the data for this field is located in the source dataset */\n path?: Path\n /** JSON Pointer for where the data for this field is located in the source iterate loop element */\n itemPath?: Path\n /** Source data value for the field. Will take precedence over the path value given in the data context */\n value?: Value\n /** Default source data value for the field. Will not take precedence over the path value given in the data context */\n defaultValue?: Value\n}\n\nconst dataValueReadProps = ['path', 'itemPath', 'value']\n\nexport function pickDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): DataValueReadProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueReadProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): Omit<DataValueReadProps, keyof DataValueReadProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueReadProps.includes(key)\n )\n )\n}\n\ntype EventArgs<Value, ExtraValue extends ProvideAdditionalEventArgs> = [\n value: Value,\n additionalArgs?: ExtraValue & ReceiveAdditionalEventArgs<Value>,\n]\n\nexport interface DataValueWriteProps<\n Value = unknown,\n EmptyValue = undefined | unknown,\n ExtraValue extends\n ProvideAdditionalEventArgs = ProvideAdditionalEventArgs,\n> {\n emptyValue?: EmptyValue\n onFocus?: (...args: EventArgs<Value | EmptyValue, ExtraValue>) => void\n onBlur?: (...args: EventArgs<Value | EmptyValue, ExtraValue>) => void\n onChange?: (\n ...args: EventArgs<Value | EmptyValue, ExtraValue>\n ) => OnChangeReturnType\n}\n\nconst dataValueWriteProps = ['emptyValue', 'onFocus', 'onBlur', 'onChange']\n\nexport function pickDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): DataValueWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): Omit<DataValueWriteProps, keyof DataValueWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type DataValueReadWriteProps<\n Value = unknown,\n EmptyValue = undefined | unknown,\n> = DataValueReadProps<Value> & DataValueWriteProps<Value, EmptyValue>\n\nexport function pickDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(props: Props): DataValueReadWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n dataValueReadProps.includes(key) ||\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(\n props: Props\n): Omit<DataValueReadWriteProps, keyof DataValueReadWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n !dataValueReadProps.includes(key) &&\n !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type ComponentProps = SpacingProps & {\n className?: string\n}\n\nexport type ProvideAdditionalEventArgs = Record<string, unknown>\n\nexport type DataValueReadComponentProps<Value = unknown> = ComponentProps &\n DataValueReadProps<Value>\n\nexport type DataValueReadWriteComponentProps<\n Value = unknown,\n EmptyValue = undefined | unknown,\n> = ComponentProps &\n DataValueReadProps<Value> &\n DataValueWriteProps<Value, EmptyValue>\n\nexport type MessagePropParams<Value, ReturnValue> = {\n conditionally: (\n callback: () => ReturnValue | void,\n options?: {\n showInitially?: boolean\n }\n ) => ReturnValue\n getValueByPath: GetValueByPath<Value>\n getFieldByPath: (path: Path) => {\n props: FieldProps\n id: Identifier\n }\n}\nexport type MessageProp<Value, ReturnValue> =\n | ReturnValue\n | ((\n value: Value,\n options: MessagePropParams<Value, ReturnValue>\n ) => ReturnValue | undefined)\nexport type MessageTypes<Value> =\n | UseFieldProps<Value>['info']\n | UseFieldProps<Value>['warning']\n | UseFieldProps<Value>['error']\n\nexport type ConnectorProps<Value = unknown> = Pick<\n UseFieldProps<Value>,\n 'onChange' | 'onBlurValidator'\n>\n\nexport type InfoProp<Value> = MessageProp<\n Value,\n React.ReactNode | Array<React.ReactNode>\n>\nexport type WarningProp<Value> = MessageProp<\n Value,\n React.ReactNode | Array<React.ReactNode>\n>\nexport type ErrorProp<Value> = MessageProp<\n Value,\n | string\n | React.ReactElement\n | Error\n | FormError\n | Array<string | React.ReactElement | Error | FormError>\n>\n\nexport interface UseFieldProps<\n Value = unknown,\n EmptyValue = undefined | unknown,\n ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages,\n> extends DataValueReadWriteComponentProps<Value, EmptyValue>,\n AriaAttributes {\n // - HTML Element Attributes\n /**\n * ID added to the actual field component, and linked to the label via for-attribute\n */\n id?: Identifier\n name?: string\n disabled?: boolean\n readOnly?: boolean\n autoComplete?:\n | HTMLInputElement['autocomplete']\n | HTMLTextAreaElement['autocomplete']\n /**\n * Text showing in place of the value if no value is given\n */\n placeholder?: React.ReactNode\n\n /**\n * NB: Undocumented for now.\n * Forwards all possible props to the underlying component.\n */\n htmlAttributes?: Record<string, unknown>\n\n /**\n * NB: Undocumented for now.\n * Forwards all given props in a props object.\n */\n props?: Record<string, unknown>\n\n // - Used by useFieldProps and FieldBlock\n info?: InfoProp<Value>\n warning?: WarningProp<Value>\n error?: ErrorProp<Value>\n\n // - Validation\n required?: boolean\n schema?: AllJSONSchemaVersions<Value>\n /** @deprecated Use `onChangeValidator` instead */\n validator?: Validator<Value>\n onChangeValidator?: Validator<Value>\n onBlurValidator?: Validator<Value>\n exportValidators?: Record<string, Validator<Value>>\n validateRequired?: (\n internal: Value,\n {\n emptyValue,\n required,\n isChanged,\n error,\n }: {\n emptyValue: EmptyValue\n required: boolean\n isChanged: boolean\n error: FormError | undefined\n }\n ) => FormError | undefined\n /**\n * Should error messages based on validation be shown initially (from given value-prop or source data)\n * before the user interacts with the field?\n * @default false\n */\n validateInitially?: boolean\n /**\n * Should error messages be shown when touching (like focusing a field and blurring) without having changed\n * the value? So the user did not introduce a new error, but it was invalid based on validation initially.\n */\n validateUnchanged?: boolean\n /**\n * Should validation be done while writing, not just when blurring the field?\n */\n /**\n * @deprecated – Replaced with validateContinuously, continuousValidation can be removed in v11.\n */\n continuousValidation?: boolean\n /**\n * Should validation be done while writing, not just when blurring the field?\n */\n validateContinuously?: boolean\n /**\n * Provide custom error messages for the field\n */\n errorMessages?: ErrorMessages\n\n // - Derivatives\n\n /**\n * Transforms the `value` before it's displayed in the field (e.g. input).\n * Public API. Should not be used internally.\n */\n transformIn?: (external: unknown) => Value\n\n /**\n * Transforms the value before it gets forwarded to the form data object or returned as the onChange value parameter.\n * Public API. Should not be used internally.\n */\n transformOut?: (internal: Value, additionalArgs?: unknown) => unknown\n\n /**\n * Transforms the value given by `handleChange` after `fromInput` and before `updateValue` and `toEvent`. The second parameter returns the current value.\n */\n transformValue?: (value: Value, currentValue?: Value) => Value\n\n /**\n * Transform additionalArgs or generate it based on `value`.\n */\n provideAdditionalArgs?: (\n value: Value,\n additionalArgs?: ProvideAdditionalEventArgs\n ) => ProvideAdditionalEventArgs\n\n /**\n * Transforms the value before it gets returned as the `value`.\n */\n toInput?: (external: Value | unknown) => Value | unknown\n\n /**\n * Transforms the internal value before it gets returned by even callbacks such as `onChange`, `onFocus` and `onBlur`. The second parameter returns the event type: `onChange`, `onFocus`, `onBlur` or `onBlurValidator`.\n */\n toEvent?: (\n internal: Value,\n type: 'onChange' | 'onFocus' | 'onBlur' | 'onBlurValidator'\n ) => Value\n\n /**\n * Transforms the value given by `handleChange` before it is used in the further process flow. Use it to destruct the value from the original event object.\n */\n fromInput?: (external: Value | unknown) => Value\n\n /**\n * Transforms the given props `value` before any other step gets entered.\n */\n fromExternal?: (external: Value) => Value\n\n /**\n * For internal use only.\n */\n valueType?: string | number | boolean | Array<string | number | boolean>\n}\n\nexport type FieldProps<\n Value = unknown,\n EmptyValue = undefined | unknown,\n ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages,\n> = UseFieldProps<Value, EmptyValue, ErrorMessages> & SharedFieldBlockProps\n\nexport type FieldPropsGeneric<\n Value = unknown,\n EmptyValue = undefined | unknown,\n ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages,\n> = Omit<\n FieldProps<Value, EmptyValue, ErrorMessages>,\n keyof DataValueWriteProps\n> &\n DataValueWriteProps<Value, EmptyValue, ProvideAdditionalEventArgs>\n\nexport type FieldPropsWithExtraValue<\n Value = unknown,\n ExtraValue extends\n ProvideAdditionalEventArgs = ProvideAdditionalEventArgs,\n EmptyValue = undefined | unknown,\n ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages,\n> = Omit<\n FieldProps<Value, EmptyValue, ErrorMessages>,\n keyof DataValueWriteProps\n> &\n DataValueWriteProps<Value, EmptyValue, ExtraValue>\n\nexport interface ValueProps<Value = unknown>\n extends DataValueReadComponentProps<Value> {\n /**\n * Field label to show above the data value.\n */\n label?: React.ReactNode\n\n /** Use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n\n /**\n * Use `true` to inherit the label from a visible (rendered) field with the same path.\n */\n inheritLabel?: boolean\n\n /**\n * Use `true` to inherit the visibility from a field with the same path.\n */\n inheritVisibility?: boolean\n\n /**\n * Shows the value even if it is empty.\n */\n showEmpty?: boolean\n\n /**\n * Text showing in place of the value if no value is given.\n */\n placeholder?: React.ReactNode\n\n /**\n * For showing the value inline (not as a block element)\n */\n inline?: boolean\n\n /** The max-width of a value block. Defaults to large */\n maxWidth?: 'small' | 'medium' | 'large' | 'auto'\n\n /**\n * Provide help content for the value.\n */\n help?: HelpProps\n\n /**\n * Transforms the label before it gets displayed. Receives the label as the first parameter. The second parameter is a object containing the `convertJsxToString` function.\n */\n transformLabel?: (\n label: React.ReactNode,\n convertJsxToString: (label: React.ReactNode) => string\n ) => React.ReactNode\n\n /**\n * Transforms the `value` before it's displayed in the field (e.g. input).\n * Public API. Should not be used internally.\n */\n transformIn?: (external: Value | unknown) => Value | unknown\n\n /**\n * Transforms the value before it gets returned as the `value`.\n */\n toInput?: (external: Value | unknown) => Value | unknown\n\n /**\n * Transforms the given props `value` before any other step gets entered.\n */\n fromExternal?: (external: Value) => Value\n}\n\nexport type Path = string\nexport type PathStrict = `/${string}`\nexport type Identifier = string\n\nexport type SubmitState =\n | 'pending' // Used for async operations\n | 'complete' // Used to hide the submit indicator\n | 'success' // Used for fields\n | 'error' // Used when error is shown\n | 'abort' // Used to abort the state regardless (step change)\n\n/**\n * Provide a error that shows in the FormStatus of a field.\n */\ntype EventStateObjectError = Error\n/**\n * Provide a warning that shows in the FormStatus of a field.\n */\ntype EventStateObjectWarning = React.ReactNode\n/**\n * Provide an info that shows in the FormStatus of a field.\n */\ntype EventStateObjectInfo = React.ReactNode\n\n/**\n * Provide a status that will enforce the form to stay in pending state\n */\ntype EventStateObjectStatus = 'pending'\n\n/**\n * Provide a success state that will show an indicator on the related field label\n */\ntype EventStateObjectSuccess = 'saved'\n\n/**\n * Provide an error or status messages that shows in the FormStatus of a field\n */\nexport type EventStateObjectOr = {\n error?: EventStateObjectError\n warning?: EventStateObjectWarning\n info?: EventStateObjectInfo\n pending?: EventStateObjectStatus\n customStatus?: unknown\n}\n\nexport type EventStateObjectEitherOr =\n | { error: EventStateObjectError }\n | { warning: EventStateObjectWarning }\n | { info: EventStateObjectInfo }\n | { status: EventStateObjectStatus }\n | { customStatus: unknown }\n\nexport type EventStateObject = EventStateObjectOr &\n EventStateObjectEitherOr\n\n/**\n * Provide 'saved' to indicate the data has been saved successfully. Cannot be combined with `error`.\n */\nexport type EventStateObjectWithSuccess = EventStateObjectOr & {\n success?: EventStateObjectSuccess\n} & (EventStateObjectEitherOr | { success: EventStateObjectSuccess })\n\n/**\n * Provide an error or status messages that shows in the FormStatus of a field\n */\nexport type EventReturnWithStateObject = Error | EventStateObject\n\nexport type EventReturnWithStateObjectAndSuccess =\n | Error\n | EventStateObjectWithSuccess\n\nexport type OnSubmitParams<Data = JsonObject> = {\n /** Will remove data entries of fields that are not visible */\n reduceToVisibleFields: (\n data: Data,\n options?: VisibleDataOptions\n ) => Partial<Data>\n\n /** Will call the given function for each data path. The returned `value` will replace each data entry. It's up to you to define the shape of the value. */\n transformData: (data: Data, handler: TransformData) => Partial<Data>\n\n /** Will filter data based on the given \"filterDataHandler\" method */\n filterData: (filterDataHandler: FilterData) => Partial<Data>\n\n /** Will remove browser-side stored autocomplete data */\n resetForm: () => void\n\n /** Will empty the whole internal data set of the form */\n clearData: () => void\n}\n\nexport type OnSubmitReturn =\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\nexport type OnSubmit<Data = JsonObject> = (\n data: Data,\n {\n reduceToVisibleFields,\n transformData,\n filterData,\n resetForm,\n clearData,\n }: OnSubmitParams\n) => OnSubmitReturn\nexport type OnSubmitRequest = ({\n getErrors,\n}: {\n getErrors: () => Array<DataPathHandlerParameters>\n}) => void\n\nexport type OnCommit<Data = JsonObject> = (\n data: Data,\n {\n clearData,\n preventCommit,\n }: {\n clearData: () => void\n preventCommit?: () => void\n }\n) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n\nexport type OnChange<Data = JsonObject> = (\n data: Data,\n additionalArgs: Pick<OnSubmitParams, 'filterData'>\n) => OnChangeReturnType\n\ntype OnChangeReturnType =\n | EventReturnWithStateObjectAndSuccess\n | void\n | Promise<EventReturnWithStateObjectAndSuccess | void>\n\nexport type CountryCode =\n | PathStrict\n | `${Uppercase<string>}${Uppercase<string>}`\n"],"mappings":"AA6MA,MAAMA,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;AAExD,OAAO,SAASC,sBAAsBA,CACpCC,KAAY,EACQ;EACpB,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,KACvCP,kBAAkB,CAACQ,QAAQ,CAACD,GAAG,CACjC,CACF,CAAC;AACH;AAEA,OAAO,SAASE,sBAAsBA,CACpCP,KAAY,EACwC;EACpD,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChC,CAAC,CAACC,GAAG,CAAC,KAAK,CAACP,kBAAkB,CAACQ,QAAQ,CAACD,GAAG,CAC7C,CACF,CAAC;AACH;AAqBA,MAAMG,mBAAmB,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;AAE3E,OAAO,SAASC,uBAAuBA,CACrCT,KAAY,EACS;EACrB,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,KACvCG,mBAAmB,CAACF,QAAQ,CAACD,GAAG,CAClC,CACF,CAAC;AACH;AAEA,OAAO,SAASK,uBAAuBA,CACrCV,KAAY,EAC0C;EACtD,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChC,CAAC,CAACC,GAAG,CAAC,KAAK,CAACG,mBAAmB,CAACF,QAAQ,CAACD,GAAG,CAC9C,CACF,CAAC;AACH;AAOA,OAAO,SAASM,2BAA2BA,CAEzCX,KAAY,EAA2B;EACvC,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChC,CAAC,CAACC,GAAG,CAAC,KACJP,kBAAkB,CAACQ,QAAQ,CAACD,GAAG,CAAC,IAChCG,mBAAmB,CAACF,QAAQ,CAACD,GAAG,CACpC,CACF,CAAC;AACH;AAEA,OAAO,SAASO,2BAA2BA,CAGzCZ,KAAY,EACkD;EAC9D,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChC,CAAC,CAACC,GAAG,CAAC,KACJ,CAACP,kBAAkB,CAACQ,QAAQ,CAACD,GAAG,CAAC,IACjC,CAACG,mBAAmB,CAACF,QAAQ,CAACD,GAAG,CACrC,CACF,CAAC;AACH","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ErrorObject } from 'ajv/dist/2020';
2
3
  import { FormsTranslationFlat } from '../hooks/useTranslation';
3
4
  type ValidationRule = string | 'type'
@@ -11,35 +12,38 @@ type ValidationRule = string | 'type'
11
12
  | 'required';
12
13
  type FormErrorOptions = {
13
14
  /**
15
+ * What validation rule did the error occur based on? (i.e: minLength, required or maximum).
14
16
  * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)
15
17
  */
16
18
  validationRule?: ValidationRule;
17
- messageValues?: Record<string, string>;
18
- ajvKeyword?: ErrorObject['keyword'];
19
- errors?: Array<Error>;
20
- };
21
- /**
22
- * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling
23
- */
24
- export declare class FormError extends Error {
25
- /**
26
- * What validation rule did the error occur based on? (i.e: minLength, required or maximum)
27
- * @deprecated – can be removed in v11
28
- */
29
- validationRule?: FormErrorOptions['validationRule'];
30
19
  /**
31
20
  * Replacement values relevant for this error.
32
21
  * @example { minLength: 3 } to be able to replace values in a message like "Minimum {minLength} characters"
33
22
  */
34
- messageValues?: FormErrorOptions['messageValues'];
23
+ messageValues?: Record<string, string>;
35
24
  /**
36
25
  * The AJV keyword that caused the error.
37
26
  */
38
- ajvKeyword?: FormErrorOptions['ajvKeyword'];
27
+ ajvKeyword?: ErrorObject['keyword'];
39
28
  /**
40
29
  * An array of errors that should be rendered in the same error message.
41
30
  */
31
+ errors?: Array<Error | FormError>;
32
+ /**
33
+ * For internal use only.
34
+ * A formatted (JSX) message to be used internally later on.
35
+ */
36
+ formattedMessage?: string | React.ReactElement;
37
+ };
38
+ /**
39
+ * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling
40
+ */
41
+ export declare class FormError extends Error {
42
+ validationRule?: FormErrorOptions['validationRule'];
43
+ messageValues?: FormErrorOptions['messageValues'];
44
+ ajvKeyword?: FormErrorOptions['ajvKeyword'];
42
45
  errors?: FormErrorOptions['errors'];
43
- constructor(message: FormsTranslationFlat | string, options?: FormErrorOptions);
46
+ formattedMessage?: FormErrorOptions['formattedMessage'];
47
+ constructor(message: FormsTranslationFlat | string | React.ReactElement, options?: FormErrorOptions);
44
48
  }
45
49
  export {};
@@ -6,6 +6,7 @@ export class FormError extends Error {
6
6
  _defineProperty(this, "messageValues", void 0);
7
7
  _defineProperty(this, "ajvKeyword", void 0);
8
8
  _defineProperty(this, "errors", void 0);
9
+ _defineProperty(this, "formattedMessage", void 0);
9
10
  if (options) {
10
11
  for (const key in options) {
11
12
  this[key] = options[key];
@@ -1 +1 @@
1
- {"version":3,"file":"FormError.js","names":["FormError","Error","constructor","message","options","_defineProperty","key"],"sources":["../../../../../src/extensions/forms/utils/FormError.ts"],"sourcesContent":["import { ErrorObject } from 'ajv/dist/2020'\nimport { FormsTranslationFlat } from '../hooks/useTranslation'\n\ntype ValidationRule =\n | string\n | 'type'\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n | 'pattern'\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n | 'required'\n\ntype FormErrorOptions = {\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n validationRule?: ValidationRule\n messageValues?: Record<string, string>\n ajvKeyword?: ErrorObject['keyword']\n errors?: Array<Error>\n}\n\n/**\n * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling\n */\nexport class FormError extends Error {\n /**\n * What validation rule did the error occur based on? (i.e: minLength, required or maximum)\n * @deprecated can be removed in v11\n */\n validationRule?: FormErrorOptions['validationRule']\n\n /**\n * Replacement values relevant for this error.\n * @example { minLength: 3 } to be able to replace values in a message like \"Minimum {minLength} characters\"\n */\n messageValues?: FormErrorOptions['messageValues']\n\n /**\n * The AJV keyword that caused the error.\n */\n ajvKeyword?: FormErrorOptions['ajvKeyword']\n\n /**\n * An array of errors that should be rendered in the same error message.\n */\n errors?: FormErrorOptions['errors']\n\n constructor(\n message: FormsTranslationFlat | string,\n options?: FormErrorOptions\n ) {\n super(message)\n\n if (options) {\n for (const key in options) {\n this[key] = options[key]\n }\n }\n }\n}\n"],"mappings":";AA4BA,OAAO,MAAMA,SAAS,SAASC,KAAK,CAAC;EAuBnCC,WAAWA,CACTC,OAAsC,EACtCC,OAA0B,EAC1B;IACA,KAAK,CAACD,OAAO,CAAC;IAAAE,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEd,IAAID,OAAO,EAAE;MACX,KAAK,MAAME,GAAG,IAAIF,OAAO,EAAE;QACzB,IAAI,CAACE,GAAG,CAAC,GAAGF,OAAO,CAACE,GAAG,CAAC;MAC1B;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"FormError.js","names":["FormError","Error","constructor","message","options","_defineProperty","key"],"sources":["../../../../../src/extensions/forms/utils/FormError.ts"],"sourcesContent":["import { ErrorObject } from 'ajv/dist/2020'\nimport { FormsTranslationFlat } from '../hooks/useTranslation'\n\ntype ValidationRule =\n | string\n | 'type'\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n | 'pattern'\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n | 'required'\n\ntype FormErrorOptions = {\n /**\n * What validation rule did the error occur based on? (i.e: minLength, required or maximum).\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n validationRule?: ValidationRule\n\n /**\n * Replacement values relevant for this error.\n * @example { minLength: 3 } to be able to replace values in a message like \"Minimum {minLength} characters\"\n */\n messageValues?: Record<string, string>\n\n /**\n * The AJV keyword that caused the error.\n */\n ajvKeyword?: ErrorObject['keyword']\n\n /**\n * An array of errors that should be rendered in the same error message.\n */\n errors?: Array<Error | FormError>\n\n /**\n * For internal use only.\n * A formatted (JSX) message to be used internally later on.\n */\n formattedMessage?: string | React.ReactElement\n}\n\n/**\n * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling\n */\nexport class FormError extends Error {\n /* @deprecated – can be removed in v11*/\n validationRule?: FormErrorOptions['validationRule']\n messageValues?: FormErrorOptions['messageValues']\n ajvKeyword?: FormErrorOptions['ajvKeyword']\n errors?: FormErrorOptions['errors']\n formattedMessage?: FormErrorOptions['formattedMessage']\n\n constructor(\n message: FormsTranslationFlat | string | React.ReactElement,\n options?: FormErrorOptions\n ) {\n super(message as string)\n\n if (options) {\n for (const key in options) {\n this[key] = options[key]\n }\n }\n }\n}\n"],"mappings":";AAgDA,OAAO,MAAMA,SAAS,SAASC,KAAK,CAAC;EAQnCC,WAAWA,CACTC,OAA2D,EAC3DC,OAA0B,EAC1B;IACA,KAAK,CAACD,OAAiB,CAAC;IAAAE,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAExB,IAAID,OAAO,EAAE;MACX,KAAK,MAAME,GAAG,IAAIF,OAAO,EAAE;QACzB,IAAI,CAACE,GAAG,CAAC,GAAGF,OAAO,CAACE,GAAG,CAAC;MAC1B;IACF;EACF;AACF","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- export declare const version = "10.70.0";
1
+ export declare const version = "10.71.0";
2
2
  export declare function init(): void;
@@ -1,9 +1,9 @@
1
- export const version = '10.70.0';
1
+ export const version = '10.71.0';
2
2
  export function init() {
3
3
  if (typeof window !== 'undefined') {
4
4
  class Eufemia {
5
5
  get version() {
6
- return '10.70.0';
6
+ return '10.71.0';
7
7
  }
8
8
  }
9
9
  window.Eufemia = new Eufemia();
@@ -1 +1 @@
1
- {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.70.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.70.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF","ignoreList":[]}
1
+ {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.71.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.71.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF","ignoreList":[]}
@@ -12,6 +12,7 @@ export function getSelectedText(): string;
12
12
  export function hasSelectedText(): boolean;
13
13
  export function getSelectedElement(): Node;
14
14
  export function copyToClipboard(string: any): Promise<any>;
15
+ export function getColor(value: any): any;
15
16
  export const PLATFORM_MAC: "Mac|iPad|iPhone|iPod";
16
17
  export const PLATFORM_WIN: "Win";
17
18
  export const PLATFORM_ANDROID: "Android";
@@ -275,5 +275,11 @@ export const warn = (...params) => {
275
275
  }
276
276
  }
277
277
  };
278
+ export function getColor(value) {
279
+ if (String(value).includes('--')) {
280
+ return value;
281
+ }
282
+ return value ? !/#|var/.test(value) ? `var(--color-${value})` : value : undefined;
283
+ }
278
284
  runCssVersionMismatchWarning();
279
285
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["runCssVersionMismatchWarning","debounce","debounceAsync","PLATFORM_MAC","PLATFORM_WIN","PLATFORM_ANDROID","PLATFORM_LINUX","PLATFORM_IOS","IS_EDGE","IS_IOS","IS_SAFARI","IS_WIN","IS_MAC","IS_ANDROID","IS_LINUX","isMac","_navigator","navigator","RegExp","test","platform","isWin","_navigator2","isAndroid","_navigator3","userAgent","isLinux","_navigator4","isiOS","_navigator5","isSafari","_navigator6","_navigator7","isEdge","_navigator8","pageFocusElements","setPageFocusElement","selectorOrElement","key","applyPageFocus","selector","callback","element","document","querySelector","HTMLElement","role","getAttribute","list","isInteractive","includes","String","nodeName","toLowerCase","hasTabIndex","hasAttribute","hasNoFocus","classList","contains","setAttribute","add","focus","onBlur","removeAttribute","remove","addEventListener","once","e","warn","getOffsetTop","elem","offsetTop","isNaN","offsetParent","getOffsetLeft","offsetLeft","scrollToLocationHashId","offset","delay","onCompletion","window","location","_timeout","id","hash","replace","length","handleScroll","runScroll","totalOffset","top","IntersectionObserver","intersectionObserver","entries","entry","isIntersecting","unobserve","observe","scrollTo","behavior","scrollTop","clearTimeout","setTimeout","getElementById","readyState","insertElementBeforeSelection","selection","getSelection","range","getRangeAt","cloneRange","insertNode","addRange","getSelectedText","toString","hasSelectedText","getSelectedElement","rangeCount","startContainer","parentNode","copyToClipboard","string","_navigator9","resetSelection","removeAllRanges","copyFallback","createElement","value","contentEditable","readOnly","style","position","body","appendChild","success","execCommand","removeChild","clipboard","writeText","newTry","params","process","env","NODE_ENV","console","log","isBrowser","styles","join"],"sources":["../../../src/shared/helpers.js"],"sourcesContent":["/**\n * Global helpers\n *\n */\n\nimport { runCssVersionMismatchWarning } from './helpers/runCssVersionMismatchWarning'\n\n// For backward compatibility\nexport { debounce, debounceAsync } from './helpers/debounce'\n\nexport const PLATFORM_MAC = 'Mac|iPad|iPhone|iPod'\nexport const PLATFORM_WIN = 'Win'\nexport const PLATFORM_ANDROID = 'Android'\nexport const PLATFORM_LINUX = 'Linux'\nexport const PLATFORM_IOS = 'iOS|iPhone|iPad|iPod'\n\nexport let IS_EDGE = false\nexport let IS_IOS = false\nexport let IS_SAFARI = false\nexport let IS_WIN = false\nexport let IS_MAC = false\nexport let IS_ANDROID = false\nexport let IS_LINUX = false\n\nexport const isMac = () =>\n (IS_MAC =\n typeof navigator !== 'undefined' &&\n new RegExp(PLATFORM_MAC, 'i').test(navigator?.platform))\n\nexport const isWin = () =>\n (IS_WIN =\n typeof navigator !== 'undefined' &&\n new RegExp(PLATFORM_WIN, 'i').test(navigator?.platform))\n\nexport const isAndroid = () =>\n (IS_ANDROID =\n typeof navigator !== 'undefined' &&\n new RegExp(PLATFORM_ANDROID, 'i').test(navigator?.userAgent))\n\nexport const isLinux = () =>\n (IS_LINUX =\n typeof navigator !== 'undefined' &&\n new RegExp(PLATFORM_LINUX, 'i').test(navigator?.platform))\n\nexport const isiOS = () =>\n (IS_IOS =\n typeof navigator !== 'undefined' &&\n new RegExp(PLATFORM_IOS, 'i').test(navigator?.platform))\n\nexport const isSafari = () =>\n (IS_SAFARI =\n typeof navigator !== 'undefined' &&\n /safari/i.test(navigator?.userAgent) &&\n !/chrome/i.test(navigator?.userAgent))\n\nexport const isEdge = () =>\n (IS_EDGE =\n typeof navigator !== 'undefined' && /edge/i.test(navigator?.userAgent))\n\nisEdge()\nisiOS()\nisSafari()\nisWin()\nisAndroid()\nisMac()\nisLinux()\n\nconst pageFocusElements = {}\nexport function setPageFocusElement(selectorOrElement, key = 'default') {\n return (pageFocusElements[key] = selectorOrElement)\n}\n\nexport function applyPageFocus(selector = 'default', callback = null) {\n try {\n let element = /^[.#]/.test(selector)\n ? selector\n : pageFocusElements[selector]\n if (typeof element === 'string' && typeof document !== 'undefined') {\n element = document.querySelector(element)\n } else if (!element && typeof document !== 'undefined') {\n element = document.querySelector('.dnb-no-focus')\n }\n\n if (!(element instanceof HTMLElement)) {\n return // stop here\n }\n\n const role = element.getAttribute('role')\n const list = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'label',\n 'menu',\n ]\n const isInteractive =\n list.includes(String(element.nodeName).toLowerCase()) ||\n list.includes(String(role).toLowerCase())\n const hasTabIndex = element.hasAttribute('tabindex')\n const hasNoFocus = element.classList.contains('dnb-no-focus')\n\n if (!isInteractive) {\n if (!hasTabIndex) {\n element.setAttribute('tabindex', '-1')\n }\n if (!hasNoFocus) {\n element.classList.add('dnb-no-focus')\n }\n }\n\n element.focus()\n\n const onBlur = () => {\n if (!isInteractive) {\n if (!hasTabIndex) {\n element.removeAttribute('tabindex')\n }\n if (!hasNoFocus) {\n element.classList.remove('dnb-no-focus')\n }\n }\n }\n element.addEventListener('blur', onBlur, { once: true })\n\n if (typeof callback === 'function') {\n callback(element)\n }\n } catch (e) {\n warn('Error on applyPageFocus:', e)\n }\n}\n\nexport function getOffsetTop(elem) {\n let offsetTop = 0\n if (elem) {\n do {\n if (!isNaN(elem.offsetTop)) {\n offsetTop += elem.offsetTop\n }\n } while ((elem = elem.offsetParent))\n }\n return offsetTop\n}\n\nexport function getOffsetLeft(elem) {\n let offsetLeft = 0\n if (elem) {\n do {\n if (!isNaN(elem.offsetLeft)) {\n offsetLeft += elem.offsetLeft\n }\n } while ((elem = elem.offsetParent))\n }\n return offsetLeft\n}\n\nexport function scrollToLocationHashId({\n offset = 0,\n delay = null,\n onCompletion = null,\n} = {}) {\n if (\n typeof document !== 'undefined' &&\n typeof window !== 'undefined' &&\n window.location\n ) {\n try {\n let _timeout\n const id = String(window.location.hash).replace('#', '')\n if (id.length > 0) {\n const handleScroll = () => {\n const runScroll = () => {\n const totalOffset = getOffsetTop(elem)\n\n if (totalOffset <= 0) {\n return // stop here\n }\n\n const top = totalOffset - offset\n\n try {\n if (typeof IntersectionObserver !== 'undefined') {\n const intersectionObserver = new IntersectionObserver(\n (entries) => {\n const [entry] = entries\n if (entry.isIntersecting) {\n intersectionObserver.unobserve(elem)\n if (typeof onCompletion === 'function') {\n onCompletion(elem)\n }\n }\n }\n )\n // start observing\n intersectionObserver.observe(elem)\n }\n\n if (window.scrollTo) {\n window.scrollTo({\n top,\n behavior: 'smooth',\n })\n } else {\n window.scrollTop = top\n }\n } catch (e) {\n warn('Error on scrollToLocationHashId:', e)\n }\n }\n\n if (delay > 0) {\n clearTimeout(_timeout)\n _timeout = setTimeout(runScroll, delay) // to make sure we run our scrollTo after the native anchor\n } else {\n runScroll()\n }\n }\n\n const elem = document.getElementById(id)\n if (elem instanceof HTMLElement) {\n window.addEventListener('beforeunload', () =>\n clearTimeout(_timeout)\n )\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', handleScroll)\n } else {\n handleScroll()\n }\n }\n\n return elem\n }\n } catch (e) {\n warn('Error on scrollToLocationHashId:', e)\n }\n }\n}\n\nexport function insertElementBeforeSelection(elem) {\n try {\n const selection = window.getSelection()\n const range = selection.getRangeAt(0)\n range.cloneRange().insertNode(elem)\n selection.addRange(range) // Restore the original selection - this is a Safari fix!\n\n // For now I (Tobias) could not find any reason for supporting document.selection as well\n // const range = document.selection.createRange()\n // range.collapse(true)\n // range.pasteHTML(elem.outerHTML)\n } catch (e) {\n //\n }\n}\n\nexport function getSelectedText() {\n try {\n return window.getSelection().toString()\n\n // For now I (Tobias) could not find any reason for supporting document.selection as well\n // return document.selection.createRange().text\n } catch (e) {\n //\n }\n return ''\n}\n\nexport function hasSelectedText() {\n return getSelectedText().length > 0\n}\n\nexport function getSelectedElement() {\n try {\n const selection = window.getSelection()\n if (selection.rangeCount > 0) {\n let elem = selection.getRangeAt(0).startContainer\n if (elem && typeof elem === 'object') {\n elem = elem.parentNode\n }\n return elem\n }\n\n // For now I (Tobias) could not find any reason for supporting document.selection as well\n // return document.selection.createRange().parentElement()\n } catch (e) {\n //\n }\n\n return null\n}\n\nexport async function copyToClipboard(string) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return false\n }\n\n // get the selection range\n const selection = window.getSelection()\n const range =\n selection.rangeCount > 0 // Check if there is any content selected previously\n ? selection.getRangeAt(0) // Store selection if found\n : false // Mark as false to know no selection existed before\n\n const resetSelection = () => {\n try {\n // If a selection existed before copying\n selection.removeAllRanges() // Unselect everything on the HTML document\n selection.addRange(range) // Restore the original selection\n } catch (e) {\n //\n }\n }\n\n const copyFallback = () => {\n try {\n // create the focusable element\n const elem = document.createElement('textarea')\n elem.value = String(string)\n elem.contentEditable = true\n elem.readOnly = false\n elem.style.position = 'fixed'\n elem.style.top = '-1000px'\n document.body.appendChild(elem)\n\n // iOS helper\n // But right now, we do not use that\n // if (IS_IOS) {\n // const newRange = document.createRange()\n // newRange.selectNodeContents(elem)\n // const sel = window.getSelection()\n // sel.removeAllRanges()\n // sel.addRange(newRange)\n // elem.setSelectionRange(0, 999999)\n // } else {\n // elem.select()\n // }\n\n // NB: copy only works as a result of a user action (e.g. click events)\n const success = document.execCommand('copy')\n\n // Cleanup\n document.body.removeChild(elem)\n\n resetSelection()\n\n if (success) {\n return true\n }\n } catch (e) {\n return e\n }\n\n return `Could not copy! Unknown reason. ${string}`\n }\n\n let success\n\n if (typeof navigator !== 'undefined' && navigator?.clipboard) {\n try {\n await navigator.clipboard.writeText(String(string))\n success = true\n resetSelection()\n } catch (e) {\n success = e\n const newTry = copyFallback()\n if (newTry === true) {\n success = newTry\n }\n }\n } else {\n // use the fallback as the primary, because we get\n success = copyFallback()\n }\n\n return success\n}\n\n/**\n * Uses console.log to warn about Eufemia usage issues\n *\n * It uses log instead of warn,\n * because of the stack track some browser do add\n * which takes a lot of visual space in the console\n *\n * @param {...any} params Send in what ever you would\n */\nexport const warn = (...params) => {\n if (\n typeof process !== 'undefined' &&\n process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n typeof console.log === 'function'\n ) {\n const isBrowser =\n typeof window !== 'undefined' && process.env.NODE_ENV !== 'test'\n\n if (isBrowser) {\n const styles = [\n `padding: 0.125rem 0.5rem ${IS_SAFARI ? '' : '0'}`,\n 'font-weight: bold',\n 'color: #00343E',\n 'background: #A5E1D2',\n ].join(';')\n console.log('%cEufemia', styles, ...params)\n } else {\n console.log(\n // How to generate it: JSON.stringify(chalk.reset.bold.hex('#00343E').bgHex('#A5E1D2')('Eufemia'))\n '\\u001b[0m\\u001b[1m\\u001b[38;5;23m\\u001b[48;5;152mEufemia\\u001b[49m\\u001b[39m\\u001b[22m\\u001b[0m',\n ...params\n )\n }\n }\n}\n\n// Run the version mismatch warning one time\nrunCssVersionMismatchWarning()\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"helpers.js","names":["runCssVersionMismatchWarning","debounce","debounceAsync","PLATFORM_MAC","PLATFORM_WIN","PLATFORM_ANDROID","PLATFORM_LINUX","PLATFORM_IOS","IS_EDGE","IS_IOS","IS_SAFARI","IS_WIN","IS_MAC","IS_ANDROID","IS_LINUX","isMac","_navigator","navigator","RegExp","test","platform","isWin","_navigator2","isAndroid","_navigator3","userAgent","isLinux","_navigator4","isiOS","_navigator5","isSafari","_navigator6","_navigator7","isEdge","_navigator8","pageFocusElements","setPageFocusElement","selectorOrElement","key","applyPageFocus","selector","callback","element","document","querySelector","HTMLElement","role","getAttribute","list","isInteractive","includes","String","nodeName","toLowerCase","hasTabIndex","hasAttribute","hasNoFocus","classList","contains","setAttribute","add","focus","onBlur","removeAttribute","remove","addEventListener","once","e","warn","getOffsetTop","elem","offsetTop","isNaN","offsetParent","getOffsetLeft","offsetLeft","scrollToLocationHashId","offset","delay","onCompletion","window","location","_timeout","id","hash","replace","length","handleScroll","runScroll","totalOffset","top","IntersectionObserver","intersectionObserver","entries","entry","isIntersecting","unobserve","observe","scrollTo","behavior","scrollTop","clearTimeout","setTimeout","getElementById","readyState","insertElementBeforeSelection","selection","getSelection","range","getRangeAt","cloneRange","insertNode","addRange","getSelectedText","toString","hasSelectedText","getSelectedElement","rangeCount","startContainer","parentNode","copyToClipboard","string","_navigator9","resetSelection","removeAllRanges","copyFallback","createElement","value","contentEditable","readOnly","style","position","body","appendChild","success","execCommand","removeChild","clipboard","writeText","newTry","params","process","env","NODE_ENV","console","log","isBrowser","styles","join","getColor","undefined"],"sources":["../../../src/shared/helpers.js"],"sourcesContent":["/**\n * Global helpers\n *\n */\n\nimport { runCssVersionMismatchWarning } from './helpers/runCssVersionMismatchWarning'\n\n// For backward compatibility\nexport { debounce, debounceAsync } from './helpers/debounce'\n\nexport const PLATFORM_MAC = 'Mac|iPad|iPhone|iPod'\nexport const PLATFORM_WIN = 'Win'\nexport const PLATFORM_ANDROID = 'Android'\nexport const PLATFORM_LINUX = 'Linux'\nexport const PLATFORM_IOS = 'iOS|iPhone|iPad|iPod'\n\nexport let IS_EDGE = false\nexport let IS_IOS = false\nexport let IS_SAFARI = false\nexport let IS_WIN = false\nexport let IS_MAC = false\nexport let IS_ANDROID = false\nexport let IS_LINUX = false\n\nexport const isMac = () =>\n (IS_MAC =\n typeof navigator !== 'undefined' &&\n new RegExp(PLATFORM_MAC, 'i').test(navigator?.platform))\n\nexport const isWin = () =>\n (IS_WIN =\n typeof navigator !== 'undefined' &&\n new RegExp(PLATFORM_WIN, 'i').test(navigator?.platform))\n\nexport const isAndroid = () =>\n (IS_ANDROID =\n typeof navigator !== 'undefined' &&\n new RegExp(PLATFORM_ANDROID, 'i').test(navigator?.userAgent))\n\nexport const isLinux = () =>\n (IS_LINUX =\n typeof navigator !== 'undefined' &&\n new RegExp(PLATFORM_LINUX, 'i').test(navigator?.platform))\n\nexport const isiOS = () =>\n (IS_IOS =\n typeof navigator !== 'undefined' &&\n new RegExp(PLATFORM_IOS, 'i').test(navigator?.platform))\n\nexport const isSafari = () =>\n (IS_SAFARI =\n typeof navigator !== 'undefined' &&\n /safari/i.test(navigator?.userAgent) &&\n !/chrome/i.test(navigator?.userAgent))\n\nexport const isEdge = () =>\n (IS_EDGE =\n typeof navigator !== 'undefined' && /edge/i.test(navigator?.userAgent))\n\nisEdge()\nisiOS()\nisSafari()\nisWin()\nisAndroid()\nisMac()\nisLinux()\n\nconst pageFocusElements = {}\nexport function setPageFocusElement(selectorOrElement, key = 'default') {\n return (pageFocusElements[key] = selectorOrElement)\n}\n\nexport function applyPageFocus(selector = 'default', callback = null) {\n try {\n let element = /^[.#]/.test(selector)\n ? selector\n : pageFocusElements[selector]\n if (typeof element === 'string' && typeof document !== 'undefined') {\n element = document.querySelector(element)\n } else if (!element && typeof document !== 'undefined') {\n element = document.querySelector('.dnb-no-focus')\n }\n\n if (!(element instanceof HTMLElement)) {\n return // stop here\n }\n\n const role = element.getAttribute('role')\n const list = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'label',\n 'menu',\n ]\n const isInteractive =\n list.includes(String(element.nodeName).toLowerCase()) ||\n list.includes(String(role).toLowerCase())\n const hasTabIndex = element.hasAttribute('tabindex')\n const hasNoFocus = element.classList.contains('dnb-no-focus')\n\n if (!isInteractive) {\n if (!hasTabIndex) {\n element.setAttribute('tabindex', '-1')\n }\n if (!hasNoFocus) {\n element.classList.add('dnb-no-focus')\n }\n }\n\n element.focus()\n\n const onBlur = () => {\n if (!isInteractive) {\n if (!hasTabIndex) {\n element.removeAttribute('tabindex')\n }\n if (!hasNoFocus) {\n element.classList.remove('dnb-no-focus')\n }\n }\n }\n element.addEventListener('blur', onBlur, { once: true })\n\n if (typeof callback === 'function') {\n callback(element)\n }\n } catch (e) {\n warn('Error on applyPageFocus:', e)\n }\n}\n\nexport function getOffsetTop(elem) {\n let offsetTop = 0\n if (elem) {\n do {\n if (!isNaN(elem.offsetTop)) {\n offsetTop += elem.offsetTop\n }\n } while ((elem = elem.offsetParent))\n }\n return offsetTop\n}\n\nexport function getOffsetLeft(elem) {\n let offsetLeft = 0\n if (elem) {\n do {\n if (!isNaN(elem.offsetLeft)) {\n offsetLeft += elem.offsetLeft\n }\n } while ((elem = elem.offsetParent))\n }\n return offsetLeft\n}\n\nexport function scrollToLocationHashId({\n offset = 0,\n delay = null,\n onCompletion = null,\n} = {}) {\n if (\n typeof document !== 'undefined' &&\n typeof window !== 'undefined' &&\n window.location\n ) {\n try {\n let _timeout\n const id = String(window.location.hash).replace('#', '')\n if (id.length > 0) {\n const handleScroll = () => {\n const runScroll = () => {\n const totalOffset = getOffsetTop(elem)\n\n if (totalOffset <= 0) {\n return // stop here\n }\n\n const top = totalOffset - offset\n\n try {\n if (typeof IntersectionObserver !== 'undefined') {\n const intersectionObserver = new IntersectionObserver(\n (entries) => {\n const [entry] = entries\n if (entry.isIntersecting) {\n intersectionObserver.unobserve(elem)\n if (typeof onCompletion === 'function') {\n onCompletion(elem)\n }\n }\n }\n )\n // start observing\n intersectionObserver.observe(elem)\n }\n\n if (window.scrollTo) {\n window.scrollTo({\n top,\n behavior: 'smooth',\n })\n } else {\n window.scrollTop = top\n }\n } catch (e) {\n warn('Error on scrollToLocationHashId:', e)\n }\n }\n\n if (delay > 0) {\n clearTimeout(_timeout)\n _timeout = setTimeout(runScroll, delay) // to make sure we run our scrollTo after the native anchor\n } else {\n runScroll()\n }\n }\n\n const elem = document.getElementById(id)\n if (elem instanceof HTMLElement) {\n window.addEventListener('beforeunload', () =>\n clearTimeout(_timeout)\n )\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', handleScroll)\n } else {\n handleScroll()\n }\n }\n\n return elem\n }\n } catch (e) {\n warn('Error on scrollToLocationHashId:', e)\n }\n }\n}\n\nexport function insertElementBeforeSelection(elem) {\n try {\n const selection = window.getSelection()\n const range = selection.getRangeAt(0)\n range.cloneRange().insertNode(elem)\n selection.addRange(range) // Restore the original selection - this is a Safari fix!\n\n // For now I (Tobias) could not find any reason for supporting document.selection as well\n // const range = document.selection.createRange()\n // range.collapse(true)\n // range.pasteHTML(elem.outerHTML)\n } catch (e) {\n //\n }\n}\n\nexport function getSelectedText() {\n try {\n return window.getSelection().toString()\n\n // For now I (Tobias) could not find any reason for supporting document.selection as well\n // return document.selection.createRange().text\n } catch (e) {\n //\n }\n return ''\n}\n\nexport function hasSelectedText() {\n return getSelectedText().length > 0\n}\n\nexport function getSelectedElement() {\n try {\n const selection = window.getSelection()\n if (selection.rangeCount > 0) {\n let elem = selection.getRangeAt(0).startContainer\n if (elem && typeof elem === 'object') {\n elem = elem.parentNode\n }\n return elem\n }\n\n // For now I (Tobias) could not find any reason for supporting document.selection as well\n // return document.selection.createRange().parentElement()\n } catch (e) {\n //\n }\n\n return null\n}\n\nexport async function copyToClipboard(string) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return false\n }\n\n // get the selection range\n const selection = window.getSelection()\n const range =\n selection.rangeCount > 0 // Check if there is any content selected previously\n ? selection.getRangeAt(0) // Store selection if found\n : false // Mark as false to know no selection existed before\n\n const resetSelection = () => {\n try {\n // If a selection existed before copying\n selection.removeAllRanges() // Unselect everything on the HTML document\n selection.addRange(range) // Restore the original selection\n } catch (e) {\n //\n }\n }\n\n const copyFallback = () => {\n try {\n // create the focusable element\n const elem = document.createElement('textarea')\n elem.value = String(string)\n elem.contentEditable = true\n elem.readOnly = false\n elem.style.position = 'fixed'\n elem.style.top = '-1000px'\n document.body.appendChild(elem)\n\n // iOS helper\n // But right now, we do not use that\n // if (IS_IOS) {\n // const newRange = document.createRange()\n // newRange.selectNodeContents(elem)\n // const sel = window.getSelection()\n // sel.removeAllRanges()\n // sel.addRange(newRange)\n // elem.setSelectionRange(0, 999999)\n // } else {\n // elem.select()\n // }\n\n // NB: copy only works as a result of a user action (e.g. click events)\n const success = document.execCommand('copy')\n\n // Cleanup\n document.body.removeChild(elem)\n\n resetSelection()\n\n if (success) {\n return true\n }\n } catch (e) {\n return e\n }\n\n return `Could not copy! Unknown reason. ${string}`\n }\n\n let success\n\n if (typeof navigator !== 'undefined' && navigator?.clipboard) {\n try {\n await navigator.clipboard.writeText(String(string))\n success = true\n resetSelection()\n } catch (e) {\n success = e\n const newTry = copyFallback()\n if (newTry === true) {\n success = newTry\n }\n }\n } else {\n // use the fallback as the primary, because we get\n success = copyFallback()\n }\n\n return success\n}\n\n/**\n * Uses console.log to warn about Eufemia usage issues\n *\n * It uses log instead of warn,\n * because of the stack track some browser do add\n * which takes a lot of visual space in the console\n *\n * @param {...any} params Send in what ever you would\n */\nexport const warn = (...params) => {\n if (\n typeof process !== 'undefined' &&\n process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n typeof console.log === 'function'\n ) {\n const isBrowser =\n typeof window !== 'undefined' && process.env.NODE_ENV !== 'test'\n\n if (isBrowser) {\n const styles = [\n `padding: 0.125rem 0.5rem ${IS_SAFARI ? '' : '0'}`,\n 'font-weight: bold',\n 'color: #00343E',\n 'background: #A5E1D2',\n ].join(';')\n console.log('%cEufemia', styles, ...params)\n } else {\n console.log(\n // How to generate it: JSON.stringify(chalk.reset.bold.hex('#00343E').bgHex('#A5E1D2')('Eufemia'))\n '\\u001b[0m\\u001b[1m\\u001b[38;5;23m\\u001b[48;5;152mEufemia\\u001b[49m\\u001b[39m\\u001b[22m\\u001b[0m',\n ...params\n )\n }\n }\n}\n\nexport function getColor(value) {\n if (String(value).includes('--')) {\n return value\n }\n return value\n ? !/#|var/.test(value)\n ? `var(--color-${value})`\n : value\n : undefined\n}\n\n// Run the version mismatch warning one time\nrunCssVersionMismatchWarning()\n"],"mappings":"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","ignoreList":[]}
@@ -35,8 +35,8 @@ export default {
35
35
  dateFormat: 'yyyy-MM-dd',
36
36
  returnFormat: 'yyyy-MM-dd',
37
37
  submitButtonText: 'Okej',
38
- cancelButtonText: 'Avbryt',
39
- resetButtonText: 'Återställ',
38
+ cancelButtonText: 'Stänga',
39
+ resetButtonText: 'Återställa',
40
40
  placeholderCharacters: {
41
41
  day: 'd',
42
42
  month: 'm',
@@ -1 +1 @@
1
- {"version":3,"file":"sv-SE.js","names":["TextCounter","characterDown","characterUp","characterExceeded","TimelineItem","alt_label_completed","alt_label_current","alt_label_upcoming","Breadcrumb","navText","goBackText","homeText","backToText","DatePicker","day","month","year","start","end","selectedDate","selectedMonth","selectedYear","nextMonth","prevMonth","nextYear","prevYear","openPickerText","maskOrder","maskPlaceholder","dateFormat","returnFormat","submitButtonText","cancelButtonText","resetButtonText","placeholderCharacters","Anchor","targetBlankTitle","GlobalStatus","default_title","close_text","status_anchor_text","GlobalError","title","text","code","errorMessageCode","help","ProgressIndicator","indicator_label","Dropdown","Autocomplete","submit_button_title","no_options","show_all","show_options_sr","aria_live_options","selected_sr","Modal","dialog_title","close_title","Dialog","declineText","confirmText","CopyOnClick","clipboard_copy","NumberFormat","not_available","HelpButton","aria_role","Input","clear_button_title","Pagination","button_title","next_title","prev_title","more_pages","is_loading_text","load_button_text","Skeleton","aria_busy","aria_ready","StepIndicator","overview_title","step_title_extended","step_title","Slider","addTitle","subtractTitle","PaymentCard","text_card_number","text_expired","text_blocked","text_not_active","text_order_in_process","text_renewed","text_replaced","text_unknown","Tag","removeIconTitle","addIconTitle","Table","accordionToggleButtonSR","accordionMoreContentSR","navigationButtonSR","Upload","textSingular","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","buttonText","buttonTextSingular","loadingText","errorLargeFile","errorAmountLimit","errorUnsupportedFile","deleteButton","fileListAriaLabel"],"sources":["../../../../src/shared/locales/sv-SE.ts"],"sourcesContent":["import nb from './nb-NO'\nexport default {\n 'sv-SE': {\n TextCounter: {\n characterDown: '%count av %max tecken återstår.',\n characterUp: 'Du har använt %count av %max tecken.',\n characterExceeded: '%count tecken över gränsen på %max.',\n },\n TimelineItem: {\n alt_label_completed: 'Utförd',\n alt_label_current: 'Nuvarande',\n alt_label_upcoming: 'Kommande',\n },\n Breadcrumb: {\n navText: 'Sidstruktur',\n goBackText: 'Tillbaka',\n homeText: 'Hem',\n backToText: 'Tillbaka till...',\n },\n DatePicker: {\n day: 'dag',\n month: 'månad',\n year: 'år',\n start: 'från',\n end: 'till',\n selectedDate: 'Valt datum: %s',\n selectedMonth: 'Vald månad %s',\n selectedYear: 'Valt år %s',\n nextMonth: 'Nästa månad %s',\n prevMonth: 'Förra månaden %s',\n nextYear: 'Nästa år %s',\n prevYear: 'Förra året %s',\n openPickerText: 'öppna datumväljaren',\n maskOrder: 'yyyy/mm/dd',\n maskPlaceholder: 'åååå.mm.dd',\n dateFormat: 'yyyy-MM-dd',\n returnFormat: 'yyyy-MM-dd',\n submitButtonText: 'Okej',\n cancelButtonText: 'Avbryt',\n resetButtonText: 'Återställ',\n placeholderCharacters: {\n day: 'd',\n month: 'm',\n year: 'å',\n },\n },\n Anchor: {\n targetBlankTitle: 'Öppnar ett nytt fönster',\n },\n GlobalStatus: {\n default_title: 'Ett fel har inträffat',\n close_text: 'Stäng',\n status_anchor_text: 'Gå till %s',\n },\n GlobalError: {\n 404: {\n title: 'Vi kan inte hitta sidan du letar efter …',\n text: 'Är du säker på att du har skrivit rätt adress?',\n },\n 500: {\n title: 'Tyvärr, något gick fel!',\n text: 'Tjänsten fungerar inte som den ska just nu, men försök igen senare.',\n },\n code: 'Felmeddelande-kod:', // Deprecated: Replaced with errorMessageCode, code can be removed in v11.\n errorMessageCode: 'Felmeddelande-kod: %statusCode',\n help: 'Här är några länkar som kanske kan hjälpa:',\n },\n ProgressIndicator: {\n indicator_label: 'Vänligen vänta ...',\n },\n Dropdown: {\n title: 'Valmeny',\n },\n Autocomplete: {\n title: 'Skriv och välj',\n submit_button_title: 'Visa alternativ',\n no_options: 'Inga alternativ',\n show_all: 'Visa allt',\n show_options_sr: 'Bläddra genom alternativ, stäng med esc-knappen',\n aria_live_options: '%s alternativ',\n selected_sr: 'Vald:',\n indicator_label: 'Hämtar data ...',\n },\n Modal: {\n dialog_title: 'Separat Fönster',\n close_title: 'Stäng',\n },\n Dialog: {\n declineText: 'Avbryt',\n confirmText: 'Godkänn',\n },\n CopyOnClick: {\n clipboard_copy: 'Kopierad',\n },\n NumberFormat: {\n clipboard_copy: 'Kopierad',\n not_available: 'Inte tillgänglig',\n },\n HelpButton: {\n title: 'Hjälptext',\n aria_role: 'Hjälp-knapp',\n },\n Input: {\n submit_button_title: 'Skicka knapp',\n clear_button_title: 'Återställ',\n },\n Pagination: {\n button_title: 'Sida %s',\n next_title: 'Nästa sida',\n prev_title: 'Föregående sida',\n more_pages: '%s fler sidor',\n is_loading_text: 'Laddar nytt innehåll',\n load_button_text: 'Visa mer innehåll',\n },\n Skeleton: {\n aria_busy: 'Bearbetar data ...',\n aria_ready: 'Klar att interagera',\n },\n StepIndicator: {\n overview_title: 'Stegöversikt',\n step_title_extended: 'Du är på steg %step av %count',\n step_title: 'Steg %step av %count',\n },\n Slider: {\n addTitle: 'Öka (%s)',\n subtractTitle: 'Minska (%s)',\n },\n PaymentCard: {\n text_card_number: 'Kortnummer',\n text_expired: 'Utgånget',\n text_blocked: 'Spärrat',\n text_not_active: 'Inte aktiverat',\n text_order_in_process: 'Under behandling',\n text_renewed: 'Förnyat',\n text_replaced: 'Ersatt',\n text_unknown: 'Okänt',\n },\n Tag: {\n removeIconTitle: 'Ta bort',\n addIconTitle: 'Lägg till',\n },\n Table: {\n accordionToggleButtonSR: 'Visa mer innehåll',\n accordionMoreContentSR: 'Mer innehåll i nästa rad',\n navigationButtonSR: 'Navigera till mer innehåll',\n },\n Upload: {\n title: 'Ladda upp dokument',\n text: 'Dra och släpp eller välj vilka filer du vill ladda upp.',\n textSingular:\n 'Dra och släpp eller välj vilken fil du vill ladda upp.',\n fileTypeTableCaption: 'Tillåtna filformat och max filstorlek',\n fileTypeDescription: 'Tillåtna filformat:',\n fileSizeDescription: 'Max filstorlek:',\n fileAmountDescription: 'Max antal filer:',\n fileSizeContent: '%size MB',\n buttonText: 'Välj filer',\n buttonTextSingular: 'Välj fil',\n loadingText: 'Laddar',\n errorLargeFile:\n 'Filen du försöker ladda upp är för stor, den maximalt tillåtna storleken är %size MB.',\n errorAmountLimit:\n 'Det är begränsat hur många filer du kan ladda upp (%amount).',\n errorUnsupportedFile: 'Filen du försöker ladda upp stöds inte.',\n deleteButton: 'Radera',\n fileListAriaLabel: 'uppladdade filer',\n },\n } satisfies (typeof nb)['nb-NO'],\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sv-SE.js","names":["TextCounter","characterDown","characterUp","characterExceeded","TimelineItem","alt_label_completed","alt_label_current","alt_label_upcoming","Breadcrumb","navText","goBackText","homeText","backToText","DatePicker","day","month","year","start","end","selectedDate","selectedMonth","selectedYear","nextMonth","prevMonth","nextYear","prevYear","openPickerText","maskOrder","maskPlaceholder","dateFormat","returnFormat","submitButtonText","cancelButtonText","resetButtonText","placeholderCharacters","Anchor","targetBlankTitle","GlobalStatus","default_title","close_text","status_anchor_text","GlobalError","title","text","code","errorMessageCode","help","ProgressIndicator","indicator_label","Dropdown","Autocomplete","submit_button_title","no_options","show_all","show_options_sr","aria_live_options","selected_sr","Modal","dialog_title","close_title","Dialog","declineText","confirmText","CopyOnClick","clipboard_copy","NumberFormat","not_available","HelpButton","aria_role","Input","clear_button_title","Pagination","button_title","next_title","prev_title","more_pages","is_loading_text","load_button_text","Skeleton","aria_busy","aria_ready","StepIndicator","overview_title","step_title_extended","step_title","Slider","addTitle","subtractTitle","PaymentCard","text_card_number","text_expired","text_blocked","text_not_active","text_order_in_process","text_renewed","text_replaced","text_unknown","Tag","removeIconTitle","addIconTitle","Table","accordionToggleButtonSR","accordionMoreContentSR","navigationButtonSR","Upload","textSingular","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","buttonText","buttonTextSingular","loadingText","errorLargeFile","errorAmountLimit","errorUnsupportedFile","deleteButton","fileListAriaLabel"],"sources":["../../../../src/shared/locales/sv-SE.ts"],"sourcesContent":["import nb from './nb-NO'\nexport default {\n 'sv-SE': {\n TextCounter: {\n characterDown: '%count av %max tecken återstår.',\n characterUp: 'Du har använt %count av %max tecken.',\n characterExceeded: '%count tecken över gränsen på %max.',\n },\n TimelineItem: {\n alt_label_completed: 'Utförd',\n alt_label_current: 'Nuvarande',\n alt_label_upcoming: 'Kommande',\n },\n Breadcrumb: {\n navText: 'Sidstruktur',\n goBackText: 'Tillbaka',\n homeText: 'Hem',\n backToText: 'Tillbaka till...',\n },\n DatePicker: {\n day: 'dag',\n month: 'månad',\n year: 'år',\n start: 'från',\n end: 'till',\n selectedDate: 'Valt datum: %s',\n selectedMonth: 'Vald månad %s',\n selectedYear: 'Valt år %s',\n nextMonth: 'Nästa månad %s',\n prevMonth: 'Förra månaden %s',\n nextYear: 'Nästa år %s',\n prevYear: 'Förra året %s',\n openPickerText: 'öppna datumväljaren',\n maskOrder: 'yyyy/mm/dd',\n maskPlaceholder: 'åååå.mm.dd',\n dateFormat: 'yyyy-MM-dd',\n returnFormat: 'yyyy-MM-dd',\n submitButtonText: 'Okej',\n cancelButtonText: 'Stänga',\n resetButtonText: 'Återställa',\n placeholderCharacters: {\n day: 'd',\n month: 'm',\n year: 'å',\n },\n },\n Anchor: {\n targetBlankTitle: 'Öppnar ett nytt fönster',\n },\n GlobalStatus: {\n default_title: 'Ett fel har inträffat',\n close_text: 'Stäng',\n status_anchor_text: 'Gå till %s',\n },\n GlobalError: {\n 404: {\n title: 'Vi kan inte hitta sidan du letar efter …',\n text: 'Är du säker på att du har skrivit rätt adress?',\n },\n 500: {\n title: 'Tyvärr, något gick fel!',\n text: 'Tjänsten fungerar inte som den ska just nu, men försök igen senare.',\n },\n code: 'Felmeddelande-kod:', // Deprecated: Replaced with errorMessageCode, code can be removed in v11.\n errorMessageCode: 'Felmeddelande-kod: %statusCode',\n help: 'Här är några länkar som kanske kan hjälpa:',\n },\n ProgressIndicator: {\n indicator_label: 'Vänligen vänta ...',\n },\n Dropdown: {\n title: 'Valmeny',\n },\n Autocomplete: {\n title: 'Skriv och välj',\n submit_button_title: 'Visa alternativ',\n no_options: 'Inga alternativ',\n show_all: 'Visa allt',\n show_options_sr: 'Bläddra genom alternativ, stäng med esc-knappen',\n aria_live_options: '%s alternativ',\n selected_sr: 'Vald:',\n indicator_label: 'Hämtar data ...',\n },\n Modal: {\n dialog_title: 'Separat Fönster',\n close_title: 'Stäng',\n },\n Dialog: {\n declineText: 'Avbryt',\n confirmText: 'Godkänn',\n },\n CopyOnClick: {\n clipboard_copy: 'Kopierad',\n },\n NumberFormat: {\n clipboard_copy: 'Kopierad',\n not_available: 'Inte tillgänglig',\n },\n HelpButton: {\n title: 'Hjälptext',\n aria_role: 'Hjälp-knapp',\n },\n Input: {\n submit_button_title: 'Skicka knapp',\n clear_button_title: 'Återställ',\n },\n Pagination: {\n button_title: 'Sida %s',\n next_title: 'Nästa sida',\n prev_title: 'Föregående sida',\n more_pages: '%s fler sidor',\n is_loading_text: 'Laddar nytt innehåll',\n load_button_text: 'Visa mer innehåll',\n },\n Skeleton: {\n aria_busy: 'Bearbetar data ...',\n aria_ready: 'Klar att interagera',\n },\n StepIndicator: {\n overview_title: 'Stegöversikt',\n step_title_extended: 'Du är på steg %step av %count',\n step_title: 'Steg %step av %count',\n },\n Slider: {\n addTitle: 'Öka (%s)',\n subtractTitle: 'Minska (%s)',\n },\n PaymentCard: {\n text_card_number: 'Kortnummer',\n text_expired: 'Utgånget',\n text_blocked: 'Spärrat',\n text_not_active: 'Inte aktiverat',\n text_order_in_process: 'Under behandling',\n text_renewed: 'Förnyat',\n text_replaced: 'Ersatt',\n text_unknown: 'Okänt',\n },\n Tag: {\n removeIconTitle: 'Ta bort',\n addIconTitle: 'Lägg till',\n },\n Table: {\n accordionToggleButtonSR: 'Visa mer innehåll',\n accordionMoreContentSR: 'Mer innehåll i nästa rad',\n navigationButtonSR: 'Navigera till mer innehåll',\n },\n Upload: {\n title: 'Ladda upp dokument',\n text: 'Dra och släpp eller välj vilka filer du vill ladda upp.',\n textSingular:\n 'Dra och släpp eller välj vilken fil du vill ladda upp.',\n fileTypeTableCaption: 'Tillåtna filformat och max filstorlek',\n fileTypeDescription: 'Tillåtna filformat:',\n fileSizeDescription: 'Max filstorlek:',\n fileAmountDescription: 'Max antal filer:',\n fileSizeContent: '%size MB',\n buttonText: 'Välj filer',\n buttonTextSingular: 'Välj fil',\n loadingText: 'Laddar',\n errorLargeFile:\n 'Filen du försöker ladda upp är för stor, den maximalt tillåtna storleken är %size MB.',\n errorAmountLimit:\n 'Det är begränsat hur många filer du kan ladda upp (%amount).',\n errorUnsupportedFile: 'Filen du försöker ladda upp stöds inte.',\n deleteButton: 'Radera',\n fileListAriaLabel: 'uppladdade filer',\n },\n } satisfies (typeof nb)['nb-NO'],\n}\n"],"mappings":"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","ignoreList":[]}
@@ -45,7 +45,7 @@
45
45
  word-break: break-word;
46
46
 
47
47
  // Will add this to the body tag – later we can test for a version mismatch
48
- --eufemia-version: '10.70.0';
48
+ --eufemia-version: '10.71.0';
49
49
 
50
50
  @content;
51
51
  }
@@ -244,7 +244,7 @@ body {
244
244
  /* stylelint-disable-next-line */
245
245
  -webkit-text-size-adjust: 100%;
246
246
  word-break: break-word;
247
- --eufemia-version: "10.70.0";
247
+ --eufemia-version: "10.71.0";
248
248
  }
249
249
  .dnb-core-style *,
250
250
  .dnb-core-style ::before,
@@ -1 +1 @@
1
- @charset "UTF-8";html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{padding:0;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{margin:0}.dnb-core-style{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.70.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr{height:0;overflow:visible}.dnb-core-style main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul{list-style:none}.dnb-core-style abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video{display:inline-block}.dnb-core-style audio:not([controls]){display:none;height:0}.dnb-core-style img{border-style:none}.dnb-core-style svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root){overflow:hidden}.dnb-core-style table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select{margin:0}.dnb-core-style button{overflow:visible;text-transform:none}.dnb-core-style input{overflow:visible;word-break:normal}.dnb-core-style legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress{display:inline-block;vertical-align:baseline}.dnb-core-style select{text-transform:none}.dnb-core-style textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio]{padding:0}.dnb-core-style input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details{display:block}.dnb-core-style summary{display:list-item}.dnb-core-style canvas{display:inline-block}.dnb-core-style template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea{touch-action:manipulation}.dnb-core-style [hidden]{display:none}.dnb-core-style [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
1
+ @charset "UTF-8";html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{padding:0;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{margin:0}.dnb-core-style{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.71.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr{height:0;overflow:visible}.dnb-core-style main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul{list-style:none}.dnb-core-style abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video{display:inline-block}.dnb-core-style audio:not([controls]){display:none;height:0}.dnb-core-style img{border-style:none}.dnb-core-style svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root){overflow:hidden}.dnb-core-style table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select{margin:0}.dnb-core-style button{overflow:visible;text-transform:none}.dnb-core-style input{overflow:visible;word-break:normal}.dnb-core-style legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress{display:inline-block;vertical-align:baseline}.dnb-core-style select{text-transform:none}.dnb-core-style textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio]{padding:0}.dnb-core-style input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details{display:block}.dnb-core-style summary{display:list-item}.dnb-core-style canvas{display:inline-block}.dnb-core-style template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea{touch-action:manipulation}.dnb-core-style [hidden]{display:none}.dnb-core-style [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
@@ -269,7 +269,7 @@ body {
269
269
  /* stylelint-disable-next-line */
270
270
  -webkit-text-size-adjust: 100%;
271
271
  word-break: break-word;
272
- --eufemia-version: "10.70.0";
272
+ --eufemia-version: "10.71.0";
273
273
  }
274
274
  body *,
275
275
  body ::before,
@@ -1 +1 @@
1
- html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{padding:0;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.70.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}body :after,body :before{text-decoration:inherit;vertical-align:inherit}body hr{height:0;overflow:visible}body main{display:block}body nav ol,body nav ul{list-style:none}body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body b,body strong{font-weight:bolder}body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}body audio,body video{display:inline-block}body audio:not([controls]){display:none;height:0}body img{border-style:none}body svg:not([fill]){fill:currentcolor}body svg:not(:root){overflow:hidden}body table{border-collapse:collapse}body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}body button,body figure,body input,body select{margin:0}body button{overflow:visible;text-transform:none}body input{overflow:visible;word-break:normal}body legend{color:inherit;display:table;max-width:100%;white-space:normal}body progress{display:inline-block;vertical-align:baseline}body select{text-transform:none}body textarea{overflow:auto;resize:vertical}body [type=checkbox],body [type=radio]{padding:0}body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}body ::input-placeholder{color:inherit;opacity:.54}body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}body ::-moz-focus-inner{border-style:none;padding:0}body details{display:block}body summary{display:list-item}body canvas{display:inline-block}body template{display:none}body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}body [hidden]{display:none}body [aria-busy=true]{cursor:progress}body [aria-controls]:not(input){cursor:pointer}body [aria-disabled=true],body [disabled]{cursor:not-allowed}body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{body{background-color:#fff;color:#000}}body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}
1
+ html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{padding:0;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.71.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}body :after,body :before{text-decoration:inherit;vertical-align:inherit}body hr{height:0;overflow:visible}body main{display:block}body nav ol,body nav ul{list-style:none}body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body b,body strong{font-weight:bolder}body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}body audio,body video{display:inline-block}body audio:not([controls]){display:none;height:0}body img{border-style:none}body svg:not([fill]){fill:currentcolor}body svg:not(:root){overflow:hidden}body table{border-collapse:collapse}body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}body button,body figure,body input,body select{margin:0}body button{overflow:visible;text-transform:none}body input{overflow:visible;word-break:normal}body legend{color:inherit;display:table;max-width:100%;white-space:normal}body progress{display:inline-block;vertical-align:baseline}body select{text-transform:none}body textarea{overflow:auto;resize:vertical}body [type=checkbox],body [type=radio]{padding:0}body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}body ::input-placeholder{color:inherit;opacity:.54}body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}body ::-moz-focus-inner{border-style:none;padding:0}body details{display:block}body summary{display:list-item}body canvas{display:inline-block}body template{display:none}body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}body [hidden]{display:none}body [aria-busy=true]{cursor:progress}body [aria-controls]:not(input){cursor:pointer}body [aria-disabled=true],body [disabled]{cursor:not-allowed}body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{body{background-color:#fff;color:#000}}body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}