@dnb/eufemia 10.4.2 → 10.6.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 (1473) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/cjs/components/accordion/Accordion.d.ts +240 -136
  3. package/cjs/components/accordion/Accordion.js +217 -252
  4. package/cjs/components/accordion/Accordion.js.map +1 -1
  5. package/cjs/components/accordion/AccordionContent.d.ts +12 -14
  6. package/cjs/components/accordion/AccordionContent.js +3 -15
  7. package/cjs/components/accordion/AccordionContent.js.map +1 -1
  8. package/cjs/components/accordion/AccordionContext.d.ts +17 -2
  9. package/cjs/components/accordion/AccordionContext.js.map +1 -1
  10. package/cjs/components/accordion/AccordionGroup.d.ts +10 -12
  11. package/cjs/components/accordion/AccordionGroup.js +63 -72
  12. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  13. package/cjs/components/accordion/AccordionHeader.d.ts +62 -92
  14. package/cjs/components/accordion/AccordionHeader.js +178 -251
  15. package/cjs/components/accordion/AccordionHeader.js.map +1 -1
  16. package/cjs/components/accordion/AccordionProviderContext.d.ts +16 -2
  17. package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
  18. package/cjs/components/accordion/AccordionStore.d.ts +7 -6
  19. package/cjs/components/accordion/AccordionStore.js +1 -1
  20. package/cjs/components/accordion/AccordionStore.js.map +1 -1
  21. package/cjs/components/accordion/defaultProps.d.ts +2 -0
  22. package/cjs/components/accordion/defaultProps.js +12 -0
  23. package/cjs/components/accordion/defaultProps.js.map +1 -0
  24. package/cjs/components/anchor/style/anchor-mixins.scss +26 -27
  25. package/cjs/components/anchor/style/dnb-anchor.css +27 -16
  26. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  27. package/cjs/components/anchor/style/dnb-anchor.scss +1 -1
  28. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +97 -44
  29. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  30. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +48 -22
  31. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
  32. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  33. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
  34. package/cjs/components/autocomplete/Autocomplete.js +2 -2
  35. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  36. package/cjs/components/button/style/themes/button-mixins.scss +23 -4
  37. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +80 -82
  38. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -1
  39. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +82 -54
  40. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  41. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  42. package/cjs/components/dialog/Dialog.d.ts +1 -1
  43. package/cjs/components/dialog/DialogContent.d.ts +1 -1
  44. package/cjs/components/dialog/DialogContent.js +4 -2
  45. package/cjs/components/dialog/DialogContent.js.map +1 -1
  46. package/cjs/components/dialog/parts/DialogAction.d.ts +5 -1
  47. package/cjs/components/dialog/parts/DialogAction.js +3 -2
  48. package/cjs/components/dialog/parts/DialogAction.js.map +1 -1
  49. package/cjs/components/form-row/FormRow.js.map +1 -1
  50. package/cjs/components/form-row/style/dnb-form-row.scss +2 -2
  51. package/cjs/components/form-set/FormSet.js.map +1 -1
  52. package/cjs/components/height-animation/HeightAnimation.d.ts +1 -1
  53. package/cjs/components/height-animation/HeightAnimation.js.map +1 -1
  54. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  55. package/cjs/components/icon/lib/SvgComparison.js.map +1 -1
  56. package/cjs/components/input/style/dnb-input.css +5 -0
  57. package/cjs/components/input/style/dnb-input.min.css +1 -1
  58. package/cjs/components/input/style/dnb-input.scss +7 -1
  59. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.css +104 -0
  60. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -0
  61. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.scss +126 -0
  62. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  63. package/cjs/components/input-masked/TextMask.js.map +1 -1
  64. package/cjs/components/modal/Modal.js +0 -2
  65. package/cjs/components/modal/Modal.js.map +1 -1
  66. package/cjs/components/modal/bodyScrollLock.js.map +1 -1
  67. package/cjs/components/number-format/NumberUtils.js +8 -6
  68. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  69. package/cjs/components/number-format/style/dnb-number-format.css +0 -7
  70. package/cjs/components/number-format/style/dnb-number-format.scss +0 -1
  71. package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
  72. package/cjs/components/radio/Radio.js.map +1 -1
  73. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +14 -7
  74. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  75. package/cjs/components/slider/hooks/useSliderEvents.js.map +1 -1
  76. package/cjs/components/slider/types.d.ts +1 -1
  77. package/cjs/components/slider/types.js.map +1 -1
  78. package/cjs/components/space/Space.d.ts +2 -2
  79. package/cjs/components/space/SpacingHelper.js.map +1 -1
  80. package/cjs/components/step-indicator/StepIndicatorProps.d.ts +1 -1
  81. package/cjs/components/table/TableAccordion.js.map +1 -1
  82. package/cjs/components/table/TableTr.js.map +1 -1
  83. package/cjs/components/textarea/Textarea.js.map +1 -1
  84. package/cjs/components/textarea/style/dnb-textarea.css +39 -1
  85. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  86. package/cjs/components/textarea/style/dnb-textarea.scss +20 -1
  87. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +61 -0
  88. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -0
  89. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +72 -0
  90. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +0 -41
  91. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  92. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +0 -22
  93. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  94. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  95. package/cjs/components/tooltip/TooltipContainer.js.map +1 -1
  96. package/cjs/components/upload/Upload.js +2 -2
  97. package/cjs/components/upload/Upload.js.map +1 -1
  98. package/cjs/components/upload/useUpload.d.ts +1 -1
  99. package/cjs/components/upload/useUpload.js +2 -2
  100. package/cjs/components/upload/useUpload.js.map +1 -1
  101. package/cjs/elements/blockquote/Blockquote.d.ts +1 -1
  102. package/cjs/elements/blockquote/Blockquote.js.map +1 -1
  103. package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
  104. package/cjs/extensions/forms/DataContext/At.d.ts +13 -0
  105. package/cjs/extensions/forms/DataContext/At.js +60 -0
  106. package/cjs/extensions/forms/DataContext/At.js.map +1 -0
  107. package/cjs/extensions/forms/DataContext/Context.d.ts +19 -0
  108. package/cjs/extensions/forms/DataContext/Context.js +25 -0
  109. package/cjs/extensions/forms/DataContext/Context.js.map +1 -0
  110. package/cjs/extensions/forms/DataContext/Provider.d.ts +19 -0
  111. package/cjs/extensions/forms/DataContext/Provider.js +112 -0
  112. package/cjs/extensions/forms/DataContext/Provider.js.map +1 -0
  113. package/cjs/extensions/forms/DataContext/SubmitButton.d.ts +9 -0
  114. package/cjs/extensions/forms/DataContext/SubmitButton.js +30 -0
  115. package/cjs/extensions/forms/DataContext/SubmitButton.js.map +1 -0
  116. package/cjs/extensions/forms/DataContext/index.d.ts +13 -0
  117. package/cjs/extensions/forms/DataContext/index.js +20 -0
  118. package/cjs/extensions/forms/DataContext/index.js.map +1 -0
  119. package/cjs/extensions/forms/Field/ArraySelection.d.ts +12 -0
  120. package/cjs/extensions/forms/Field/ArraySelection.js +68 -0
  121. package/cjs/extensions/forms/Field/ArraySelection.js.map +1 -0
  122. package/cjs/extensions/forms/Field/BankAccountNumber.d.ts +10 -0
  123. package/cjs/extensions/forms/Field/BankAccountNumber.js +40 -0
  124. package/cjs/extensions/forms/Field/BankAccountNumber.js.map +1 -0
  125. package/cjs/extensions/forms/Field/Boolean.d.ts +10 -0
  126. package/cjs/extensions/forms/Field/Boolean.js +34 -0
  127. package/cjs/extensions/forms/Field/Boolean.js.map +1 -0
  128. package/cjs/extensions/forms/Field/Currency.d.ts +10 -0
  129. package/cjs/extensions/forms/Field/Currency.js +61 -0
  130. package/cjs/extensions/forms/Field/Currency.js.map +1 -0
  131. package/cjs/extensions/forms/Field/Date.d.ts +8 -0
  132. package/cjs/extensions/forms/Field/Date.js +59 -0
  133. package/cjs/extensions/forms/Field/Date.js.map +1 -0
  134. package/cjs/extensions/forms/Field/Email.d.ts +7 -0
  135. package/cjs/extensions/forms/Field/Email.js +34 -0
  136. package/cjs/extensions/forms/Field/Email.js.map +1 -0
  137. package/cjs/extensions/forms/Field/FirstName.d.ts +7 -0
  138. package/cjs/extensions/forms/Field/FirstName.js +31 -0
  139. package/cjs/extensions/forms/Field/FirstName.js.map +1 -0
  140. package/cjs/extensions/forms/Field/LastName.d.ts +7 -0
  141. package/cjs/extensions/forms/Field/LastName.js +31 -0
  142. package/cjs/extensions/forms/Field/LastName.js.map +1 -0
  143. package/cjs/extensions/forms/Field/NationalIdentityNumber.d.ts +10 -0
  144. package/cjs/extensions/forms/Field/NationalIdentityNumber.js +39 -0
  145. package/cjs/extensions/forms/Field/NationalIdentityNumber.js.map +1 -0
  146. package/cjs/extensions/forms/Field/Number.d.ts +31 -0
  147. package/cjs/extensions/forms/Field/Number.js +111 -0
  148. package/cjs/extensions/forms/Field/Number.js.map +1 -0
  149. package/cjs/extensions/forms/Field/Option.d.ts +9 -0
  150. package/cjs/extensions/forms/Field/Option.js +22 -0
  151. package/cjs/extensions/forms/Field/Option.js.map +1 -0
  152. package/cjs/extensions/forms/Field/OrganizationNumber.d.ts +10 -0
  153. package/cjs/extensions/forms/Field/OrganizationNumber.js +40 -0
  154. package/cjs/extensions/forms/Field/OrganizationNumber.js.map +1 -0
  155. package/cjs/extensions/forms/Field/PhoneNumber.d.ts +12 -0
  156. package/cjs/extensions/forms/Field/PhoneNumber.js +101 -0
  157. package/cjs/extensions/forms/Field/PhoneNumber.js.map +1 -0
  158. package/cjs/extensions/forms/Field/PostalCodeAndCity.d.ts +10 -0
  159. package/cjs/extensions/forms/Field/PostalCodeAndCity.js +59 -0
  160. package/cjs/extensions/forms/Field/PostalCodeAndCity.js.map +1 -0
  161. package/cjs/extensions/forms/Field/SelectCountry.d.ts +7 -0
  162. package/cjs/extensions/forms/Field/SelectCountry.js +38 -0
  163. package/cjs/extensions/forms/Field/SelectCountry.js.map +1 -0
  164. package/cjs/extensions/forms/Field/Selection.d.ts +13 -0
  165. package/cjs/extensions/forms/Field/Selection.js +120 -0
  166. package/cjs/extensions/forms/Field/Selection.js.map +1 -0
  167. package/cjs/extensions/forms/Field/String.d.ts +32 -0
  168. package/cjs/extensions/forms/Field/String.js +135 -0
  169. package/cjs/extensions/forms/Field/String.js.map +1 -0
  170. package/cjs/extensions/forms/Field/Toggle.d.ts +14 -0
  171. package/cjs/extensions/forms/Field/Toggle.js +129 -0
  172. package/cjs/extensions/forms/Field/Toggle.js.map +1 -0
  173. package/cjs/extensions/forms/Field/fields.scss +2 -0
  174. package/cjs/extensions/forms/Field/hooks/index.d.ts +1 -0
  175. package/cjs/extensions/forms/Field/hooks/index.js +14 -0
  176. package/cjs/extensions/forms/Field/hooks/index.js.map +1 -0
  177. package/cjs/extensions/forms/Field/hooks/useField.d.ts +11 -0
  178. package/cjs/extensions/forms/Field/hooks/useField.js +163 -0
  179. package/cjs/extensions/forms/Field/hooks/useField.js.map +1 -0
  180. package/cjs/extensions/forms/Field/index.d.ts +39 -0
  181. package/cjs/extensions/forms/Field/index.js +48 -0
  182. package/cjs/extensions/forms/Field/index.js.map +1 -0
  183. package/cjs/extensions/forms/Field/style/dnb-number.css +11 -0
  184. package/cjs/extensions/forms/Field/style/dnb-number.min.css +1 -0
  185. package/cjs/extensions/forms/Field/style/dnb-number.scss +19 -0
  186. package/cjs/extensions/forms/Field/style/dnb-phone-number.css +23 -0
  187. package/cjs/extensions/forms/Field/style/dnb-phone-number.min.css +1 -0
  188. package/cjs/extensions/forms/Field/style/dnb-phone-number.scss +28 -0
  189. package/cjs/extensions/forms/Field/style/dnb-postal-code-and-city.css +19 -0
  190. package/cjs/extensions/forms/Field/style/dnb-postal-code-and-city.min.css +1 -0
  191. package/cjs/extensions/forms/Field/style/dnb-postal-code-and-city.scss +25 -0
  192. package/cjs/extensions/forms/Field/style/dnb-selection.css +6 -0
  193. package/cjs/extensions/forms/Field/style/dnb-selection.min.css +1 -0
  194. package/cjs/extensions/forms/Field/style/dnb-selection.scss +15 -0
  195. package/cjs/extensions/forms/Field/style/dnb-string.css +11 -0
  196. package/cjs/extensions/forms/Field/style/dnb-string.min.css +1 -0
  197. package/cjs/extensions/forms/Field/style/dnb-string.scss +19 -0
  198. package/cjs/extensions/forms/Field/style/index.d.ts +6 -0
  199. package/cjs/extensions/forms/Field/style/index.js +5 -0
  200. package/cjs/extensions/forms/Field/style/index.js.map +1 -0
  201. package/cjs/extensions/forms/Field/style/index.scss +5 -0
  202. package/cjs/extensions/forms/Field/style.d.ts +5 -0
  203. package/cjs/extensions/forms/Field/style.js +4 -0
  204. package/cjs/extensions/forms/Field/style.js.map +1 -0
  205. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +12 -0
  206. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +77 -0
  207. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -0
  208. package/cjs/extensions/forms/FieldBlock/index.d.ts +1 -0
  209. package/cjs/extensions/forms/FieldBlock/index.js +14 -0
  210. package/cjs/extensions/forms/FieldBlock/index.js.map +1 -0
  211. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
  212. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -0
  213. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +19 -0
  214. package/cjs/extensions/forms/FieldBlock/style/index.d.ts +5 -0
  215. package/cjs/extensions/forms/FieldBlock/style/index.js +4 -0
  216. package/cjs/extensions/forms/FieldBlock/style/index.js.map +1 -0
  217. package/cjs/extensions/forms/FieldBlock/style.d.ts +5 -0
  218. package/cjs/extensions/forms/FieldBlock/style.js +4 -0
  219. package/cjs/extensions/forms/FieldBlock/style.js.map +1 -0
  220. package/cjs/extensions/forms/FieldGroup/FieldGroup.d.ts +17 -0
  221. package/cjs/extensions/forms/FieldGroup/FieldGroup.js +95 -0
  222. package/cjs/extensions/forms/FieldGroup/FieldGroup.js.map +1 -0
  223. package/cjs/extensions/forms/FieldGroup/index.d.ts +2 -0
  224. package/cjs/extensions/forms/FieldGroup/index.js +27 -0
  225. package/cjs/extensions/forms/FieldGroup/index.js.map +1 -0
  226. package/cjs/extensions/forms/Forms.d.ts +3 -0
  227. package/cjs/extensions/forms/Forms.js +22 -0
  228. package/cjs/extensions/forms/Forms.js.map +1 -0
  229. package/cjs/extensions/forms/Layout/ButtonRow.d.ts +10 -0
  230. package/cjs/extensions/forms/Layout/ButtonRow.js +25 -0
  231. package/cjs/extensions/forms/Layout/ButtonRow.js.map +1 -0
  232. package/cjs/extensions/forms/Layout/Card.d.ts +14 -0
  233. package/cjs/extensions/forms/Layout/Card.js +45 -0
  234. package/cjs/extensions/forms/Layout/Card.js.map +1 -0
  235. package/cjs/extensions/forms/Layout/Column.d.ts +7 -0
  236. package/cjs/extensions/forms/Layout/Column.js +26 -0
  237. package/cjs/extensions/forms/Layout/Column.js.map +1 -0
  238. package/cjs/extensions/forms/Layout/FlexContainer.d.ts +23 -0
  239. package/cjs/extensions/forms/Layout/FlexContainer.js +104 -0
  240. package/cjs/extensions/forms/Layout/FlexContainer.js.map +1 -0
  241. package/cjs/extensions/forms/Layout/FlexItem.d.ts +12 -0
  242. package/cjs/extensions/forms/Layout/FlexItem.js +28 -0
  243. package/cjs/extensions/forms/Layout/FlexItem.js.map +1 -0
  244. package/cjs/extensions/forms/Layout/InfoCardSection.d.ts +8 -0
  245. package/cjs/extensions/forms/Layout/InfoCardSection.js +25 -0
  246. package/cjs/extensions/forms/Layout/InfoCardSection.js.map +1 -0
  247. package/cjs/extensions/forms/Layout/MainHeading.d.ts +10 -0
  248. package/cjs/extensions/forms/Layout/MainHeading.js +27 -0
  249. package/cjs/extensions/forms/Layout/MainHeading.js.map +1 -0
  250. package/cjs/extensions/forms/Layout/Row.d.ts +7 -0
  251. package/cjs/extensions/forms/Layout/Row.js +26 -0
  252. package/cjs/extensions/forms/Layout/Row.js.map +1 -0
  253. package/cjs/extensions/forms/Layout/Section.d.ts +13 -0
  254. package/cjs/extensions/forms/Layout/Section.js +29 -0
  255. package/cjs/extensions/forms/Layout/Section.js.map +1 -0
  256. package/cjs/extensions/forms/Layout/SubHeading.d.ts +10 -0
  257. package/cjs/extensions/forms/Layout/SubHeading.js +26 -0
  258. package/cjs/extensions/forms/Layout/SubHeading.js.map +1 -0
  259. package/cjs/extensions/forms/Layout/index.d.ts +23 -0
  260. package/cjs/extensions/forms/Layout/index.js +32 -0
  261. package/cjs/extensions/forms/Layout/index.js.map +1 -0
  262. package/cjs/extensions/forms/Layout/style/dnb-button-row.css +7 -0
  263. package/cjs/extensions/forms/Layout/style/dnb-button-row.min.css +1 -0
  264. package/cjs/extensions/forms/Layout/style/dnb-button-row.scss +5 -0
  265. package/cjs/extensions/forms/Layout/style/dnb-card.css +13 -0
  266. package/cjs/extensions/forms/Layout/style/dnb-card.min.css +1 -0
  267. package/cjs/extensions/forms/Layout/style/dnb-card.scss +15 -0
  268. package/cjs/extensions/forms/Layout/style/dnb-flex-container.css +63 -0
  269. package/cjs/extensions/forms/Layout/style/dnb-flex-container.min.css +1 -0
  270. package/cjs/extensions/forms/Layout/style/dnb-flex-container.scss +84 -0
  271. package/cjs/extensions/forms/Layout/style/dnb-flex-item.css +6 -0
  272. package/cjs/extensions/forms/Layout/style/dnb-flex-item.min.css +1 -0
  273. package/cjs/extensions/forms/Layout/style/dnb-flex-item.scss +9 -0
  274. package/cjs/extensions/forms/Layout/style/dnb-section.css +3 -0
  275. package/cjs/extensions/forms/Layout/style/dnb-section.min.css +1 -0
  276. package/cjs/extensions/forms/Layout/style/dnb-section.scss +3 -0
  277. package/cjs/extensions/forms/Layout/style/index.d.ts +9 -0
  278. package/cjs/extensions/forms/Layout/style/index.js +8 -0
  279. package/cjs/extensions/forms/Layout/style/index.js.map +1 -0
  280. package/cjs/extensions/forms/Layout/style/index.scss +5 -0
  281. package/cjs/extensions/forms/Layout/style.d.ts +5 -0
  282. package/cjs/extensions/forms/Layout/style.js +4 -0
  283. package/cjs/extensions/forms/Layout/style.js.map +1 -0
  284. package/cjs/extensions/forms/StepsLayout/Buttons.d.ts +9 -0
  285. package/cjs/extensions/forms/StepsLayout/Buttons.js +27 -0
  286. package/cjs/extensions/forms/StepsLayout/Buttons.js.map +1 -0
  287. package/cjs/extensions/forms/StepsLayout/NextButton.d.ts +10 -0
  288. package/cjs/extensions/forms/StepsLayout/NextButton.js +37 -0
  289. package/cjs/extensions/forms/StepsLayout/NextButton.js.map +1 -0
  290. package/cjs/extensions/forms/StepsLayout/PreviousButton.d.ts +10 -0
  291. package/cjs/extensions/forms/StepsLayout/PreviousButton.js +37 -0
  292. package/cjs/extensions/forms/StepsLayout/PreviousButton.js.map +1 -0
  293. package/cjs/extensions/forms/StepsLayout/Step.d.ts +15 -0
  294. package/cjs/extensions/forms/StepsLayout/Step.js +37 -0
  295. package/cjs/extensions/forms/StepsLayout/Step.js.map +1 -0
  296. package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +8 -0
  297. package/cjs/extensions/forms/StepsLayout/StepsContext.js +12 -0
  298. package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +1 -0
  299. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +19 -0
  300. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +116 -0
  301. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -0
  302. package/cjs/extensions/forms/StepsLayout/index.d.ts +3 -0
  303. package/cjs/extensions/forms/StepsLayout/index.js +18 -0
  304. package/cjs/extensions/forms/StepsLayout/index.js.map +1 -0
  305. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +25 -0
  306. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -0
  307. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +23 -0
  308. package/cjs/extensions/forms/StepsLayout/style/index.d.ts +5 -0
  309. package/cjs/extensions/forms/StepsLayout/style/index.js +4 -0
  310. package/cjs/extensions/forms/StepsLayout/style/index.js.map +1 -0
  311. package/cjs/extensions/forms/StepsLayout/style/index.scss +1 -0
  312. package/cjs/extensions/forms/StepsLayout/style.d.ts +5 -0
  313. package/cjs/extensions/forms/StepsLayout/style.js +4 -0
  314. package/cjs/extensions/forms/StepsLayout/style.js.map +1 -0
  315. package/cjs/extensions/forms/Value/BankAccountNumber.d.ts +7 -0
  316. package/cjs/extensions/forms/Value/BankAccountNumber.js +32 -0
  317. package/cjs/extensions/forms/Value/BankAccountNumber.js.map +1 -0
  318. package/cjs/extensions/forms/Value/Boolean.d.ts +8 -0
  319. package/cjs/extensions/forms/Value/Boolean.js +37 -0
  320. package/cjs/extensions/forms/Value/Boolean.js.map +1 -0
  321. package/cjs/extensions/forms/Value/Currency.d.ts +7 -0
  322. package/cjs/extensions/forms/Value/Currency.js +26 -0
  323. package/cjs/extensions/forms/Value/Currency.js.map +1 -0
  324. package/cjs/extensions/forms/Value/Date.d.ts +7 -0
  325. package/cjs/extensions/forms/Value/Date.js +28 -0
  326. package/cjs/extensions/forms/Value/Date.js.map +1 -0
  327. package/cjs/extensions/forms/Value/Email.d.ts +7 -0
  328. package/cjs/extensions/forms/Value/Email.js +28 -0
  329. package/cjs/extensions/forms/Value/Email.js.map +1 -0
  330. package/cjs/extensions/forms/Value/FirstName.d.ts +7 -0
  331. package/cjs/extensions/forms/Value/FirstName.js +28 -0
  332. package/cjs/extensions/forms/Value/FirstName.js.map +1 -0
  333. package/cjs/extensions/forms/Value/LastName.d.ts +7 -0
  334. package/cjs/extensions/forms/Value/LastName.js +28 -0
  335. package/cjs/extensions/forms/Value/LastName.js.map +1 -0
  336. package/cjs/extensions/forms/Value/NationalIdentityNumber.d.ts +7 -0
  337. package/cjs/extensions/forms/Value/NationalIdentityNumber.js +32 -0
  338. package/cjs/extensions/forms/Value/NationalIdentityNumber.js.map +1 -0
  339. package/cjs/extensions/forms/Value/Number.d.ts +14 -0
  340. package/cjs/extensions/forms/Value/Number.js +44 -0
  341. package/cjs/extensions/forms/Value/Number.js.map +1 -0
  342. package/cjs/extensions/forms/Value/PhoneNumber.d.ts +7 -0
  343. package/cjs/extensions/forms/Value/PhoneNumber.js +32 -0
  344. package/cjs/extensions/forms/Value/PhoneNumber.js.map +1 -0
  345. package/cjs/extensions/forms/Value/String.d.ts +8 -0
  346. package/cjs/extensions/forms/Value/String.js +34 -0
  347. package/cjs/extensions/forms/Value/String.js.map +1 -0
  348. package/cjs/extensions/forms/Value/hooks/index.d.ts +1 -0
  349. package/cjs/extensions/forms/Value/hooks/index.js +14 -0
  350. package/cjs/extensions/forms/Value/hooks/index.js.map +1 -0
  351. package/cjs/extensions/forms/Value/hooks/useValue.d.ts +2 -0
  352. package/cjs/extensions/forms/Value/hooks/useValue.js +31 -0
  353. package/cjs/extensions/forms/Value/hooks/useValue.js.map +1 -0
  354. package/cjs/extensions/forms/Value/index.d.ts +25 -0
  355. package/cjs/extensions/forms/Value/index.js +34 -0
  356. package/cjs/extensions/forms/Value/index.js.map +1 -0
  357. package/cjs/extensions/forms/ValueBlock/ValueBlock.d.ts +11 -0
  358. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +38 -0
  359. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -0
  360. package/cjs/extensions/forms/ValueBlock/index.d.ts +1 -0
  361. package/cjs/extensions/forms/ValueBlock/index.js +14 -0
  362. package/cjs/extensions/forms/ValueBlock/index.js.map +1 -0
  363. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +16 -0
  364. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -0
  365. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +19 -0
  366. package/cjs/extensions/forms/ValueBlock/style/index.d.ts +5 -0
  367. package/cjs/extensions/forms/ValueBlock/style/index.js +4 -0
  368. package/cjs/extensions/forms/ValueBlock/style/index.js.map +1 -0
  369. package/cjs/extensions/forms/ValueBlock/style/index.scss +1 -0
  370. package/cjs/extensions/forms/ValueBlock/style.d.ts +5 -0
  371. package/cjs/extensions/forms/ValueBlock/style.js +4 -0
  372. package/cjs/extensions/forms/ValueBlock/style.js.map +1 -0
  373. package/cjs/extensions/forms/Visibility/Visibility.d.ts +24 -0
  374. package/cjs/extensions/forms/Visibility/Visibility.js +55 -0
  375. package/cjs/extensions/forms/Visibility/Visibility.js.map +1 -0
  376. package/cjs/extensions/forms/Visibility/index.d.ts +1 -0
  377. package/cjs/extensions/forms/Visibility/index.js +14 -0
  378. package/cjs/extensions/forms/Visibility/index.js.map +1 -0
  379. package/cjs/extensions/forms/component-types.d.ts +4 -0
  380. package/cjs/extensions/forms/component-types.js +1 -0
  381. package/cjs/extensions/forms/component-types.js.map +1 -0
  382. package/cjs/extensions/forms/constants/countries.d.ts +6 -0
  383. package/cjs/extensions/forms/constants/countries.js +969 -0
  384. package/cjs/extensions/forms/constants/countries.js.map +1 -0
  385. package/cjs/extensions/forms/field-types.d.ts +52 -0
  386. package/cjs/extensions/forms/field-types.js +1 -0
  387. package/cjs/extensions/forms/field-types.js.map +1 -0
  388. package/cjs/extensions/forms/index.d.ts +13 -0
  389. package/cjs/extensions/forms/index.js +110 -0
  390. package/cjs/extensions/forms/index.js.map +1 -0
  391. package/cjs/extensions/forms/style/dnb-forms.css +237 -0
  392. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -0
  393. package/cjs/extensions/forms/style/dnb-forms.scss +6 -0
  394. package/cjs/extensions/forms/style.d.ts +5 -0
  395. package/cjs/extensions/forms/style.js +4 -0
  396. package/cjs/extensions/forms/style.js.map +1 -0
  397. package/cjs/extensions/forms/types.d.ts +11 -0
  398. package/cjs/extensions/forms/types.js +20 -0
  399. package/cjs/extensions/forms/types.js.map +1 -0
  400. package/cjs/extensions/forms/utils/TestElement/TestElement.d.ts +6 -0
  401. package/cjs/extensions/forms/utils/TestElement/TestElement.js +17 -0
  402. package/cjs/extensions/forms/utils/TestElement/TestElement.js.map +1 -0
  403. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.css +6 -0
  404. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -0
  405. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.scss +6 -0
  406. package/cjs/extensions/forms/utils/TestElement/style/index.d.ts +5 -0
  407. package/cjs/extensions/forms/utils/TestElement/style/index.js +4 -0
  408. package/cjs/extensions/forms/utils/TestElement/style/index.js.map +1 -0
  409. package/cjs/extensions/forms/utils/TestElement/style.d.ts +5 -0
  410. package/cjs/extensions/forms/utils/TestElement/style.js +4 -0
  411. package/cjs/extensions/forms/utils/TestElement/style.js.map +1 -0
  412. package/cjs/extensions/forms/utils/ajv.d.ts +14 -0
  413. package/cjs/extensions/forms/utils/ajv.js +69 -0
  414. package/cjs/extensions/forms/utils/ajv.js.map +1 -0
  415. package/cjs/extensions/forms/utils/components.d.ts +3 -0
  416. package/cjs/extensions/forms/utils/components.js +32 -0
  417. package/cjs/extensions/forms/utils/components.js.map +1 -0
  418. package/cjs/extensions/forms/utils/index.d.ts +3 -0
  419. package/cjs/extensions/forms/utils/index.js +41 -0
  420. package/cjs/extensions/forms/utils/index.js.map +1 -0
  421. package/cjs/extensions/forms/utils/numbers.d.ts +17 -0
  422. package/cjs/extensions/forms/utils/numbers.js +42 -0
  423. package/cjs/extensions/forms/utils/numbers.js.map +1 -0
  424. package/cjs/extensions/forms/value-types.d.ts +15 -0
  425. package/cjs/extensions/forms/value-types.js +1 -0
  426. package/cjs/extensions/forms/value-types.js.map +1 -0
  427. package/cjs/extensions/index.d.ts +2 -1
  428. package/cjs/extensions/index.js +7 -0
  429. package/cjs/extensions/index.js.map +1 -1
  430. package/cjs/extensions/lib.d.ts +22 -1
  431. package/cjs/extensions/lib.js +8 -0
  432. package/cjs/extensions/lib.js.map +1 -1
  433. package/cjs/extensions/payment-card/utils/Types.js.map +1 -1
  434. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  435. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  436. package/cjs/shared/Context.d.ts +2 -0
  437. package/cjs/shared/Context.js.map +1 -1
  438. package/cjs/shared/Eufemia.d.ts +1 -1
  439. package/cjs/shared/Eufemia.js +2 -2
  440. package/cjs/shared/Eufemia.js.map +1 -1
  441. package/cjs/shared/VisibilityByTheme.d.ts +1 -1
  442. package/cjs/shared/VisibilityByTheme.js.map +1 -1
  443. package/cjs/shared/helpers.d.ts +2 -2
  444. package/cjs/shared/helpers.js.map +1 -1
  445. package/cjs/shared/locales/en-GB.d.ts +39 -0
  446. package/cjs/shared/locales/en-GB.js +39 -0
  447. package/cjs/shared/locales/en-GB.js.map +1 -1
  448. package/cjs/shared/locales/en-US.d.ts +39 -0
  449. package/cjs/shared/locales/index.d.ts +78 -0
  450. package/cjs/shared/locales/nb-NO.d.ts +39 -0
  451. package/cjs/shared/locales/nb-NO.js +39 -0
  452. package/cjs/shared/locales/nb-NO.js.map +1 -1
  453. package/cjs/style/core/utilities.scss +40 -8
  454. package/cjs/style/dnb-ui-components.css +71 -24
  455. package/cjs/style/dnb-ui-components.min.css +1 -1
  456. package/cjs/style/dnb-ui-extensions.css +238 -0
  457. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  458. package/cjs/style/dnb-ui-extensions.scss +1 -0
  459. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
  460. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  461. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +105 -82
  462. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  463. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +238 -0
  464. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  465. package/cjs/style/themes/theme-sbanken/properties.js +4 -4
  466. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  467. package/cjs/style/themes/theme-sbanken/properties.scss +4 -4
  468. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +4 -11
  469. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  470. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +429 -333
  471. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -1
  472. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  473. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
  474. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +238 -0
  475. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  476. package/cjs/style/themes/theme-ui/ui-theme-basis.css +17 -11
  477. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  478. package/cjs/style/themes/theme-ui/ui-theme-components.css +105 -82
  479. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  480. package/cjs/style/themes/theme-ui/ui-theme-elements.css +17 -11
  481. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  482. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +238 -0
  483. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  484. package/cjs/style/themes/theme-ui/ui-theme-tags.css +24 -12
  485. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  486. package/components/accordion/Accordion.d.ts +240 -136
  487. package/components/accordion/Accordion.js +214 -251
  488. package/components/accordion/Accordion.js.map +1 -1
  489. package/components/accordion/AccordionContent.d.ts +12 -14
  490. package/components/accordion/AccordionContent.js +5 -17
  491. package/components/accordion/AccordionContent.js.map +1 -1
  492. package/components/accordion/AccordionContext.d.ts +17 -2
  493. package/components/accordion/AccordionContext.js.map +1 -1
  494. package/components/accordion/AccordionGroup.d.ts +10 -12
  495. package/components/accordion/AccordionGroup.js +60 -71
  496. package/components/accordion/AccordionGroup.js.map +1 -1
  497. package/components/accordion/AccordionHeader.d.ts +62 -92
  498. package/components/accordion/AccordionHeader.js +175 -251
  499. package/components/accordion/AccordionHeader.js.map +1 -1
  500. package/components/accordion/AccordionProviderContext.d.ts +16 -2
  501. package/components/accordion/AccordionProviderContext.js.map +1 -1
  502. package/components/accordion/AccordionStore.d.ts +7 -6
  503. package/components/accordion/AccordionStore.js +2 -2
  504. package/components/accordion/AccordionStore.js.map +1 -1
  505. package/components/accordion/defaultProps.d.ts +2 -0
  506. package/components/accordion/defaultProps.js +5 -0
  507. package/components/accordion/defaultProps.js.map +1 -0
  508. package/components/anchor/style/anchor-mixins.scss +26 -27
  509. package/components/anchor/style/dnb-anchor.css +27 -16
  510. package/components/anchor/style/dnb-anchor.min.css +1 -1
  511. package/components/anchor/style/dnb-anchor.scss +1 -1
  512. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +97 -44
  513. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  514. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +48 -22
  515. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
  516. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  517. package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
  518. package/components/autocomplete/Autocomplete.js +2 -2
  519. package/components/autocomplete/Autocomplete.js.map +1 -1
  520. package/components/button/style/themes/button-mixins.scss +23 -4
  521. package/components/button/style/themes/dnb-button-theme-sbanken.css +80 -82
  522. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -1
  523. package/components/button/style/themes/dnb-button-theme-sbanken.scss +82 -54
  524. package/components/date-picker/DatePicker.js.map +1 -1
  525. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  526. package/components/dialog/Dialog.d.ts +1 -1
  527. package/components/dialog/DialogContent.d.ts +1 -1
  528. package/components/dialog/DialogContent.js +4 -2
  529. package/components/dialog/DialogContent.js.map +1 -1
  530. package/components/dialog/parts/DialogAction.d.ts +5 -1
  531. package/components/dialog/parts/DialogAction.js +3 -2
  532. package/components/dialog/parts/DialogAction.js.map +1 -1
  533. package/components/form-row/FormRow.js.map +1 -1
  534. package/components/form-row/style/dnb-form-row.scss +2 -2
  535. package/components/form-set/FormSet.js.map +1 -1
  536. package/components/height-animation/HeightAnimation.d.ts +1 -1
  537. package/components/height-animation/HeightAnimation.js.map +1 -1
  538. package/components/height-animation/useHeightAnimation.js.map +1 -1
  539. package/components/icon/lib/SvgComparison.js.map +1 -1
  540. package/components/input/style/dnb-input.css +5 -0
  541. package/components/input/style/dnb-input.min.css +1 -1
  542. package/components/input/style/dnb-input.scss +7 -1
  543. package/components/input/style/themes/dnb-input-theme-sbanken.css +104 -0
  544. package/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -0
  545. package/components/input/style/themes/dnb-input-theme-sbanken.scss +126 -0
  546. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  547. package/components/input-masked/TextMask.js.map +1 -1
  548. package/components/modal/Modal.js +0 -2
  549. package/components/modal/Modal.js.map +1 -1
  550. package/components/modal/bodyScrollLock.js.map +1 -1
  551. package/components/number-format/NumberUtils.js +8 -6
  552. package/components/number-format/NumberUtils.js.map +1 -1
  553. package/components/number-format/style/dnb-number-format.css +0 -7
  554. package/components/number-format/style/dnb-number-format.scss +0 -1
  555. package/components/pagination/PaginationInfinity.js.map +1 -1
  556. package/components/radio/Radio.js.map +1 -1
  557. package/components/section/style/themes/dnb-section-theme-ui.css +14 -7
  558. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  559. package/components/slider/hooks/useSliderEvents.js.map +1 -1
  560. package/components/slider/types.d.ts +1 -1
  561. package/components/slider/types.js.map +1 -1
  562. package/components/space/Space.d.ts +2 -2
  563. package/components/space/SpacingHelper.js.map +1 -1
  564. package/components/step-indicator/StepIndicatorProps.d.ts +1 -1
  565. package/components/table/TableAccordion.js.map +1 -1
  566. package/components/table/TableTr.js.map +1 -1
  567. package/components/textarea/Textarea.js.map +1 -1
  568. package/components/textarea/style/dnb-textarea.css +39 -1
  569. package/components/textarea/style/dnb-textarea.min.css +1 -1
  570. package/components/textarea/style/dnb-textarea.scss +20 -1
  571. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +61 -0
  572. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -0
  573. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +72 -0
  574. package/components/textarea/style/themes/dnb-textarea-theme-ui.css +0 -41
  575. package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  576. package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +0 -22
  577. package/components/toggle-button/ToggleButton.js.map +1 -1
  578. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  579. package/components/tooltip/TooltipContainer.js.map +1 -1
  580. package/components/upload/Upload.js +2 -2
  581. package/components/upload/Upload.js.map +1 -1
  582. package/components/upload/useUpload.d.ts +1 -1
  583. package/components/upload/useUpload.js +2 -2
  584. package/components/upload/useUpload.js.map +1 -1
  585. package/elements/blockquote/Blockquote.d.ts +1 -1
  586. package/elements/blockquote/Blockquote.js.map +1 -1
  587. package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
  588. package/es/components/accordion/Accordion.d.ts +240 -136
  589. package/es/components/accordion/Accordion.js +210 -244
  590. package/es/components/accordion/Accordion.js.map +1 -1
  591. package/es/components/accordion/AccordionContent.d.ts +12 -14
  592. package/es/components/accordion/AccordionContent.js +5 -17
  593. package/es/components/accordion/AccordionContent.js.map +1 -1
  594. package/es/components/accordion/AccordionContext.d.ts +17 -2
  595. package/es/components/accordion/AccordionContext.js.map +1 -1
  596. package/es/components/accordion/AccordionGroup.d.ts +10 -12
  597. package/es/components/accordion/AccordionGroup.js +60 -71
  598. package/es/components/accordion/AccordionGroup.js.map +1 -1
  599. package/es/components/accordion/AccordionHeader.d.ts +62 -92
  600. package/es/components/accordion/AccordionHeader.js +176 -253
  601. package/es/components/accordion/AccordionHeader.js.map +1 -1
  602. package/es/components/accordion/AccordionProviderContext.d.ts +16 -2
  603. package/es/components/accordion/AccordionProviderContext.js.map +1 -1
  604. package/es/components/accordion/AccordionStore.d.ts +7 -6
  605. package/es/components/accordion/AccordionStore.js +2 -2
  606. package/es/components/accordion/AccordionStore.js.map +1 -1
  607. package/es/components/accordion/defaultProps.d.ts +2 -0
  608. package/es/components/accordion/defaultProps.js +5 -0
  609. package/es/components/accordion/defaultProps.js.map +1 -0
  610. package/es/components/anchor/style/anchor-mixins.scss +26 -27
  611. package/es/components/anchor/style/dnb-anchor.css +27 -16
  612. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  613. package/es/components/anchor/style/dnb-anchor.scss +1 -1
  614. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +97 -44
  615. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  616. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +48 -22
  617. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
  618. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  619. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
  620. package/es/components/autocomplete/Autocomplete.js +2 -2
  621. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  622. package/es/components/button/style/themes/button-mixins.scss +23 -4
  623. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +80 -82
  624. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -1
  625. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +82 -54
  626. package/es/components/date-picker/DatePicker.js.map +1 -1
  627. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  628. package/es/components/dialog/Dialog.d.ts +1 -1
  629. package/es/components/dialog/DialogContent.d.ts +1 -1
  630. package/es/components/dialog/DialogContent.js +4 -2
  631. package/es/components/dialog/DialogContent.js.map +1 -1
  632. package/es/components/dialog/parts/DialogAction.d.ts +5 -1
  633. package/es/components/dialog/parts/DialogAction.js +3 -2
  634. package/es/components/dialog/parts/DialogAction.js.map +1 -1
  635. package/es/components/form-row/FormRow.js.map +1 -1
  636. package/es/components/form-row/style/dnb-form-row.scss +2 -2
  637. package/es/components/form-set/FormSet.js.map +1 -1
  638. package/es/components/height-animation/HeightAnimation.d.ts +1 -1
  639. package/es/components/height-animation/HeightAnimation.js.map +1 -1
  640. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  641. package/es/components/icon/lib/SvgComparison.js.map +1 -1
  642. package/es/components/input/style/dnb-input.css +5 -0
  643. package/es/components/input/style/dnb-input.min.css +1 -1
  644. package/es/components/input/style/dnb-input.scss +7 -1
  645. package/es/components/input/style/themes/dnb-input-theme-sbanken.css +104 -0
  646. package/es/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -0
  647. package/es/components/input/style/themes/dnb-input-theme-sbanken.scss +126 -0
  648. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  649. package/es/components/input-masked/TextMask.js.map +1 -1
  650. package/es/components/modal/Modal.js +0 -2
  651. package/es/components/modal/Modal.js.map +1 -1
  652. package/es/components/modal/bodyScrollLock.js.map +1 -1
  653. package/es/components/number-format/NumberUtils.js +8 -6
  654. package/es/components/number-format/NumberUtils.js.map +1 -1
  655. package/es/components/number-format/style/dnb-number-format.css +0 -7
  656. package/es/components/number-format/style/dnb-number-format.scss +0 -1
  657. package/es/components/pagination/PaginationInfinity.js.map +1 -1
  658. package/es/components/radio/Radio.js.map +1 -1
  659. package/es/components/section/style/themes/dnb-section-theme-ui.css +14 -7
  660. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  661. package/es/components/slider/hooks/useSliderEvents.js.map +1 -1
  662. package/es/components/slider/types.d.ts +1 -1
  663. package/es/components/slider/types.js.map +1 -1
  664. package/es/components/space/Space.d.ts +2 -2
  665. package/es/components/space/SpacingHelper.js.map +1 -1
  666. package/es/components/step-indicator/StepIndicatorProps.d.ts +1 -1
  667. package/es/components/table/TableAccordion.js.map +1 -1
  668. package/es/components/table/TableTr.js.map +1 -1
  669. package/es/components/textarea/Textarea.js.map +1 -1
  670. package/es/components/textarea/style/dnb-textarea.css +39 -1
  671. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  672. package/es/components/textarea/style/dnb-textarea.scss +20 -1
  673. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +61 -0
  674. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -0
  675. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +72 -0
  676. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +0 -41
  677. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  678. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +0 -22
  679. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  680. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  681. package/es/components/tooltip/TooltipContainer.js.map +1 -1
  682. package/es/components/upload/Upload.js +2 -2
  683. package/es/components/upload/Upload.js.map +1 -1
  684. package/es/components/upload/useUpload.d.ts +1 -1
  685. package/es/components/upload/useUpload.js +2 -2
  686. package/es/components/upload/useUpload.js.map +1 -1
  687. package/es/elements/blockquote/Blockquote.d.ts +1 -1
  688. package/es/elements/blockquote/Blockquote.js.map +1 -1
  689. package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
  690. package/es/extensions/forms/DataContext/At.d.ts +13 -0
  691. package/es/extensions/forms/DataContext/At.js +48 -0
  692. package/es/extensions/forms/DataContext/At.js.map +1 -0
  693. package/es/extensions/forms/DataContext/Context.d.ts +19 -0
  694. package/es/extensions/forms/DataContext/Context.js +16 -0
  695. package/es/extensions/forms/DataContext/Context.js.map +1 -0
  696. package/es/extensions/forms/DataContext/Provider.d.ts +19 -0
  697. package/es/extensions/forms/DataContext/Provider.js +102 -0
  698. package/es/extensions/forms/DataContext/Provider.js.map +1 -0
  699. package/es/extensions/forms/DataContext/SubmitButton.d.ts +9 -0
  700. package/es/extensions/forms/DataContext/SubmitButton.js +20 -0
  701. package/es/extensions/forms/DataContext/SubmitButton.js.map +1 -0
  702. package/es/extensions/forms/DataContext/index.d.ts +13 -0
  703. package/es/extensions/forms/DataContext/index.js +12 -0
  704. package/es/extensions/forms/DataContext/index.js.map +1 -0
  705. package/es/extensions/forms/Field/ArraySelection.d.ts +12 -0
  706. package/es/extensions/forms/Field/ArraySelection.js +60 -0
  707. package/es/extensions/forms/Field/ArraySelection.js.map +1 -0
  708. package/es/extensions/forms/Field/BankAccountNumber.d.ts +10 -0
  709. package/es/extensions/forms/Field/BankAccountNumber.js +28 -0
  710. package/es/extensions/forms/Field/BankAccountNumber.js.map +1 -0
  711. package/es/extensions/forms/Field/Boolean.d.ts +10 -0
  712. package/es/extensions/forms/Field/Boolean.js +23 -0
  713. package/es/extensions/forms/Field/Boolean.js.map +1 -0
  714. package/es/extensions/forms/Field/Currency.d.ts +10 -0
  715. package/es/extensions/forms/Field/Currency.js +50 -0
  716. package/es/extensions/forms/Field/Currency.js.map +1 -0
  717. package/es/extensions/forms/Field/Date.d.ts +8 -0
  718. package/es/extensions/forms/Field/Date.js +46 -0
  719. package/es/extensions/forms/Field/Date.js.map +1 -0
  720. package/es/extensions/forms/Field/Email.d.ts +7 -0
  721. package/es/extensions/forms/Field/Email.js +22 -0
  722. package/es/extensions/forms/Field/Email.js.map +1 -0
  723. package/es/extensions/forms/Field/FirstName.d.ts +7 -0
  724. package/es/extensions/forms/Field/FirstName.js +19 -0
  725. package/es/extensions/forms/Field/FirstName.js.map +1 -0
  726. package/es/extensions/forms/Field/LastName.d.ts +7 -0
  727. package/es/extensions/forms/Field/LastName.js +19 -0
  728. package/es/extensions/forms/Field/LastName.js.map +1 -0
  729. package/es/extensions/forms/Field/NationalIdentityNumber.d.ts +10 -0
  730. package/es/extensions/forms/Field/NationalIdentityNumber.js +27 -0
  731. package/es/extensions/forms/Field/NationalIdentityNumber.js.map +1 -0
  732. package/es/extensions/forms/Field/Number.d.ts +31 -0
  733. package/es/extensions/forms/Field/Number.js +100 -0
  734. package/es/extensions/forms/Field/Number.js.map +1 -0
  735. package/es/extensions/forms/Field/Option.d.ts +9 -0
  736. package/es/extensions/forms/Field/Option.js +14 -0
  737. package/es/extensions/forms/Field/Option.js.map +1 -0
  738. package/es/extensions/forms/Field/OrganizationNumber.d.ts +10 -0
  739. package/es/extensions/forms/Field/OrganizationNumber.js +28 -0
  740. package/es/extensions/forms/Field/OrganizationNumber.js.map +1 -0
  741. package/es/extensions/forms/Field/PhoneNumber.d.ts +12 -0
  742. package/es/extensions/forms/Field/PhoneNumber.js +87 -0
  743. package/es/extensions/forms/Field/PhoneNumber.js.map +1 -0
  744. package/es/extensions/forms/Field/PostalCodeAndCity.d.ts +10 -0
  745. package/es/extensions/forms/Field/PostalCodeAndCity.js +46 -0
  746. package/es/extensions/forms/Field/PostalCodeAndCity.js.map +1 -0
  747. package/es/extensions/forms/Field/SelectCountry.d.ts +7 -0
  748. package/es/extensions/forms/Field/SelectCountry.js +26 -0
  749. package/es/extensions/forms/Field/SelectCountry.js.map +1 -0
  750. package/es/extensions/forms/Field/Selection.d.ts +13 -0
  751. package/es/extensions/forms/Field/Selection.js +107 -0
  752. package/es/extensions/forms/Field/Selection.js.map +1 -0
  753. package/es/extensions/forms/Field/String.d.ts +32 -0
  754. package/es/extensions/forms/Field/String.js +122 -0
  755. package/es/extensions/forms/Field/String.js.map +1 -0
  756. package/es/extensions/forms/Field/Toggle.d.ts +14 -0
  757. package/es/extensions/forms/Field/Toggle.js +116 -0
  758. package/es/extensions/forms/Field/Toggle.js.map +1 -0
  759. package/es/extensions/forms/Field/fields.scss +2 -0
  760. package/es/extensions/forms/Field/hooks/index.d.ts +1 -0
  761. package/es/extensions/forms/Field/hooks/index.js +1 -0
  762. package/es/extensions/forms/Field/hooks/index.js.map +1 -0
  763. package/es/extensions/forms/Field/hooks/useField.d.ts +11 -0
  764. package/es/extensions/forms/Field/hooks/useField.js +150 -0
  765. package/es/extensions/forms/Field/hooks/useField.js.map +1 -0
  766. package/es/extensions/forms/Field/index.d.ts +39 -0
  767. package/es/extensions/forms/Field/index.js +40 -0
  768. package/es/extensions/forms/Field/index.js.map +1 -0
  769. package/es/extensions/forms/Field/style/dnb-number.css +11 -0
  770. package/es/extensions/forms/Field/style/dnb-number.min.css +1 -0
  771. package/es/extensions/forms/Field/style/dnb-number.scss +19 -0
  772. package/es/extensions/forms/Field/style/dnb-phone-number.css +23 -0
  773. package/es/extensions/forms/Field/style/dnb-phone-number.min.css +1 -0
  774. package/es/extensions/forms/Field/style/dnb-phone-number.scss +28 -0
  775. package/es/extensions/forms/Field/style/dnb-postal-code-and-city.css +19 -0
  776. package/es/extensions/forms/Field/style/dnb-postal-code-and-city.min.css +1 -0
  777. package/es/extensions/forms/Field/style/dnb-postal-code-and-city.scss +25 -0
  778. package/es/extensions/forms/Field/style/dnb-selection.css +6 -0
  779. package/es/extensions/forms/Field/style/dnb-selection.min.css +1 -0
  780. package/es/extensions/forms/Field/style/dnb-selection.scss +15 -0
  781. package/es/extensions/forms/Field/style/dnb-string.css +11 -0
  782. package/es/extensions/forms/Field/style/dnb-string.min.css +1 -0
  783. package/es/extensions/forms/Field/style/dnb-string.scss +19 -0
  784. package/es/extensions/forms/Field/style/index.d.ts +6 -0
  785. package/es/extensions/forms/Field/style/index.js +3 -0
  786. package/es/extensions/forms/Field/style/index.js.map +1 -0
  787. package/es/extensions/forms/Field/style/index.scss +5 -0
  788. package/es/extensions/forms/Field/style.d.ts +5 -0
  789. package/es/extensions/forms/Field/style.js +1 -0
  790. package/es/extensions/forms/Field/style.js.map +1 -0
  791. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +12 -0
  792. package/es/extensions/forms/FieldBlock/FieldBlock.js +69 -0
  793. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -0
  794. package/es/extensions/forms/FieldBlock/index.d.ts +1 -0
  795. package/es/extensions/forms/FieldBlock/index.js +1 -0
  796. package/es/extensions/forms/FieldBlock/index.js.map +1 -0
  797. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
  798. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -0
  799. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +19 -0
  800. package/es/extensions/forms/FieldBlock/style/index.d.ts +5 -0
  801. package/es/extensions/forms/FieldBlock/style/index.js +1 -0
  802. package/es/extensions/forms/FieldBlock/style/index.js.map +1 -0
  803. package/es/extensions/forms/FieldBlock/style.d.ts +5 -0
  804. package/es/extensions/forms/FieldBlock/style.js +1 -0
  805. package/es/extensions/forms/FieldBlock/style.js.map +1 -0
  806. package/es/extensions/forms/FieldGroup/FieldGroup.d.ts +17 -0
  807. package/es/extensions/forms/FieldGroup/FieldGroup.js +77 -0
  808. package/es/extensions/forms/FieldGroup/FieldGroup.js.map +1 -0
  809. package/es/extensions/forms/FieldGroup/index.d.ts +2 -0
  810. package/es/extensions/forms/FieldGroup/index.js +3 -0
  811. package/es/extensions/forms/FieldGroup/index.js.map +1 -0
  812. package/es/extensions/forms/Forms.d.ts +3 -0
  813. package/es/extensions/forms/Forms.js +4 -0
  814. package/es/extensions/forms/Forms.js.map +1 -0
  815. package/es/extensions/forms/Layout/ButtonRow.d.ts +10 -0
  816. package/es/extensions/forms/Layout/ButtonRow.js +17 -0
  817. package/es/extensions/forms/Layout/ButtonRow.js.map +1 -0
  818. package/es/extensions/forms/Layout/Card.d.ts +14 -0
  819. package/es/extensions/forms/Layout/Card.js +37 -0
  820. package/es/extensions/forms/Layout/Card.js.map +1 -0
  821. package/es/extensions/forms/Layout/Column.d.ts +7 -0
  822. package/es/extensions/forms/Layout/Column.js +17 -0
  823. package/es/extensions/forms/Layout/Column.js.map +1 -0
  824. package/es/extensions/forms/Layout/FlexContainer.d.ts +23 -0
  825. package/es/extensions/forms/Layout/FlexContainer.js +91 -0
  826. package/es/extensions/forms/Layout/FlexContainer.js.map +1 -0
  827. package/es/extensions/forms/Layout/FlexItem.d.ts +12 -0
  828. package/es/extensions/forms/Layout/FlexItem.js +20 -0
  829. package/es/extensions/forms/Layout/FlexItem.js.map +1 -0
  830. package/es/extensions/forms/Layout/InfoCardSection.d.ts +8 -0
  831. package/es/extensions/forms/Layout/InfoCardSection.js +17 -0
  832. package/es/extensions/forms/Layout/InfoCardSection.js.map +1 -0
  833. package/es/extensions/forms/Layout/MainHeading.d.ts +10 -0
  834. package/es/extensions/forms/Layout/MainHeading.js +19 -0
  835. package/es/extensions/forms/Layout/MainHeading.js.map +1 -0
  836. package/es/extensions/forms/Layout/Row.d.ts +7 -0
  837. package/es/extensions/forms/Layout/Row.js +17 -0
  838. package/es/extensions/forms/Layout/Row.js.map +1 -0
  839. package/es/extensions/forms/Layout/Section.d.ts +13 -0
  840. package/es/extensions/forms/Layout/Section.js +21 -0
  841. package/es/extensions/forms/Layout/Section.js.map +1 -0
  842. package/es/extensions/forms/Layout/SubHeading.d.ts +10 -0
  843. package/es/extensions/forms/Layout/SubHeading.js +18 -0
  844. package/es/extensions/forms/Layout/SubHeading.js.map +1 -0
  845. package/es/extensions/forms/Layout/index.d.ts +23 -0
  846. package/es/extensions/forms/Layout/index.js +24 -0
  847. package/es/extensions/forms/Layout/index.js.map +1 -0
  848. package/es/extensions/forms/Layout/style/dnb-button-row.css +7 -0
  849. package/es/extensions/forms/Layout/style/dnb-button-row.min.css +1 -0
  850. package/es/extensions/forms/Layout/style/dnb-button-row.scss +5 -0
  851. package/es/extensions/forms/Layout/style/dnb-card.css +13 -0
  852. package/es/extensions/forms/Layout/style/dnb-card.min.css +1 -0
  853. package/es/extensions/forms/Layout/style/dnb-card.scss +15 -0
  854. package/es/extensions/forms/Layout/style/dnb-flex-container.css +63 -0
  855. package/es/extensions/forms/Layout/style/dnb-flex-container.min.css +1 -0
  856. package/es/extensions/forms/Layout/style/dnb-flex-container.scss +84 -0
  857. package/es/extensions/forms/Layout/style/dnb-flex-item.css +6 -0
  858. package/es/extensions/forms/Layout/style/dnb-flex-item.min.css +1 -0
  859. package/es/extensions/forms/Layout/style/dnb-flex-item.scss +9 -0
  860. package/es/extensions/forms/Layout/style/dnb-section.css +3 -0
  861. package/es/extensions/forms/Layout/style/dnb-section.min.css +1 -0
  862. package/es/extensions/forms/Layout/style/dnb-section.scss +3 -0
  863. package/es/extensions/forms/Layout/style/index.d.ts +9 -0
  864. package/es/extensions/forms/Layout/style/index.js +6 -0
  865. package/es/extensions/forms/Layout/style/index.js.map +1 -0
  866. package/es/extensions/forms/Layout/style/index.scss +5 -0
  867. package/es/extensions/forms/Layout/style.d.ts +5 -0
  868. package/es/extensions/forms/Layout/style.js +1 -0
  869. package/es/extensions/forms/Layout/style.js.map +1 -0
  870. package/es/extensions/forms/StepsLayout/Buttons.d.ts +9 -0
  871. package/es/extensions/forms/StepsLayout/Buttons.js +19 -0
  872. package/es/extensions/forms/StepsLayout/Buttons.js.map +1 -0
  873. package/es/extensions/forms/StepsLayout/NextButton.d.ts +10 -0
  874. package/es/extensions/forms/StepsLayout/NextButton.js +27 -0
  875. package/es/extensions/forms/StepsLayout/NextButton.js.map +1 -0
  876. package/es/extensions/forms/StepsLayout/PreviousButton.d.ts +10 -0
  877. package/es/extensions/forms/StepsLayout/PreviousButton.js +27 -0
  878. package/es/extensions/forms/StepsLayout/PreviousButton.js.map +1 -0
  879. package/es/extensions/forms/StepsLayout/Step.d.ts +15 -0
  880. package/es/extensions/forms/StepsLayout/Step.js +27 -0
  881. package/es/extensions/forms/StepsLayout/Step.js.map +1 -0
  882. package/es/extensions/forms/StepsLayout/StepsContext.d.ts +8 -0
  883. package/es/extensions/forms/StepsLayout/StepsContext.js +4 -0
  884. package/es/extensions/forms/StepsLayout/StepsContext.js.map +1 -0
  885. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +19 -0
  886. package/es/extensions/forms/StepsLayout/StepsLayout.js +105 -0
  887. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -0
  888. package/es/extensions/forms/StepsLayout/index.d.ts +3 -0
  889. package/es/extensions/forms/StepsLayout/index.js +4 -0
  890. package/es/extensions/forms/StepsLayout/index.js.map +1 -0
  891. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +25 -0
  892. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -0
  893. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +23 -0
  894. package/es/extensions/forms/StepsLayout/style/index.d.ts +5 -0
  895. package/es/extensions/forms/StepsLayout/style/index.js +1 -0
  896. package/es/extensions/forms/StepsLayout/style/index.js.map +1 -0
  897. package/es/extensions/forms/StepsLayout/style/index.scss +1 -0
  898. package/es/extensions/forms/StepsLayout/style.d.ts +5 -0
  899. package/es/extensions/forms/StepsLayout/style.js +1 -0
  900. package/es/extensions/forms/StepsLayout/style.js.map +1 -0
  901. package/es/extensions/forms/Value/BankAccountNumber.d.ts +7 -0
  902. package/es/extensions/forms/Value/BankAccountNumber.js +20 -0
  903. package/es/extensions/forms/Value/BankAccountNumber.js.map +1 -0
  904. package/es/extensions/forms/Value/Boolean.d.ts +8 -0
  905. package/es/extensions/forms/Value/Boolean.js +27 -0
  906. package/es/extensions/forms/Value/Boolean.js.map +1 -0
  907. package/es/extensions/forms/Value/Currency.d.ts +7 -0
  908. package/es/extensions/forms/Value/Currency.js +16 -0
  909. package/es/extensions/forms/Value/Currency.js.map +1 -0
  910. package/es/extensions/forms/Value/Date.d.ts +7 -0
  911. package/es/extensions/forms/Value/Date.js +16 -0
  912. package/es/extensions/forms/Value/Date.js.map +1 -0
  913. package/es/extensions/forms/Value/Email.d.ts +7 -0
  914. package/es/extensions/forms/Value/Email.js +16 -0
  915. package/es/extensions/forms/Value/Email.js.map +1 -0
  916. package/es/extensions/forms/Value/FirstName.d.ts +7 -0
  917. package/es/extensions/forms/Value/FirstName.js +16 -0
  918. package/es/extensions/forms/Value/FirstName.js.map +1 -0
  919. package/es/extensions/forms/Value/LastName.d.ts +7 -0
  920. package/es/extensions/forms/Value/LastName.js +16 -0
  921. package/es/extensions/forms/Value/LastName.js.map +1 -0
  922. package/es/extensions/forms/Value/NationalIdentityNumber.d.ts +7 -0
  923. package/es/extensions/forms/Value/NationalIdentityNumber.js +20 -0
  924. package/es/extensions/forms/Value/NationalIdentityNumber.js.map +1 -0
  925. package/es/extensions/forms/Value/Number.d.ts +14 -0
  926. package/es/extensions/forms/Value/Number.js +36 -0
  927. package/es/extensions/forms/Value/Number.js.map +1 -0
  928. package/es/extensions/forms/Value/PhoneNumber.d.ts +7 -0
  929. package/es/extensions/forms/Value/PhoneNumber.js +20 -0
  930. package/es/extensions/forms/Value/PhoneNumber.js.map +1 -0
  931. package/es/extensions/forms/Value/String.d.ts +8 -0
  932. package/es/extensions/forms/Value/String.js +26 -0
  933. package/es/extensions/forms/Value/String.js.map +1 -0
  934. package/es/extensions/forms/Value/hooks/index.d.ts +1 -0
  935. package/es/extensions/forms/Value/hooks/index.js +1 -0
  936. package/es/extensions/forms/Value/hooks/index.js.map +1 -0
  937. package/es/extensions/forms/Value/hooks/useValue.d.ts +2 -0
  938. package/es/extensions/forms/Value/hooks/useValue.js +22 -0
  939. package/es/extensions/forms/Value/hooks/useValue.js.map +1 -0
  940. package/es/extensions/forms/Value/index.d.ts +25 -0
  941. package/es/extensions/forms/Value/index.js +26 -0
  942. package/es/extensions/forms/Value/index.js.map +1 -0
  943. package/es/extensions/forms/ValueBlock/ValueBlock.d.ts +11 -0
  944. package/es/extensions/forms/ValueBlock/ValueBlock.js +30 -0
  945. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -0
  946. package/es/extensions/forms/ValueBlock/index.d.ts +1 -0
  947. package/es/extensions/forms/ValueBlock/index.js +1 -0
  948. package/es/extensions/forms/ValueBlock/index.js.map +1 -0
  949. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +16 -0
  950. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -0
  951. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +19 -0
  952. package/es/extensions/forms/ValueBlock/style/index.d.ts +5 -0
  953. package/es/extensions/forms/ValueBlock/style/index.js +1 -0
  954. package/es/extensions/forms/ValueBlock/style/index.js.map +1 -0
  955. package/es/extensions/forms/ValueBlock/style/index.scss +1 -0
  956. package/es/extensions/forms/ValueBlock/style.d.ts +5 -0
  957. package/es/extensions/forms/ValueBlock/style.js +1 -0
  958. package/es/extensions/forms/ValueBlock/style.js.map +1 -0
  959. package/es/extensions/forms/Visibility/Visibility.d.ts +24 -0
  960. package/es/extensions/forms/Visibility/Visibility.js +44 -0
  961. package/es/extensions/forms/Visibility/Visibility.js.map +1 -0
  962. package/es/extensions/forms/Visibility/index.d.ts +1 -0
  963. package/es/extensions/forms/Visibility/index.js +1 -0
  964. package/es/extensions/forms/Visibility/index.js.map +1 -0
  965. package/es/extensions/forms/component-types.d.ts +4 -0
  966. package/es/extensions/forms/component-types.js +1 -0
  967. package/es/extensions/forms/component-types.js.map +1 -0
  968. package/es/extensions/forms/constants/countries.d.ts +6 -0
  969. package/es/extensions/forms/constants/countries.js +962 -0
  970. package/es/extensions/forms/constants/countries.js.map +1 -0
  971. package/es/extensions/forms/field-types.d.ts +52 -0
  972. package/es/extensions/forms/field-types.js +1 -0
  973. package/es/extensions/forms/field-types.js.map +1 -0
  974. package/es/extensions/forms/index.d.ts +13 -0
  975. package/es/extensions/forms/index.js +12 -0
  976. package/es/extensions/forms/index.js.map +1 -0
  977. package/es/extensions/forms/style/dnb-forms.css +237 -0
  978. package/es/extensions/forms/style/dnb-forms.min.css +1 -0
  979. package/es/extensions/forms/style/dnb-forms.scss +6 -0
  980. package/es/extensions/forms/style.d.ts +5 -0
  981. package/es/extensions/forms/style.js +1 -0
  982. package/es/extensions/forms/style.js.map +1 -0
  983. package/es/extensions/forms/types.d.ts +11 -0
  984. package/es/extensions/forms/types.js +11 -0
  985. package/es/extensions/forms/types.js.map +1 -0
  986. package/es/extensions/forms/utils/TestElement/TestElement.d.ts +6 -0
  987. package/es/extensions/forms/utils/TestElement/TestElement.js +9 -0
  988. package/es/extensions/forms/utils/TestElement/TestElement.js.map +1 -0
  989. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.css +6 -0
  990. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -0
  991. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.scss +6 -0
  992. package/es/extensions/forms/utils/TestElement/style/index.d.ts +5 -0
  993. package/es/extensions/forms/utils/TestElement/style/index.js +1 -0
  994. package/es/extensions/forms/utils/TestElement/style/index.js.map +1 -0
  995. package/es/extensions/forms/utils/TestElement/style.d.ts +5 -0
  996. package/es/extensions/forms/utils/TestElement/style.js +1 -0
  997. package/es/extensions/forms/utils/TestElement/style.js.map +1 -0
  998. package/es/extensions/forms/utils/ajv.d.ts +14 -0
  999. package/es/extensions/forms/utils/ajv.js +56 -0
  1000. package/es/extensions/forms/utils/ajv.js.map +1 -0
  1001. package/es/extensions/forms/utils/components.d.ts +3 -0
  1002. package/es/extensions/forms/utils/components.js +23 -0
  1003. package/es/extensions/forms/utils/components.js.map +1 -0
  1004. package/es/extensions/forms/utils/index.d.ts +3 -0
  1005. package/es/extensions/forms/utils/index.js +4 -0
  1006. package/es/extensions/forms/utils/index.js.map +1 -0
  1007. package/es/extensions/forms/utils/numbers.d.ts +17 -0
  1008. package/es/extensions/forms/utils/numbers.js +35 -0
  1009. package/es/extensions/forms/utils/numbers.js.map +1 -0
  1010. package/es/extensions/forms/value-types.d.ts +15 -0
  1011. package/es/extensions/forms/value-types.js +1 -0
  1012. package/es/extensions/forms/value-types.js.map +1 -0
  1013. package/es/extensions/index.d.ts +2 -1
  1014. package/es/extensions/index.js +2 -1
  1015. package/es/extensions/index.js.map +1 -1
  1016. package/es/extensions/lib.d.ts +22 -1
  1017. package/es/extensions/lib.js +3 -1
  1018. package/es/extensions/lib.js.map +1 -1
  1019. package/es/extensions/payment-card/utils/Types.js.map +1 -1
  1020. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  1021. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  1022. package/es/shared/Context.d.ts +2 -0
  1023. package/es/shared/Context.js.map +1 -1
  1024. package/es/shared/Eufemia.d.ts +1 -1
  1025. package/es/shared/Eufemia.js +2 -2
  1026. package/es/shared/Eufemia.js.map +1 -1
  1027. package/es/shared/VisibilityByTheme.d.ts +1 -1
  1028. package/es/shared/VisibilityByTheme.js.map +1 -1
  1029. package/es/shared/helpers.d.ts +2 -2
  1030. package/es/shared/helpers.js.map +1 -1
  1031. package/es/shared/locales/en-GB.d.ts +39 -0
  1032. package/es/shared/locales/en-GB.js +39 -0
  1033. package/es/shared/locales/en-GB.js.map +1 -1
  1034. package/es/shared/locales/en-US.d.ts +39 -0
  1035. package/es/shared/locales/index.d.ts +78 -0
  1036. package/es/shared/locales/nb-NO.d.ts +39 -0
  1037. package/es/shared/locales/nb-NO.js +39 -0
  1038. package/es/shared/locales/nb-NO.js.map +1 -1
  1039. package/es/style/core/utilities.scss +40 -8
  1040. package/es/style/dnb-ui-components.css +71 -24
  1041. package/es/style/dnb-ui-components.min.css +1 -1
  1042. package/es/style/dnb-ui-extensions.css +238 -0
  1043. package/es/style/dnb-ui-extensions.min.css +1 -1
  1044. package/es/style/dnb-ui-extensions.scss +1 -0
  1045. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
  1046. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1047. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +105 -82
  1048. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  1049. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +238 -0
  1050. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1051. package/es/style/themes/theme-sbanken/properties.js +4 -4
  1052. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  1053. package/es/style/themes/theme-sbanken/properties.scss +4 -4
  1054. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +4 -11
  1055. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1056. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +429 -333
  1057. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -1
  1058. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  1059. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
  1060. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +238 -0
  1061. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1062. package/es/style/themes/theme-ui/ui-theme-basis.css +17 -11
  1063. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1064. package/es/style/themes/theme-ui/ui-theme-components.css +105 -82
  1065. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  1066. package/es/style/themes/theme-ui/ui-theme-elements.css +17 -11
  1067. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1068. package/es/style/themes/theme-ui/ui-theme-extensions.css +238 -0
  1069. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1070. package/es/style/themes/theme-ui/ui-theme-tags.css +24 -12
  1071. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1072. package/esm/dnb-ui-basis.min.mjs +1 -1
  1073. package/esm/dnb-ui-components.min.mjs +1 -1
  1074. package/esm/dnb-ui-elements.min.mjs +1 -1
  1075. package/esm/dnb-ui-extensions.min.mjs +7 -1
  1076. package/esm/dnb-ui-lib.min.mjs +1 -1
  1077. package/extensions/forms/DataContext/At.d.ts +13 -0
  1078. package/extensions/forms/DataContext/At.js +48 -0
  1079. package/extensions/forms/DataContext/At.js.map +1 -0
  1080. package/extensions/forms/DataContext/Context.d.ts +19 -0
  1081. package/extensions/forms/DataContext/Context.js +16 -0
  1082. package/extensions/forms/DataContext/Context.js.map +1 -0
  1083. package/extensions/forms/DataContext/Provider.d.ts +19 -0
  1084. package/extensions/forms/DataContext/Provider.js +103 -0
  1085. package/extensions/forms/DataContext/Provider.js.map +1 -0
  1086. package/extensions/forms/DataContext/SubmitButton.d.ts +9 -0
  1087. package/extensions/forms/DataContext/SubmitButton.js +20 -0
  1088. package/extensions/forms/DataContext/SubmitButton.js.map +1 -0
  1089. package/extensions/forms/DataContext/index.d.ts +13 -0
  1090. package/extensions/forms/DataContext/index.js +12 -0
  1091. package/extensions/forms/DataContext/index.js.map +1 -0
  1092. package/extensions/forms/Field/ArraySelection.d.ts +12 -0
  1093. package/extensions/forms/Field/ArraySelection.js +60 -0
  1094. package/extensions/forms/Field/ArraySelection.js.map +1 -0
  1095. package/extensions/forms/Field/BankAccountNumber.d.ts +10 -0
  1096. package/extensions/forms/Field/BankAccountNumber.js +28 -0
  1097. package/extensions/forms/Field/BankAccountNumber.js.map +1 -0
  1098. package/extensions/forms/Field/Boolean.d.ts +10 -0
  1099. package/extensions/forms/Field/Boolean.js +23 -0
  1100. package/extensions/forms/Field/Boolean.js.map +1 -0
  1101. package/extensions/forms/Field/Currency.d.ts +10 -0
  1102. package/extensions/forms/Field/Currency.js +51 -0
  1103. package/extensions/forms/Field/Currency.js.map +1 -0
  1104. package/extensions/forms/Field/Date.d.ts +8 -0
  1105. package/extensions/forms/Field/Date.js +47 -0
  1106. package/extensions/forms/Field/Date.js.map +1 -0
  1107. package/extensions/forms/Field/Email.d.ts +7 -0
  1108. package/extensions/forms/Field/Email.js +22 -0
  1109. package/extensions/forms/Field/Email.js.map +1 -0
  1110. package/extensions/forms/Field/FirstName.d.ts +7 -0
  1111. package/extensions/forms/Field/FirstName.js +19 -0
  1112. package/extensions/forms/Field/FirstName.js.map +1 -0
  1113. package/extensions/forms/Field/LastName.d.ts +7 -0
  1114. package/extensions/forms/Field/LastName.js +19 -0
  1115. package/extensions/forms/Field/LastName.js.map +1 -0
  1116. package/extensions/forms/Field/NationalIdentityNumber.d.ts +10 -0
  1117. package/extensions/forms/Field/NationalIdentityNumber.js +27 -0
  1118. package/extensions/forms/Field/NationalIdentityNumber.js.map +1 -0
  1119. package/extensions/forms/Field/Number.d.ts +31 -0
  1120. package/extensions/forms/Field/Number.js +101 -0
  1121. package/extensions/forms/Field/Number.js.map +1 -0
  1122. package/extensions/forms/Field/Option.d.ts +9 -0
  1123. package/extensions/forms/Field/Option.js +15 -0
  1124. package/extensions/forms/Field/Option.js.map +1 -0
  1125. package/extensions/forms/Field/OrganizationNumber.d.ts +10 -0
  1126. package/extensions/forms/Field/OrganizationNumber.js +28 -0
  1127. package/extensions/forms/Field/OrganizationNumber.js.map +1 -0
  1128. package/extensions/forms/Field/PhoneNumber.d.ts +12 -0
  1129. package/extensions/forms/Field/PhoneNumber.js +89 -0
  1130. package/extensions/forms/Field/PhoneNumber.js.map +1 -0
  1131. package/extensions/forms/Field/PostalCodeAndCity.d.ts +10 -0
  1132. package/extensions/forms/Field/PostalCodeAndCity.js +46 -0
  1133. package/extensions/forms/Field/PostalCodeAndCity.js.map +1 -0
  1134. package/extensions/forms/Field/SelectCountry.d.ts +7 -0
  1135. package/extensions/forms/Field/SelectCountry.js +26 -0
  1136. package/extensions/forms/Field/SelectCountry.js.map +1 -0
  1137. package/extensions/forms/Field/Selection.d.ts +13 -0
  1138. package/extensions/forms/Field/Selection.js +110 -0
  1139. package/extensions/forms/Field/Selection.js.map +1 -0
  1140. package/extensions/forms/Field/String.d.ts +32 -0
  1141. package/extensions/forms/Field/String.js +123 -0
  1142. package/extensions/forms/Field/String.js.map +1 -0
  1143. package/extensions/forms/Field/Toggle.d.ts +14 -0
  1144. package/extensions/forms/Field/Toggle.js +117 -0
  1145. package/extensions/forms/Field/Toggle.js.map +1 -0
  1146. package/extensions/forms/Field/fields.scss +2 -0
  1147. package/extensions/forms/Field/hooks/index.d.ts +1 -0
  1148. package/extensions/forms/Field/hooks/index.js +1 -0
  1149. package/extensions/forms/Field/hooks/index.js.map +1 -0
  1150. package/extensions/forms/Field/hooks/useField.d.ts +11 -0
  1151. package/extensions/forms/Field/hooks/useField.js +152 -0
  1152. package/extensions/forms/Field/hooks/useField.js.map +1 -0
  1153. package/extensions/forms/Field/index.d.ts +39 -0
  1154. package/extensions/forms/Field/index.js +40 -0
  1155. package/extensions/forms/Field/index.js.map +1 -0
  1156. package/extensions/forms/Field/style/dnb-number.css +11 -0
  1157. package/extensions/forms/Field/style/dnb-number.min.css +1 -0
  1158. package/extensions/forms/Field/style/dnb-number.scss +19 -0
  1159. package/extensions/forms/Field/style/dnb-phone-number.css +23 -0
  1160. package/extensions/forms/Field/style/dnb-phone-number.min.css +1 -0
  1161. package/extensions/forms/Field/style/dnb-phone-number.scss +28 -0
  1162. package/extensions/forms/Field/style/dnb-postal-code-and-city.css +19 -0
  1163. package/extensions/forms/Field/style/dnb-postal-code-and-city.min.css +1 -0
  1164. package/extensions/forms/Field/style/dnb-postal-code-and-city.scss +25 -0
  1165. package/extensions/forms/Field/style/dnb-selection.css +6 -0
  1166. package/extensions/forms/Field/style/dnb-selection.min.css +1 -0
  1167. package/extensions/forms/Field/style/dnb-selection.scss +15 -0
  1168. package/extensions/forms/Field/style/dnb-string.css +11 -0
  1169. package/extensions/forms/Field/style/dnb-string.min.css +1 -0
  1170. package/extensions/forms/Field/style/dnb-string.scss +19 -0
  1171. package/extensions/forms/Field/style/index.d.ts +6 -0
  1172. package/extensions/forms/Field/style/index.js +3 -0
  1173. package/extensions/forms/Field/style/index.js.map +1 -0
  1174. package/extensions/forms/Field/style/index.scss +5 -0
  1175. package/extensions/forms/Field/style.d.ts +5 -0
  1176. package/extensions/forms/Field/style.js +1 -0
  1177. package/extensions/forms/Field/style.js.map +1 -0
  1178. package/extensions/forms/FieldBlock/FieldBlock.d.ts +12 -0
  1179. package/extensions/forms/FieldBlock/FieldBlock.js +69 -0
  1180. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -0
  1181. package/extensions/forms/FieldBlock/index.d.ts +1 -0
  1182. package/extensions/forms/FieldBlock/index.js +1 -0
  1183. package/extensions/forms/FieldBlock/index.js.map +1 -0
  1184. package/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
  1185. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -0
  1186. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +19 -0
  1187. package/extensions/forms/FieldBlock/style/index.d.ts +5 -0
  1188. package/extensions/forms/FieldBlock/style/index.js +1 -0
  1189. package/extensions/forms/FieldBlock/style/index.js.map +1 -0
  1190. package/extensions/forms/FieldBlock/style.d.ts +5 -0
  1191. package/extensions/forms/FieldBlock/style.js +1 -0
  1192. package/extensions/forms/FieldBlock/style.js.map +1 -0
  1193. package/extensions/forms/FieldGroup/FieldGroup.d.ts +17 -0
  1194. package/extensions/forms/FieldGroup/FieldGroup.js +83 -0
  1195. package/extensions/forms/FieldGroup/FieldGroup.js.map +1 -0
  1196. package/extensions/forms/FieldGroup/index.d.ts +2 -0
  1197. package/extensions/forms/FieldGroup/index.js +3 -0
  1198. package/extensions/forms/FieldGroup/index.js.map +1 -0
  1199. package/extensions/forms/Forms.d.ts +3 -0
  1200. package/extensions/forms/Forms.js +4 -0
  1201. package/extensions/forms/Forms.js.map +1 -0
  1202. package/extensions/forms/Layout/ButtonRow.d.ts +10 -0
  1203. package/extensions/forms/Layout/ButtonRow.js +17 -0
  1204. package/extensions/forms/Layout/ButtonRow.js.map +1 -0
  1205. package/extensions/forms/Layout/Card.d.ts +14 -0
  1206. package/extensions/forms/Layout/Card.js +37 -0
  1207. package/extensions/forms/Layout/Card.js.map +1 -0
  1208. package/extensions/forms/Layout/Column.d.ts +7 -0
  1209. package/extensions/forms/Layout/Column.js +17 -0
  1210. package/extensions/forms/Layout/Column.js.map +1 -0
  1211. package/extensions/forms/Layout/FlexContainer.d.ts +23 -0
  1212. package/extensions/forms/Layout/FlexContainer.js +91 -0
  1213. package/extensions/forms/Layout/FlexContainer.js.map +1 -0
  1214. package/extensions/forms/Layout/FlexItem.d.ts +12 -0
  1215. package/extensions/forms/Layout/FlexItem.js +20 -0
  1216. package/extensions/forms/Layout/FlexItem.js.map +1 -0
  1217. package/extensions/forms/Layout/InfoCardSection.d.ts +8 -0
  1218. package/extensions/forms/Layout/InfoCardSection.js +17 -0
  1219. package/extensions/forms/Layout/InfoCardSection.js.map +1 -0
  1220. package/extensions/forms/Layout/MainHeading.d.ts +10 -0
  1221. package/extensions/forms/Layout/MainHeading.js +19 -0
  1222. package/extensions/forms/Layout/MainHeading.js.map +1 -0
  1223. package/extensions/forms/Layout/Row.d.ts +7 -0
  1224. package/extensions/forms/Layout/Row.js +17 -0
  1225. package/extensions/forms/Layout/Row.js.map +1 -0
  1226. package/extensions/forms/Layout/Section.d.ts +13 -0
  1227. package/extensions/forms/Layout/Section.js +21 -0
  1228. package/extensions/forms/Layout/Section.js.map +1 -0
  1229. package/extensions/forms/Layout/SubHeading.d.ts +10 -0
  1230. package/extensions/forms/Layout/SubHeading.js +18 -0
  1231. package/extensions/forms/Layout/SubHeading.js.map +1 -0
  1232. package/extensions/forms/Layout/index.d.ts +23 -0
  1233. package/extensions/forms/Layout/index.js +24 -0
  1234. package/extensions/forms/Layout/index.js.map +1 -0
  1235. package/extensions/forms/Layout/style/dnb-button-row.css +7 -0
  1236. package/extensions/forms/Layout/style/dnb-button-row.min.css +1 -0
  1237. package/extensions/forms/Layout/style/dnb-button-row.scss +5 -0
  1238. package/extensions/forms/Layout/style/dnb-card.css +13 -0
  1239. package/extensions/forms/Layout/style/dnb-card.min.css +1 -0
  1240. package/extensions/forms/Layout/style/dnb-card.scss +15 -0
  1241. package/extensions/forms/Layout/style/dnb-flex-container.css +63 -0
  1242. package/extensions/forms/Layout/style/dnb-flex-container.min.css +1 -0
  1243. package/extensions/forms/Layout/style/dnb-flex-container.scss +84 -0
  1244. package/extensions/forms/Layout/style/dnb-flex-item.css +6 -0
  1245. package/extensions/forms/Layout/style/dnb-flex-item.min.css +1 -0
  1246. package/extensions/forms/Layout/style/dnb-flex-item.scss +9 -0
  1247. package/extensions/forms/Layout/style/dnb-section.css +3 -0
  1248. package/extensions/forms/Layout/style/dnb-section.min.css +1 -0
  1249. package/extensions/forms/Layout/style/dnb-section.scss +3 -0
  1250. package/extensions/forms/Layout/style/index.d.ts +9 -0
  1251. package/extensions/forms/Layout/style/index.js +6 -0
  1252. package/extensions/forms/Layout/style/index.js.map +1 -0
  1253. package/extensions/forms/Layout/style/index.scss +5 -0
  1254. package/extensions/forms/Layout/style.d.ts +5 -0
  1255. package/extensions/forms/Layout/style.js +1 -0
  1256. package/extensions/forms/Layout/style.js.map +1 -0
  1257. package/extensions/forms/StepsLayout/Buttons.d.ts +9 -0
  1258. package/extensions/forms/StepsLayout/Buttons.js +19 -0
  1259. package/extensions/forms/StepsLayout/Buttons.js.map +1 -0
  1260. package/extensions/forms/StepsLayout/NextButton.d.ts +10 -0
  1261. package/extensions/forms/StepsLayout/NextButton.js +27 -0
  1262. package/extensions/forms/StepsLayout/NextButton.js.map +1 -0
  1263. package/extensions/forms/StepsLayout/PreviousButton.d.ts +10 -0
  1264. package/extensions/forms/StepsLayout/PreviousButton.js +27 -0
  1265. package/extensions/forms/StepsLayout/PreviousButton.js.map +1 -0
  1266. package/extensions/forms/StepsLayout/Step.d.ts +15 -0
  1267. package/extensions/forms/StepsLayout/Step.js +27 -0
  1268. package/extensions/forms/StepsLayout/Step.js.map +1 -0
  1269. package/extensions/forms/StepsLayout/StepsContext.d.ts +8 -0
  1270. package/extensions/forms/StepsLayout/StepsContext.js +4 -0
  1271. package/extensions/forms/StepsLayout/StepsContext.js.map +1 -0
  1272. package/extensions/forms/StepsLayout/StepsLayout.d.ts +19 -0
  1273. package/extensions/forms/StepsLayout/StepsLayout.js +106 -0
  1274. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -0
  1275. package/extensions/forms/StepsLayout/index.d.ts +3 -0
  1276. package/extensions/forms/StepsLayout/index.js +4 -0
  1277. package/extensions/forms/StepsLayout/index.js.map +1 -0
  1278. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +25 -0
  1279. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -0
  1280. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +23 -0
  1281. package/extensions/forms/StepsLayout/style/index.d.ts +5 -0
  1282. package/extensions/forms/StepsLayout/style/index.js +1 -0
  1283. package/extensions/forms/StepsLayout/style/index.js.map +1 -0
  1284. package/extensions/forms/StepsLayout/style/index.scss +1 -0
  1285. package/extensions/forms/StepsLayout/style.d.ts +5 -0
  1286. package/extensions/forms/StepsLayout/style.js +1 -0
  1287. package/extensions/forms/StepsLayout/style.js.map +1 -0
  1288. package/extensions/forms/Value/BankAccountNumber.d.ts +7 -0
  1289. package/extensions/forms/Value/BankAccountNumber.js +20 -0
  1290. package/extensions/forms/Value/BankAccountNumber.js.map +1 -0
  1291. package/extensions/forms/Value/Boolean.d.ts +8 -0
  1292. package/extensions/forms/Value/Boolean.js +27 -0
  1293. package/extensions/forms/Value/Boolean.js.map +1 -0
  1294. package/extensions/forms/Value/Currency.d.ts +7 -0
  1295. package/extensions/forms/Value/Currency.js +16 -0
  1296. package/extensions/forms/Value/Currency.js.map +1 -0
  1297. package/extensions/forms/Value/Date.d.ts +7 -0
  1298. package/extensions/forms/Value/Date.js +16 -0
  1299. package/extensions/forms/Value/Date.js.map +1 -0
  1300. package/extensions/forms/Value/Email.d.ts +7 -0
  1301. package/extensions/forms/Value/Email.js +16 -0
  1302. package/extensions/forms/Value/Email.js.map +1 -0
  1303. package/extensions/forms/Value/FirstName.d.ts +7 -0
  1304. package/extensions/forms/Value/FirstName.js +16 -0
  1305. package/extensions/forms/Value/FirstName.js.map +1 -0
  1306. package/extensions/forms/Value/LastName.d.ts +7 -0
  1307. package/extensions/forms/Value/LastName.js +16 -0
  1308. package/extensions/forms/Value/LastName.js.map +1 -0
  1309. package/extensions/forms/Value/NationalIdentityNumber.d.ts +7 -0
  1310. package/extensions/forms/Value/NationalIdentityNumber.js +20 -0
  1311. package/extensions/forms/Value/NationalIdentityNumber.js.map +1 -0
  1312. package/extensions/forms/Value/Number.d.ts +14 -0
  1313. package/extensions/forms/Value/Number.js +36 -0
  1314. package/extensions/forms/Value/Number.js.map +1 -0
  1315. package/extensions/forms/Value/PhoneNumber.d.ts +7 -0
  1316. package/extensions/forms/Value/PhoneNumber.js +20 -0
  1317. package/extensions/forms/Value/PhoneNumber.js.map +1 -0
  1318. package/extensions/forms/Value/String.d.ts +8 -0
  1319. package/extensions/forms/Value/String.js +26 -0
  1320. package/extensions/forms/Value/String.js.map +1 -0
  1321. package/extensions/forms/Value/hooks/index.d.ts +1 -0
  1322. package/extensions/forms/Value/hooks/index.js +1 -0
  1323. package/extensions/forms/Value/hooks/index.js.map +1 -0
  1324. package/extensions/forms/Value/hooks/useValue.d.ts +2 -0
  1325. package/extensions/forms/Value/hooks/useValue.js +22 -0
  1326. package/extensions/forms/Value/hooks/useValue.js.map +1 -0
  1327. package/extensions/forms/Value/index.d.ts +25 -0
  1328. package/extensions/forms/Value/index.js +26 -0
  1329. package/extensions/forms/Value/index.js.map +1 -0
  1330. package/extensions/forms/ValueBlock/ValueBlock.d.ts +11 -0
  1331. package/extensions/forms/ValueBlock/ValueBlock.js +30 -0
  1332. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -0
  1333. package/extensions/forms/ValueBlock/index.d.ts +1 -0
  1334. package/extensions/forms/ValueBlock/index.js +1 -0
  1335. package/extensions/forms/ValueBlock/index.js.map +1 -0
  1336. package/extensions/forms/ValueBlock/style/dnb-value-block.css +16 -0
  1337. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -0
  1338. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +19 -0
  1339. package/extensions/forms/ValueBlock/style/index.d.ts +5 -0
  1340. package/extensions/forms/ValueBlock/style/index.js +1 -0
  1341. package/extensions/forms/ValueBlock/style/index.js.map +1 -0
  1342. package/extensions/forms/ValueBlock/style/index.scss +1 -0
  1343. package/extensions/forms/ValueBlock/style.d.ts +5 -0
  1344. package/extensions/forms/ValueBlock/style.js +1 -0
  1345. package/extensions/forms/ValueBlock/style.js.map +1 -0
  1346. package/extensions/forms/Visibility/Visibility.d.ts +24 -0
  1347. package/extensions/forms/Visibility/Visibility.js +45 -0
  1348. package/extensions/forms/Visibility/Visibility.js.map +1 -0
  1349. package/extensions/forms/Visibility/index.d.ts +1 -0
  1350. package/extensions/forms/Visibility/index.js +1 -0
  1351. package/extensions/forms/Visibility/index.js.map +1 -0
  1352. package/extensions/forms/component-types.d.ts +4 -0
  1353. package/extensions/forms/component-types.js +1 -0
  1354. package/extensions/forms/component-types.js.map +1 -0
  1355. package/extensions/forms/constants/countries.d.ts +6 -0
  1356. package/extensions/forms/constants/countries.js +962 -0
  1357. package/extensions/forms/constants/countries.js.map +1 -0
  1358. package/extensions/forms/field-types.d.ts +52 -0
  1359. package/extensions/forms/field-types.js +1 -0
  1360. package/extensions/forms/field-types.js.map +1 -0
  1361. package/extensions/forms/index.d.ts +13 -0
  1362. package/extensions/forms/index.js +12 -0
  1363. package/extensions/forms/index.js.map +1 -0
  1364. package/extensions/forms/style/dnb-forms.css +237 -0
  1365. package/extensions/forms/style/dnb-forms.min.css +1 -0
  1366. package/extensions/forms/style/dnb-forms.scss +6 -0
  1367. package/extensions/forms/style.d.ts +5 -0
  1368. package/extensions/forms/style.js +1 -0
  1369. package/extensions/forms/style.js.map +1 -0
  1370. package/extensions/forms/types.d.ts +11 -0
  1371. package/extensions/forms/types.js +11 -0
  1372. package/extensions/forms/types.js.map +1 -0
  1373. package/extensions/forms/utils/TestElement/TestElement.d.ts +6 -0
  1374. package/extensions/forms/utils/TestElement/TestElement.js +10 -0
  1375. package/extensions/forms/utils/TestElement/TestElement.js.map +1 -0
  1376. package/extensions/forms/utils/TestElement/style/dnb-test-element.css +6 -0
  1377. package/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -0
  1378. package/extensions/forms/utils/TestElement/style/dnb-test-element.scss +6 -0
  1379. package/extensions/forms/utils/TestElement/style/index.d.ts +5 -0
  1380. package/extensions/forms/utils/TestElement/style/index.js +1 -0
  1381. package/extensions/forms/utils/TestElement/style/index.js.map +1 -0
  1382. package/extensions/forms/utils/TestElement/style.d.ts +5 -0
  1383. package/extensions/forms/utils/TestElement/style.js +1 -0
  1384. package/extensions/forms/utils/TestElement/style.js.map +1 -0
  1385. package/extensions/forms/utils/ajv.d.ts +14 -0
  1386. package/extensions/forms/utils/ajv.js +56 -0
  1387. package/extensions/forms/utils/ajv.js.map +1 -0
  1388. package/extensions/forms/utils/components.d.ts +3 -0
  1389. package/extensions/forms/utils/components.js +23 -0
  1390. package/extensions/forms/utils/components.js.map +1 -0
  1391. package/extensions/forms/utils/index.d.ts +3 -0
  1392. package/extensions/forms/utils/index.js +4 -0
  1393. package/extensions/forms/utils/index.js.map +1 -0
  1394. package/extensions/forms/utils/numbers.d.ts +17 -0
  1395. package/extensions/forms/utils/numbers.js +35 -0
  1396. package/extensions/forms/utils/numbers.js.map +1 -0
  1397. package/extensions/forms/value-types.d.ts +15 -0
  1398. package/extensions/forms/value-types.js +1 -0
  1399. package/extensions/forms/value-types.js.map +1 -0
  1400. package/extensions/index.d.ts +2 -1
  1401. package/extensions/index.js +2 -1
  1402. package/extensions/index.js.map +1 -1
  1403. package/extensions/lib.d.ts +22 -1
  1404. package/extensions/lib.js +3 -1
  1405. package/extensions/lib.js.map +1 -1
  1406. package/extensions/payment-card/utils/Types.js.map +1 -1
  1407. package/fragments/drawer-list/DrawerList.js.map +1 -1
  1408. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  1409. package/package.json +4 -1
  1410. package/shared/Context.d.ts +2 -0
  1411. package/shared/Context.js.map +1 -1
  1412. package/shared/Eufemia.d.ts +1 -1
  1413. package/shared/Eufemia.js +2 -2
  1414. package/shared/Eufemia.js.map +1 -1
  1415. package/shared/VisibilityByTheme.d.ts +1 -1
  1416. package/shared/VisibilityByTheme.js.map +1 -1
  1417. package/shared/helpers.d.ts +2 -2
  1418. package/shared/helpers.js.map +1 -1
  1419. package/shared/locales/en-GB.d.ts +39 -0
  1420. package/shared/locales/en-GB.js +39 -0
  1421. package/shared/locales/en-GB.js.map +1 -1
  1422. package/shared/locales/en-US.d.ts +39 -0
  1423. package/shared/locales/index.d.ts +78 -0
  1424. package/shared/locales/nb-NO.d.ts +39 -0
  1425. package/shared/locales/nb-NO.js +39 -0
  1426. package/shared/locales/nb-NO.js.map +1 -1
  1427. package/style/core/utilities.scss +40 -8
  1428. package/style/dnb-ui-components.css +71 -24
  1429. package/style/dnb-ui-components.min.css +1 -1
  1430. package/style/dnb-ui-extensions.css +238 -0
  1431. package/style/dnb-ui-extensions.min.css +1 -1
  1432. package/style/dnb-ui-extensions.scss +1 -0
  1433. package/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
  1434. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1435. package/style/themes/theme-eiendom/eiendom-theme-components.css +105 -82
  1436. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  1437. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +238 -0
  1438. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1439. package/style/themes/theme-sbanken/properties.js +4 -4
  1440. package/style/themes/theme-sbanken/properties.js.map +1 -1
  1441. package/style/themes/theme-sbanken/properties.scss +4 -4
  1442. package/style/themes/theme-sbanken/sbanken-theme-basis.css +4 -11
  1443. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1444. package/style/themes/theme-sbanken/sbanken-theme-components.css +429 -333
  1445. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -1
  1446. package/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  1447. package/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
  1448. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +238 -0
  1449. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1450. package/style/themes/theme-ui/ui-theme-basis.css +17 -11
  1451. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1452. package/style/themes/theme-ui/ui-theme-components.css +105 -82
  1453. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  1454. package/style/themes/theme-ui/ui-theme-elements.css +17 -11
  1455. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1456. package/style/themes/theme-ui/ui-theme-extensions.css +238 -0
  1457. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1458. package/style/themes/theme-ui/ui-theme-tags.css +24 -12
  1459. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1460. package/umd/dnb-ui-basis.min.js +1 -1
  1461. package/umd/dnb-ui-components.min.js +1 -1
  1462. package/umd/dnb-ui-elements.min.js +1 -1
  1463. package/umd/dnb-ui-extensions.min.js +7 -1
  1464. package/umd/dnb-ui-lib.min.js +1 -1
  1465. package/cjs/components/accordion/AccordionPropTypes.d.ts +0 -79
  1466. package/cjs/components/accordion/AccordionPropTypes.js +0 -85
  1467. package/cjs/components/accordion/AccordionPropTypes.js.map +0 -1
  1468. package/components/accordion/AccordionPropTypes.d.ts +0 -79
  1469. package/components/accordion/AccordionPropTypes.js +0 -74
  1470. package/components/accordion/AccordionPropTypes.js.map +0 -1
  1471. package/es/components/accordion/AccordionPropTypes.d.ts +0 -79
  1472. package/es/components/accordion/AccordionPropTypes.js +0 -74
  1473. package/es/components/accordion/AccordionPropTypes.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NumberUtils.js","names":["React","Context","LOCALE","CURRENCY","CURRENCY_DISPLAY","warn","isTrue","slugify","escapeRegexChars","getOffsetTop","getOffsetLeft","getSelectedElement","copyToClipboard","IS_MAC","IS_WIN","NUMBER_CHARS","format","value","locale","clean","compact","phone","org","ban","nin","percent","currency","currency_display","currency_position","omit_currency_sign","clean_copy_value","decimals","omit_rounding","options","returnAria","display","aria","type","window","navigator","language","e","cleanNumber","opts","JSON","parse","parseFloat","formatDecimals","maximumFractionDigits","number","_number","_aria","formatPhone","formatBAN","formatNIN","formatORG","countDecimals","style","formatNumber","handleCompactBeforeDisplay","cleanedNumber","currencyDisplay","getFallbackCurrencyDisplay","minimumFractionDigits","String","indexOf","formatter","undefined","item","test","currencySuffix","currencyPositionFormatter","trim","prepareMinus","handleCompactBeforeAria","_objectSpread","enhanceSR","cleanedValue","thousandsSeparator","getThousandsSeparator","replace","RegExp","pos","substr","decimalSeparator","_String$split$","Math","floor","valueOf","split","length","existingFormatter","callback","position","count","countCurrency","reg","first","second","abs","getGroupFormatter","formatToParts","map","reduce","acc","Number","toLocaleString","stringify","code","filter","s","join","num","prefix","suffix","startsWith","substring","endsWith","decimal","thousands","thousandReg","decimalReg","decimalBackup","runIOSSelectionFix","selection","getSelection","range","document","createRange","removeAllRanges","addRange","copyWithEffect","label","positionElement","success","fx","showSelectionNotice","run","timeout","id","getElementById","elem","content","root","querySelector","createElement","setAttribute","arrow","appendChild","SelectionFx","remove","removeChild","hide","classList","add","pE","top","left","innerHTML","HTMLElement","width","offsetWidth","offsetHeight","setTimeout","useCopyWithNotice","translation","NumberFormat","clipboard_copy","useContext","copy","getDecimalSeparator","_formatToParts$find","separator","find","_formatToParts$map$fi","getCurrencySymbol","_formatToParts$find2","separatorSymbol","Intl","inst","canHandleCompact","parseInt","notation","compactDisplay","maximumSignificantDigits","isNaN","ref"],"sources":["../../../../src/components/number-format/NumberUtils.js"],"sourcesContent":["import React from 'react'\nimport Context from '../../shared/Context'\n\n/**\n * Web NumberFormat Helpers\n *\n */\n\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from '../../shared/defaults'\nimport {\n warn,\n isTrue,\n slugify,\n escapeRegexChars,\n} from '../../shared/component-helper'\nimport {\n getOffsetTop,\n getOffsetLeft,\n getSelectedElement,\n copyToClipboard,\n IS_MAC,\n IS_WIN,\n} from '../../shared/helpers'\n\nconst NUMBER_CHARS = '\\\\-0-9,.'\n\n/**\n * Format a number to a streamlined format based on the given locale\n *\n * @param {string|number} value any number\n * @type {object} string or object { when: { min: 'small' } } that describes the media query\n * @property {string} locale - media queries\n * @property {boolean} clean - if true, clean the number for unwanted decimal separators\n * @property {string|boolean} compact - shortens any number or currency including an abbreviation. You can combine `compact` with `currency`. It gives you zero decimal by default `decimals={0}`. Use either a boolean, or a string with \"short\" or \"long\"\n * @property {boolean} phone - if true, it formats to a phone number\n * @property {boolean} org - if true, it formats to a Organization Number\n * @property {boolean} ban - if true, it formats to a Bank Account Number\n * @property {boolean} nin - if true, it formats to a National Identification Number\n * @property {boolean} percent - if true, it formats with a percent\n * @property {string|boolean} currency - currency code (ISO 4217) or `true` to use the default, `NOK`\n * @property {string} currency_display - use false or empty string to hide the sign or \"code\", \"name\", \"symbol\" or \"narrowSymbol\" – supports the API from number.toLocaleString\n * @property {string} currency_position - can be \"before\" or \"after\"\n * @property {string} omit_currency_sign - hides currency sign if true is given\n * @property {number} decimals - defines how many decimals should be added\n * @property {boolean} omit_rounding - if true, the decimal will NOT be rounded. Normally, by using `toFixed` or by using `maximumFractionDigits`, decimals get rounded.\n * @property {object} options - accepts all number.toLocaleString API options\n * @property {boolean} returnAria - if true, this function returns an object that includes an aria property with a special aria formatting\n * @returns a formatted number as a string or as an object if \"returnAria\" is true\n */\nexport const format = (\n value,\n {\n locale = null, // can be \"auto\"\n clean = false,\n compact = null,\n phone = null,\n org = null,\n ban = null,\n nin = null,\n percent = null,\n currency = null,\n currency_display = null,\n currency_position = null,\n omit_currency_sign = null,\n clean_copy_value = null,\n decimals = null,\n omit_rounding = null,\n options = null,\n returnAria = false,\n } = {}\n) => {\n let display = value\n let aria = null\n let type = 'number'\n\n // because we are using context comparison\n if (!locale) {\n locale = LOCALE\n } else if (locale === 'auto') {\n try {\n locale = window.navigator.language\n } catch (e) {\n warn(e)\n }\n }\n\n if (isTrue(clean)) {\n value = cleanNumber(value)\n }\n\n const opts =\n (typeof options === 'string' && options[0] === '{'\n ? JSON.parse(options)\n : options) || {}\n\n if (parseFloat(decimals) >= 0) {\n value = formatDecimals(value, decimals, omit_rounding, opts)\n } else if (typeof opts.maximumFractionDigits === 'undefined') {\n // if no decimals are set, opts.maximumFractionDigits is set\n // why do we this? because the \".toLotoLocaleString\" will else use 3 as the default\n opts.maximumFractionDigits = 20\n }\n\n if (isTrue(phone)) {\n type = 'phone'\n const { number: _number, aria: _aria } = formatPhone(value, locale)\n\n if (clean === null) {\n value = cleanNumber(value) // clean, because of +47 and ++47\n }\n display = _number\n aria = _aria\n } else if (isTrue(ban)) {\n type = 'ban' // Bank Account Number\n const { number: _number, aria: _aria } = formatBAN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(nin)) {\n type = 'nin' // National Identification Number\n const { number: _number, aria: _aria } = formatNIN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(org)) {\n type = 'org' // organization number\n\n const { number: _number, aria: _aria } = formatORG(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(percent)) {\n if (decimals === null) {\n decimals = countDecimals(value)\n value = formatDecimals(value, decimals, omit_rounding, opts)\n }\n\n if (!opts.style) {\n opts.style = 'percent'\n }\n\n display = formatNumber(value / 100, locale, opts)\n } else if (isTrue(currency) || typeof currency === 'string') {\n type = 'currency'\n\n opts.currency =\n opts.currency || (isTrue(currency) ? CURRENCY : currency)\n\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n if (decimals === null) {\n decimals = 2\n value = formatDecimals(value, decimals, omit_rounding, opts)\n }\n\n // cleanup, but only if it not got cleaned up already\n let cleanedNumber =\n decimals >= 0 ? value : clean ? cleanNumber(value) : value\n\n if (currency_display === false || currency_display === '') {\n omit_currency_sign = true\n }\n\n opts.style = 'currency'\n opts.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n opts.currencyDisplay || currency_display\n )\n\n // if currency has no decimal, then go ahead and remove it\n if (\n typeof opts.minimumFractionDigits === 'undefined' &&\n String(value).indexOf('.') === -1 &&\n cleanedNumber % 1 === 0\n ) {\n opts.minimumFractionDigits = 0 // to enforce Norwegian style\n }\n\n let formatter = undefined\n\n if (isTrue(omit_currency_sign)) {\n formatter = (item) => {\n switch (item.type) {\n case 'literal':\n item.value = item.value === ' ' ? '' : item.value\n return item\n\n case 'currency':\n item.value = ''\n return item\n\n default:\n return item\n }\n }\n }\n\n /**\n * Make exception – if locale is Norwegian, and position is not defined, then use position \"after\"\n */\n if (!currency_position && locale && /(no|nb|nn)$/i.test(locale)) {\n currency_position = 'after'\n }\n\n let currencySuffix = null\n if (currency_position) {\n formatter = currencyPositionFormatter(\n formatter,\n ({ value }) => (currencySuffix = value.trim()),\n currency_position\n )\n }\n\n display = formatNumber(cleanedNumber, locale, opts, formatter)\n display = prepareMinus(display, locale)\n\n if (currency_position && currencySuffix) {\n if (currency_position === 'after') {\n display = `${display.trim()} ${currencySuffix}`\n } else if (currency_position === 'before') {\n display = `${currencySuffix} ${display.trim()}`\n }\n }\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // aria options\n aria = formatNumber(cleanedNumber, locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n ...opts,\n currencyDisplay: 'name',\n })\n aria = enhanceSR(cleanedNumber, aria, locale) // also calls prepareMinus\n\n // get only the currency name\n // const num = aria.replace(/([^0-9])+$/g, '')\n // const name = aria.replace(num, '')\n // aria = cleanedNumber + name\n } else {\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n display = formatNumber(value, locale, opts)\n display = prepareMinus(display, locale)\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // fix for NDVA to make sure we read the number, we add a minimum fraction digit (decimal)\n // NVDA fix\n aria = formatNumber(value, locale, opts)\n aria = enhanceSR(value, aria, locale) // also calls prepareMinus\n }\n\n if (aria === null) {\n aria = display\n }\n\n if (returnAria) {\n let cleanedValue\n\n if (clean_copy_value) {\n cleanedValue = formatNumber(\n opts.style === 'percent' ? value / 100 : value,\n locale,\n opts,\n (item) => {\n switch (item.type) {\n case 'group':\n case 'literal':\n case 'currency':\n case 'percentSign':\n item.value = ''\n return item\n default:\n return item\n }\n }\n )\n } else {\n const thousandsSeparator = getThousandsSeparator(locale)\n cleanedValue = String(display).replace(\n new RegExp(`${thousandsSeparator}(?=\\\\d{3})`, 'g'),\n ''\n )\n }\n\n // return \"locale\" as well value,l, since we have to \"auto\" option\n return { value, cleanedValue, number: display, aria, locale, type }\n }\n\n return display\n}\n\n/**\n * Fill format decimals\n *\n * @param {number|string} value\n * @param {number} decimals how many decimals\n * @param {boolean} omit_rounding if decimals should be rounded or cut off\n * @param {boolean} clean whether the value should be cleaned or not\n * @param {object} opts immutable object\n * @returns a decimal prepared number\n */\nexport const formatDecimals = (\n value,\n decimals,\n omit_rounding = false,\n opts = {}\n) => {\n decimals = parseFloat(decimals)\n\n if (decimals >= 0) {\n opts.minimumFractionDigits = decimals\n opts.maximumFractionDigits = decimals\n\n const pos = String(value).indexOf('.')\n if (pos > 0 && omit_rounding === true) {\n value = String(value).substr(0, pos + 1 + decimals)\n }\n }\n\n return value\n}\n\n/**\n * Find the amount of decimals\n *\n * @param {number|string} value any number\n * @param {string} decimalSeparator a dot or coma\n * @returns amount of decimals\n */\nexport const countDecimals = (value, decimalSeparator = '.') => {\n if (Math.floor(value.valueOf()) === value.valueOf()) {\n return 0\n }\n return String(value).split(decimalSeparator)[1]?.length || 0\n}\n\n/**\n * Changes the currency sign position\n *\n * For Norway, the position defaults to \"after\"\n *\n * @param {function} existingFormatter an existing number formatter or undefined\n * @param {function} callback function that will emitted with the currency\n * @param {string} position blank, before or after\n * @returns {function} number formatter\n */\nconst currencyPositionFormatter = (\n existingFormatter,\n callback,\n position = null\n) => {\n let count = 0\n let countCurrency = -1\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n count++\n\n switch (item.type) {\n case 'currency': {\n if (position === 'after' || (position === 'before' && count > 2)) {\n countCurrency = count\n callback(item)\n item.value = ''\n }\n return item\n }\n\n case 'literal': {\n // Remove the literal after currency\n if (count === countCurrency + 1) {\n item.value = ''\n }\n return item\n }\n\n default:\n return item\n }\n }\n}\n\n/**\n * When e.g. a currency number is given with a minus,\n * this function transforms the minus to be moved before the number\n * instead of the symbol.\n *\n * It only cleans if locale is Norwegian\n *\n * form -NOK 1 234 to NOK -1 234\n *\n * @param {string} display currency number that includes either a minus or not\n * @param {string} locale locale as a string\n * @returns {string} number\n */\nconst prepareMinus = (display, locale) => {\n /**\n * Make exception – if locale is NOT Norwegian,\n * we skip the cleanup\n */\n if (!(locale && /(no|nb|nn)$/i.test(locale))) {\n return display\n }\n\n // change the position of minus if it's first\n // check for two minus - −\n // check also for hyphen ‐\n // check also for dashes ‒ – — ―\n\n const reg = '^(-|−|‐|‒|–|—|―)'\n\n // check for first and second char\n const first = display[0]\n const second = display[1]\n\n if (new RegExp(reg).test(first)) {\n // if second is number\n if (parseFloat(second) > 0) {\n // then do not swap\n display = display.replace(new RegExp(reg + '(.*)'), '-$2')\n } else {\n // then first has to be currency\n display = display.replace(new RegExp(reg + '([^0-9]+)(.*)'), '$2-$3')\n }\n }\n\n return display\n}\n\n/**\n * Enhance VoiceOver support on mobile devices\n * Numbers under 99.999 are read out correctly, but only if we remove the spaces\n * Potential we could also check for locale: && /no|nb|nn/.test(locale)\n * but leave it for now without this extra check\n *\n * @param {string|number} value any number\n * @param {string} aria aria formatted number\n * @param {string} locale locale as a string\n * @returns aria number\n */\nconst enhanceSR = (value, aria, locale) => {\n if (IS_MAC && Math.abs(parseFloat(value)) <= 99999) {\n aria = String(aria).replace(/\\s([0-9])/g, '$1')\n }\n\n aria = prepareMinus(aria, locale)\n\n return aria\n}\n\n/**\n * The main number formatter function\n * This function is used to call the browsers/Node.js \"Intl.NumberFormat\" or \"Number.toLocaleString\" APIs\n *\n * @param {string|number} number any number\n * @param {string} locale locale as a string\n * @param {string} options formatting options based on the toLocaleString API\n * @param {string} formatter optional, a custom formatter can be given\n * @returns formatted number\n */\nexport const formatNumber = (\n number,\n locale,\n options = {},\n formatter = null\n) => {\n try {\n if (options.currencyDisplay) {\n options.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n options.currencyDisplay\n )\n }\n\n // remove unsupported decimals\n delete options.decimals\n\n if (locale && /(en|gb)$/i.test(locale)) {\n formatter = getGroupFormatter(locale, null, formatter)\n }\n\n if (formatter) {\n return formatToParts({ number, locale, options })\n .map(formatter)\n .reduce((acc, { value }) => acc + value, '')\n } else if (\n typeof Number !== 'undefined' &&\n typeof Number.toLocaleString === 'function'\n ) {\n return parseFloat(number).toLocaleString(locale, options)\n }\n } catch (e) {\n warn(\n `Number could not be formatted: ${JSON.stringify([\n number,\n locale,\n options,\n ])}`,\n e\n )\n }\n return number\n}\n\n/**\n * Use this function to format phone numbers\n *\n * @param {string|number} number a phone number\n * @param {string} locale locale as a string\n * @returns a formatted phone number\n */\nexport const formatPhone = (number, locale = null) => {\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // cleanup\n number = String(number).replace(/[^+0-9]/g, '')\n\n let code = ''\n if (number.length > 8 && number.substr(0, 2) !== '00') {\n number = '+' + number\n number = number.replace(/^\\+{2,}/, '+')\n }\n if (number[0] === '+') {\n code = number.substr(0, 3) + ' '\n number = number.substr(3)\n } else if (number.substr(0, 2) === '00') {\n code = number.substr(0, 4) + ' '\n number = number.substr(4)\n }\n code = code.replace('+', '00')\n const length = number.length\n\n // get 800 22 222\n if (length === 8 && number[0] === '8') {\n display =\n code +\n number\n .split(/([0-9]{3})([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n } else {\n // get 02000\n if (length < 6) {\n display = code + number\n } else {\n // get 6 or 8 formatting\n display =\n code +\n number\n .split(\n length === 6\n ? /^(\\+[0-9]{2})|([0-9]{3})/\n : /^(\\+[0-9]{2})|([0-9]{2})/\n )\n .filter((s) => s)\n .join(' ')\n }\n }\n\n aria =\n code +\n number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Bank Account Numbers\n *\n * @param {string|number} number a Bank Account Number\n * @param {string} locale locale as a string\n * @returns a formatted Bank Account Number\n */\nexport const formatBAN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 2000 12 34567\n display = number\n .split(/([0-9]{4})([0-9]{2})([0-9]{1,})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Organization Numbers\n *\n * @param {string|number} number a Organization Number\n * @param {string} locale locale as a string\n * @returns a formatted Organization Number\n */\nexport const formatORG = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 123 456 789\n display = number\n .split(/([0-9]{3})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{1})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format National Identification Numbers\n *\n * @param {string|number} number a National Identification Number\n * @param {string} locale locale as a string\n * @returns a formatted National Identification Number\n */\nexport const formatNIN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 180892 12345\n display = number\n .split(/([0-9]{6})/)\n .filter((s) => s)\n .join(' ')\n\n // correct nin for screen readers\n aria = display\n .split(\n /([0-9]{2})([0-9]{2})([0-9]{2}) ([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})/\n )\n .filter((s) => s)\n .join(IS_WIN ? '. ' : ' ') // NVDA fix with a dot to not read date on FF\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * This function cleans numbers for separators\n * https://en.wikipedia.org/wiki/Decimal_separator\n *\n * @param {string|number} num any number\n * @returns a number that contains valid number separators\n */\nexport function cleanNumber(\n num,\n {\n decimalSeparator = null,\n thousandsSeparator = null,\n prefix = null,\n suffix = null,\n } = {}\n) {\n if (typeof num === 'number') {\n return num\n }\n\n num = String(num).trim()\n\n if (typeof prefix === 'string' && num.startsWith(prefix)) {\n num = num.substring(prefix.length, num.length)\n }\n if (typeof suffix === 'string' && num.endsWith(suffix)) {\n num = num.substring(0, num.length - suffix.length)\n }\n\n // 1. Remove invalid chars on the beginning (not a number)\n if (/^[^0-9-]/.test(num)) {\n num = num.replace(/^(^[^0-9-]+)/, '')\n }\n\n let decimal = decimalSeparator\n let thousands = thousandsSeparator\n\n // -12 345,678\n if (/(\\s)([0-9]{3})/.test(num)) {\n thousands = thousands || '\\\\s'\n decimal = decimal || ','\n }\n\n // -12.345,678\n else if (\n /(\\.)([0-9]{3})/.test(num) &&\n !/([,'][0-9]{3})(\\.)([0-9]{3})/.test(num) // just an additional check, for support with more\n ) {\n thousands = thousands || '\\\\.'\n decimal = decimal || \",|·|'\" // also support Spain and CH\n }\n\n // -1,234,567.891\n else if (/(,)([0-9]{3})/.test(num)) {\n thousands = thousands || ','\n decimal = decimal || '\\\\.|·' // also support Spain\n }\n\n // -1'234'567.891, only used in CH\n else if (/(')([0-9]{3})/.test(num)) {\n thousands = thousands || \"'\"\n decimal = decimal || '\\\\.|,'\n } else {\n thousands = ','\n decimal = '\\\\.'\n }\n\n // 3. Remove invalid thousand separators\n const thousandReg = thousandsSeparator\n ? new RegExp(\n `([0-9]|)(${escapeRegexChars(thousandsSeparator)})([0-9]{3})`,\n 'g'\n )\n : new RegExp(`([0-9]|)(${thousands})([0-9]{3})`, 'g')\n if (thousandReg.test(num)) {\n num = num.replace(thousandReg, '$1$3')\n }\n\n // 2. Rename invalid decimal separator\n // Make sure that there are only two digits after the coma, then we clean that up.\n // else we don't, because it can be a US number\n // therefore, check first, is there a chance of being a decimal?\n // const decimalReg = new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n const decimalReg = decimalSeparator\n ? new RegExp(`(${escapeRegexChars(decimalSeparator)})([0-9]{0,})`, 'g')\n : new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n if (decimalReg.test(num)) {\n num = num.replace(decimalReg, '.$2')\n }\n\n // Edge case, if we have more than 2 decimals, replace these decimals\n if (!decimalSeparator) {\n const decimalBackup = new RegExp(`(${decimal})([0-9]{3,})`, 'g')\n if (decimalBackup.test(num)) {\n num = num.replace(decimalBackup, '.$2')\n }\n }\n\n // Remove all invalid chars\n return num.replace(new RegExp(`([^${NUMBER_CHARS}])`, 'g'), '')\n}\n\n/**\n * So iOS v13 can select something on the first try, we run this add range trick.\n * NB: This hack may be removed in future iOS versions.\n */\nexport function runIOSSelectionFix() {\n try {\n const selection = window.getSelection()\n const range = document.createRange()\n selection.removeAllRanges()\n selection.addRange(range)\n } catch (e) {\n //\n }\n}\n\n/**\n * A function that tries to copy to the clipboard\n * at the same time it shows the copy result in a tooltip\n *\n * NB: This function is not documented.\n * It should not be used!\n *\n * @param {string} value any number\n * @param {*} label\n * @param {*} positionElement\n * @returns\n */\nexport async function copyWithEffect(\n value,\n label,\n positionElement = null\n) {\n let success = null\n\n if (value) {\n try {\n const fx = showSelectionNotice({ value, label })\n success = await copyToClipboard(value)\n if (success === true) {\n fx.run(positionElement)\n }\n } catch (e) {\n warn(e)\n success = e\n }\n }\n\n return success\n}\n\n/**\n * This function add a tooltip looking\n *\n * @type {object} object with property\n * @property {string} value any value\n * @property {string} label any additional label that gets added as a suffix\n * @property {number} timeout how long the tooltip should be visible (3 sec)\n * @returns {object} { run, hide, remove } call the \"run\" function when the effect should be shown\n */\nexport function showSelectionNotice({ value, label, timeout = 3e3 }) {\n const id = 'id-' + slugify(value)\n if (typeof document !== 'undefined' && document.getElementById(id)) {\n return { run: () => {} }\n }\n\n let elem, content, root\n\n try {\n root = document.querySelector('.dnb-tooltip__portal, body')\n\n // create that portal element\n elem = document.createElement('span')\n elem.setAttribute('id', id)\n elem.setAttribute('class', 'dnb-tooltip')\n elem.setAttribute('role', 'tooltip')\n\n const arrow = document.createElement('span')\n arrow.setAttribute(\n 'class',\n 'dnb-tooltip__arrow dnb-tooltip__arrow__position--top'\n )\n content = document.createElement('span')\n content.setAttribute('class', 'dnb-tooltip__content')\n content.setAttribute('aria-live', 'assertive')\n elem.appendChild(arrow)\n elem.appendChild(content)\n } catch (e) {\n warn(e)\n }\n\n return new (class SelectionFx {\n remove() {\n try {\n root.removeChild(elem)\n elem = null\n content = null\n } catch (e) {\n //\n }\n }\n hide() {\n try {\n elem.classList.add('dnb-tooltip--hide')\n } catch (e) {\n //\n }\n }\n run(pE = getSelectedElement()) {\n try {\n root.appendChild(elem)\n\n const top = getOffsetTop(pE)\n const left = getOffsetLeft(pE)\n\n content.innerHTML =\n String(label) +\n (pE instanceof HTMLElement\n ? `<span class=\"dnb-sr-only\">: ${\n (\n (pE &&\n pE.querySelector('.dnb-number-format__selection')) ||\n pE\n ).innerHTML\n }</span>`\n : '')\n\n const width =\n (\n (pE && pE.querySelector('.dnb-number-format__visible')) ||\n pE ||\n {}\n ).offsetWidth || 0\n\n elem.style.top = `${top - elem.offsetHeight}px`\n elem.style.left = `${left + width / 2 - elem.offsetWidth / 2}px`\n elem.classList.add('dnb-tooltip--active')\n\n setTimeout(this.hide, timeout)\n setTimeout(this.remove, timeout + 600)\n } catch (e) {\n warn(e)\n }\n }\n })()\n}\n\n/**\n * React Hook\n * It returns \"copyWithEffect\" but with a translated string\n *\n * @returns copyWithEffect function inside object { copy }\n */\nexport function useCopyWithNotice() {\n const {\n translation: {\n NumberFormat: { clipboard_copy },\n },\n } = React.useContext(Context)\n\n const copy = (value, positionElement) => {\n copyWithEffect(value, clipboard_copy, positionElement)\n }\n\n return { copy }\n}\n\n/**\n * Will return currency display value based on navigator/browser and locale\n *\n * @property {string} currency_display (optional) code, name, symbol or narrowSymbol\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getFallbackCurrencyDisplay(\n locale = null,\n currency_display = null\n) {\n // If currencyDisplay is not defined and locale is \"no\", use narrowSymbol\n if (!currency_display && (!locale || /(no|nb|nn)$/i.test(locale))) {\n currency_display = 'narrowSymbol'\n }\n\n return currency_display || CURRENCY_DISPLAY // code, name, symbol\n}\n\n/**\n * This function returns a decimal separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getDecimalSeparator(locale = null) {\n const separator =\n formatToParts({\n number: 1.1,\n locale,\n }).find(({ type }) => type === 'decimal')?.value || ',' // defaults to nb-NO\n\n return separator\n}\n\n/**\n * This function returns a thousands separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getThousandsSeparator(locale = null) {\n const formatter = getGroupFormatter(locale)\n\n return (\n formatToParts({\n number: 1000,\n locale,\n })\n .map(formatter)\n .find(({ type }) => type === 'group')?.value || ' '\n ) // defaults to nb-NO\n}\n\n/**\n * This function returns a currency symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @property {string} currency (optional) a given currency\n * @property {currencyDisplay} currencyDisplay (optional) what currency display\n * @returns {string} a currency symbol\n */\nexport function getCurrencySymbol(\n locale = null,\n currency = null,\n currencyDisplay = null\n) {\n if (!currency) {\n currency = CURRENCY\n }\n return (\n formatToParts({\n number: 1,\n locale,\n options: {\n style: 'currency',\n currency,\n currencyDisplay: getFallbackCurrencyDisplay(\n locale,\n currencyDisplay\n ),\n },\n }).find(({ type }) => type === 'currency')?.value || currency\n )\n}\n\nfunction getGroupFormatter(\n locale = null,\n separatorSymbol = null,\n existingFormatter = null\n) {\n /**\n * We change the thousand separator to be a non-breaking space\n *\n * Effected locales:\n * - en-GB\n * - en\n */\n if (locale && /(en|gb)$/i.test(locale)) {\n separatorSymbol = ' ' // non-breaking space\n }\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n if (item.type === 'group') {\n item.value = separatorSymbol || item.value\n }\n\n return item\n }\n}\n\n/**\n * For internal usage\n *\n * @type {object}\n * @property {string} number - a number\n * @property {string} locale - locale as a string. Defaults to the global LOCALE constant\n * @property {object} options - NumberFormat options\n * @returns {array} that contains all the parts of the given number [{ value: x, type: 'type' }]\n */\nfunction formatToParts({ number, locale = null, options = null }) {\n if (\n typeof Intl !== 'undefined' &&\n typeof Intl.NumberFormat === 'function'\n ) {\n try {\n const inst = Intl.NumberFormat(locale || LOCALE, options || {})\n if (typeof inst.formatToParts === 'function') {\n return inst.formatToParts(number)\n } else {\n return [{ value: inst.format(number) }]\n }\n } catch (e) {\n warn(e)\n }\n }\n\n return [{ value: number }]\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string} value any number\n * @property {string} locale a given locale\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {number} decimals the amount of decimals\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeDisplay({\n value,\n locale,\n compact,\n decimals = 0,\n opts,\n} = {}) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n value = parseInt(Math.abs(value))\n opts.notation = 'compact'\n\n // For numbers under 1M we do\n if (isTrue(compact) && locale && /(no|nb|nn)$/i.test(locale)) {\n opts.compactDisplay = Math.abs(value) < 1000000 ? 'long' : 'short'\n } else {\n opts.compactDisplay = !isTrue(compact) ? compact : 'short'\n }\n\n if (typeof opts.maximumSignificantDigits === 'undefined') {\n if (isNaN(parseFloat(decimals))) {\n decimals = 0\n } else {\n decimals = parseFloat(decimals)\n }\n\n // This formula ensures we always get the same amount deciamls\n const ref = String(value).length % 3\n if (ref === 2) {\n decimals += 1\n } else if (ref === 0) {\n decimals += 2\n }\n\n // The result of this formula would be equal to this:\n // if (value >= 100000000000000) {\n // decimals += 2\n // } else if (value >= 10000000000000) {\n // decimals += 1\n // } else if (value >= 1000000000000) {\n // decimals += 0\n // } else if (value >= 100000000000) {\n // decimals += 2\n // } else if (value >= 10000000000) {\n // decimals += 1\n // } else if (value >= 1000000000) {\n // decimals += 0\n // } else if (value >= 100000000) {\n // decimals += 2\n // } else if (value >= 10000000) {\n // decimals += 1\n // } else if (value >= 1000000) {\n // decimals += 0\n // } else if (value >= 100000) {\n // decimals += 2\n // } else if (value >= 10000) {\n // decimals += 1\n // }\n\n // Firefox issue?\n // If we do not define \"maximumSignificantDigits\" Firefox does not show any decimals at all\n opts.maximumSignificantDigits = decimals + 1\n }\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeAria({ value, compact, opts }) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n opts.compactDisplay = 'long'\n}\n\n/**\n * Checks if we should/can handle the compact format\n *\n * @param {object}\n * @property {string|number} value any number\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n */\nfunction canHandleCompact({ value, compact }) {\n if (compact && Math.abs(value) >= 1000) {\n return true\n }\n\n return false\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"NumberUtils.js","names":["React","Context","LOCALE","CURRENCY","CURRENCY_DISPLAY","warn","isTrue","slugify","escapeRegexChars","getOffsetTop","getOffsetLeft","getSelectedElement","copyToClipboard","IS_MAC","IS_WIN","NUMBER_CHARS","format","value","locale","clean","compact","phone","org","ban","nin","percent","currency","currency_display","currency_position","omit_currency_sign","clean_copy_value","decimals","omit_rounding","options","returnAria","display","aria","type","window","navigator","language","e","cleanNumber","opts","JSON","parse","parseFloat","formatDecimals","maximumFractionDigits","number","_number","_aria","formatPhone","formatBAN","formatNIN","formatORG","countDecimals","style","formatNumber","handleCompactBeforeDisplay","cleanedNumber","currencyDisplay","getFallbackCurrencyDisplay","minimumFractionDigits","String","indexOf","formatter","undefined","item","test","currencySuffix","currencyPositionFormatter","trim","prepareMinus","handleCompactBeforeAria","_objectSpread","enhanceSR","cleanedValue","thousandsSeparator","getThousandsSeparator","replace","RegExp","pos","substring","decimalSeparator","_String$split$","Math","floor","valueOf","split","length","existingFormatter","callback","position","count","countCurrency","reg","first","second","abs","getGroupFormatter","formatToParts","map","reduce","acc","Number","toLocaleString","stringify","code","substr","filter","s","join","num","prefix","suffix","startsWith","endsWith","decimal","thousands","thousandReg","decimalReg","decimalBackup","runIOSSelectionFix","selection","getSelection","range","document","createRange","removeAllRanges","addRange","copyWithEffect","label","positionElement","success","fx","showSelectionNotice","run","timeout","id","getElementById","elem","content","root","querySelector","createElement","setAttribute","arrow","appendChild","SelectionFx","remove","removeChild","hide","classList","add","pE","top","left","innerHTML","HTMLElement","width","offsetWidth","offsetHeight","setTimeout","useCopyWithNotice","translation","NumberFormat","clipboard_copy","useContext","copy","getDecimalSeparator","_formatToParts$find","separator","find","_formatToParts$map$fi","getCurrencySymbol","_formatToParts$find2","separatorSymbol","Intl","inst","canHandleCompact","parseInt","notation","compactDisplay","maximumSignificantDigits","isNaN","ref"],"sources":["../../../../src/components/number-format/NumberUtils.js"],"sourcesContent":["import React from 'react'\nimport Context from '../../shared/Context'\n\n/**\n * Web NumberFormat Helpers\n *\n */\n\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from '../../shared/defaults'\nimport {\n warn,\n isTrue,\n slugify,\n escapeRegexChars,\n} from '../../shared/component-helper'\nimport {\n getOffsetTop,\n getOffsetLeft,\n getSelectedElement,\n copyToClipboard,\n IS_MAC,\n IS_WIN,\n} from '../../shared/helpers'\n\nconst NUMBER_CHARS = '\\\\-0-9,.'\n\n/**\n * Format a number to a streamlined format based on the given locale\n *\n * @param {string|number} value any number\n * @type {object} string or object { when: { min: 'small' } } that describes the media query\n * @property {string} locale - media queries\n * @property {boolean} clean - if true, clean the number for unwanted decimal separators\n * @property {string|boolean} compact - shortens any number or currency including an abbreviation. You can combine `compact` with `currency`. It gives you zero decimal by default `decimals={0}`. Use either a boolean, or a string with \"short\" or \"long\"\n * @property {boolean} phone - if true, it formats to a phone number\n * @property {boolean} org - if true, it formats to a Organization Number\n * @property {boolean} ban - if true, it formats to a Bank Account Number\n * @property {boolean} nin - if true, it formats to a National Identification Number\n * @property {boolean} percent - if true, it formats with a percent\n * @property {string|boolean} currency - currency code (ISO 4217) or `true` to use the default, `NOK`\n * @property {string} currency_display - use false or empty string to hide the sign or \"code\", \"name\", \"symbol\" or \"narrowSymbol\" – supports the API from number.toLocaleString\n * @property {string} currency_position - can be \"before\" or \"after\"\n * @property {string} omit_currency_sign - hides currency sign if true is given\n * @property {number} decimals - defines how many decimals should be added\n * @property {boolean} omit_rounding - if true, the decimal will NOT be rounded. Normally, by using `toFixed` or by using `maximumFractionDigits`, decimals get rounded.\n * @property {object} options - accepts all number.toLocaleString API options\n * @property {boolean} returnAria - if true, this function returns an object that includes an aria property with a special aria formatting\n * @returns a formatted number as a string or as an object if \"returnAria\" is true\n */\nexport const format = (\n value,\n {\n locale = null, // can be \"auto\"\n clean = false,\n compact = null,\n phone = null,\n org = null,\n ban = null,\n nin = null,\n percent = null,\n currency = null,\n currency_display = null,\n currency_position = null,\n omit_currency_sign = null,\n clean_copy_value = null,\n decimals = null,\n omit_rounding = null,\n options = null,\n returnAria = false,\n } = {}\n) => {\n let display = value\n let aria = null\n let type = 'number'\n\n // because we are using context comparison\n if (!locale) {\n locale = LOCALE\n } else if (locale === 'auto') {\n try {\n locale = window.navigator.language\n } catch (e) {\n warn(e)\n }\n }\n\n if (isTrue(clean)) {\n value = cleanNumber(value)\n }\n\n const opts =\n (typeof options === 'string' && options[0] === '{'\n ? JSON.parse(options)\n : options) || {}\n\n if (parseFloat(decimals) >= 0) {\n value = formatDecimals(value, decimals, omit_rounding, opts)\n } else if (\n typeof opts.maximumFractionDigits === 'undefined' &&\n !isTrue(percent) &&\n !isTrue(currency)\n ) {\n // if no decimals are set, opts.maximumFractionDigits is set\n // why do we this? because the \".toLocaleString\" will else use 3 as the default\n opts.maximumFractionDigits = 20\n }\n\n if (isTrue(phone)) {\n type = 'phone'\n const { number: _number, aria: _aria } = formatPhone(value, locale)\n\n if (clean === null) {\n value = cleanNumber(value) // clean, because of +47 and ++47\n }\n display = _number\n aria = _aria\n } else if (isTrue(ban)) {\n type = 'ban' // Bank Account Number\n const { number: _number, aria: _aria } = formatBAN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(nin)) {\n type = 'nin' // National Identification Number\n const { number: _number, aria: _aria } = formatNIN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(org)) {\n type = 'org' // organization number\n\n const { number: _number, aria: _aria } = formatORG(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(percent)) {\n if (decimals === null) {\n if (typeof opts.maximumFractionDigits === 'undefined') {\n decimals = countDecimals(value)\n }\n value = formatDecimals(value, decimals, omit_rounding, opts)\n }\n\n if (!opts.style) {\n opts.style = 'percent'\n }\n\n display = formatNumber(value / 100, locale, opts)\n } else if (isTrue(currency) || typeof currency === 'string') {\n type = 'currency'\n\n opts.currency =\n opts.currency || (isTrue(currency) ? CURRENCY : currency)\n\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n if (decimals === null) {\n decimals = 2\n value = formatDecimals(value, decimals, omit_rounding, opts)\n }\n\n // cleanup, but only if it not got cleaned up already\n let cleanedNumber =\n decimals >= 0 ? value : clean ? cleanNumber(value) : value\n\n if (currency_display === false || currency_display === '') {\n omit_currency_sign = true\n }\n\n opts.style = 'currency'\n opts.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n opts.currencyDisplay || currency_display\n )\n\n // if currency has no decimal, then go ahead and remove it\n if (\n typeof opts.minimumFractionDigits === 'undefined' &&\n String(value).indexOf('.') === -1 &&\n cleanedNumber % 1 === 0\n ) {\n opts.minimumFractionDigits = 0 // to enforce Norwegian style\n }\n\n let formatter = undefined\n\n if (isTrue(omit_currency_sign)) {\n formatter = (item) => {\n switch (item.type) {\n case 'literal':\n item.value = item.value === ' ' ? '' : item.value\n return item\n\n case 'currency':\n item.value = ''\n return item\n\n default:\n return item\n }\n }\n }\n\n /**\n * Make exception – if locale is Norwegian, and position is not defined, then use position \"after\"\n */\n if (!currency_position && locale && /(no|nb|nn)$/i.test(locale)) {\n currency_position = 'after'\n }\n\n let currencySuffix = null\n if (currency_position) {\n formatter = currencyPositionFormatter(\n formatter,\n ({ value }) => (currencySuffix = value.trim()),\n currency_position\n )\n }\n\n display = formatNumber(cleanedNumber, locale, opts, formatter)\n display = prepareMinus(display, locale)\n\n if (currency_position && currencySuffix) {\n if (currency_position === 'after') {\n display = `${display.trim()} ${currencySuffix}`\n } else if (currency_position === 'before') {\n display = `${currencySuffix} ${display.trim()}`\n }\n }\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // aria options\n aria = formatNumber(cleanedNumber, locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n ...opts,\n currencyDisplay: 'name',\n })\n aria = enhanceSR(cleanedNumber, aria, locale) // also calls prepareMinus\n\n // get only the currency name\n // const num = aria.replace(/([^0-9])+$/g, '')\n // const name = aria.replace(num, '')\n // aria = cleanedNumber + name\n } else {\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n display = formatNumber(value, locale, opts)\n display = prepareMinus(display, locale)\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // fix for NDVA to make sure we read the number, we add a minimum fraction digit (decimal)\n // NVDA fix\n aria = formatNumber(value, locale, opts)\n aria = enhanceSR(value, aria, locale) // also calls prepareMinus\n }\n\n if (aria === null) {\n aria = display\n }\n\n if (returnAria) {\n let cleanedValue\n\n if (clean_copy_value) {\n cleanedValue = formatNumber(\n opts.style === 'percent' ? value / 100 : value,\n locale,\n opts,\n (item) => {\n switch (item.type) {\n case 'group':\n case 'literal':\n case 'currency':\n case 'percentSign':\n item.value = ''\n return item\n default:\n return item\n }\n }\n )\n } else {\n const thousandsSeparator = getThousandsSeparator(locale)\n cleanedValue = String(display).replace(\n new RegExp(`${thousandsSeparator}(?=\\\\d{3})`, 'g'),\n ''\n )\n }\n\n // return \"locale\" as well value,l, since we have to \"auto\" option\n return { value, cleanedValue, number: display, aria, locale, type }\n }\n\n return display\n}\n\n/**\n * Fill format decimals\n *\n * @param {number|string} value\n * @param {number} decimals how many decimals\n * @param {boolean} omit_rounding if decimals should be rounded or cut off\n * @param {boolean} clean whether the value should be cleaned or not\n * @param {object} opts immutable object\n * @returns a decimal prepared number\n */\nexport const formatDecimals = (\n value,\n decimals,\n omit_rounding = false,\n opts = {}\n) => {\n decimals = parseFloat(decimals)\n\n if (decimals >= 0) {\n opts.minimumFractionDigits = decimals\n opts.maximumFractionDigits = decimals\n }\n\n const pos = String(value).indexOf('.')\n if (pos > 0 && omit_rounding === true) {\n value = String(value).substring(\n 0,\n pos + 1 + (decimals || opts.maximumFractionDigits)\n )\n }\n\n return value\n}\n\n/**\n * Find the amount of decimals\n *\n * @param {number|string} value any number\n * @param {string} decimalSeparator a dot or coma\n * @returns amount of decimals\n */\nexport const countDecimals = (value, decimalSeparator = '.') => {\n if (Math.floor(value.valueOf()) === value.valueOf()) {\n return 0\n }\n return String(value).split(decimalSeparator)[1]?.length || 0\n}\n\n/**\n * Changes the currency sign position\n *\n * For Norway, the position defaults to \"after\"\n *\n * @param {function} existingFormatter an existing number formatter or undefined\n * @param {function} callback function that will emitted with the currency\n * @param {string} position blank, before or after\n * @returns {function} number formatter\n */\nconst currencyPositionFormatter = (\n existingFormatter,\n callback,\n position = null\n) => {\n let count = 0\n let countCurrency = -1\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n count++\n\n switch (item.type) {\n case 'currency': {\n if (position === 'after' || (position === 'before' && count > 2)) {\n countCurrency = count\n callback(item)\n item.value = ''\n }\n return item\n }\n\n case 'literal': {\n // Remove the literal after currency\n if (count === countCurrency + 1) {\n item.value = ''\n }\n return item\n }\n\n default:\n return item\n }\n }\n}\n\n/**\n * When e.g. a currency number is given with a minus,\n * this function transforms the minus to be moved before the number\n * instead of the symbol.\n *\n * It only cleans if locale is Norwegian\n *\n * form -NOK 1 234 to NOK -1 234\n *\n * @param {string} display currency number that includes either a minus or not\n * @param {string} locale locale as a string\n * @returns {string} number\n */\nconst prepareMinus = (display, locale) => {\n /**\n * Make exception – if locale is NOT Norwegian,\n * we skip the cleanup\n */\n if (!(locale && /(no|nb|nn)$/i.test(locale))) {\n return display\n }\n\n // change the position of minus if it's first\n // check for two minus - −\n // check also for hyphen ‐\n // check also for dashes ‒ – — ―\n\n const reg = '^(-|−|‐|‒|–|—|―)'\n\n // check for first and second char\n const first = display[0]\n const second = display[1]\n\n if (new RegExp(reg).test(first)) {\n // if second is number\n if (parseFloat(second) > 0) {\n // then do not swap\n display = display.replace(new RegExp(reg + '(.*)'), '-$2')\n } else {\n // then first has to be currency\n display = display.replace(new RegExp(reg + '([^0-9]+)(.*)'), '$2-$3')\n }\n }\n\n return display\n}\n\n/**\n * Enhance VoiceOver support on mobile devices\n * Numbers under 99.999 are read out correctly, but only if we remove the spaces\n * Potential we could also check for locale: && /no|nb|nn/.test(locale)\n * but leave it for now without this extra check\n *\n * @param {string|number} value any number\n * @param {string} aria aria formatted number\n * @param {string} locale locale as a string\n * @returns aria number\n */\nconst enhanceSR = (value, aria, locale) => {\n if (IS_MAC && Math.abs(parseFloat(value)) <= 99999) {\n aria = String(aria).replace(/\\s([0-9])/g, '$1')\n }\n\n aria = prepareMinus(aria, locale)\n\n return aria\n}\n\n/**\n * The main number formatter function\n * This function is used to call the browsers/Node.js \"Intl.NumberFormat\" or \"Number.toLocaleString\" APIs\n *\n * @param {string|number} number any number\n * @param {string} locale locale as a string\n * @param {string} options formatting options based on the toLocaleString API\n * @param {string} formatter optional, a custom formatter can be given\n * @returns formatted number\n */\nexport const formatNumber = (\n number,\n locale,\n options = {},\n formatter = null\n) => {\n try {\n if (options.currencyDisplay) {\n options.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n options.currencyDisplay\n )\n }\n\n // remove unsupported decimals\n delete options.decimals\n\n if (locale && /(en|gb)$/i.test(locale)) {\n formatter = getGroupFormatter(locale, null, formatter)\n }\n\n if (formatter) {\n return formatToParts({ number, locale, options })\n .map(formatter)\n .reduce((acc, { value }) => acc + value, '')\n } else if (\n typeof Number !== 'undefined' &&\n typeof Number.toLocaleString === 'function'\n ) {\n return parseFloat(number).toLocaleString(locale, options)\n }\n } catch (e) {\n warn(\n `Number could not be formatted: ${JSON.stringify([\n number,\n locale,\n options,\n ])}`,\n e\n )\n }\n return number\n}\n\n/**\n * Use this function to format phone numbers\n *\n * @param {string|number} number a phone number\n * @param {string} locale locale as a string\n * @returns a formatted phone number\n */\nexport const formatPhone = (number, locale = null) => {\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // cleanup\n number = String(number).replace(/[^+0-9]/g, '')\n\n let code = ''\n if (number.length > 8 && number.substr(0, 2) !== '00') {\n number = '+' + number\n number = number.replace(/^\\+{2,}/, '+')\n }\n if (number[0] === '+') {\n code = number.substr(0, 3) + ' '\n number = number.substr(3)\n } else if (number.substr(0, 2) === '00') {\n code = number.substr(0, 4) + ' '\n number = number.substr(4)\n }\n code = code.replace('+', '00')\n const length = number.length\n\n // get 800 22 222\n if (length === 8 && number[0] === '8') {\n display =\n code +\n number\n .split(/([0-9]{3})([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n } else {\n // get 02000\n if (length < 6) {\n display = code + number\n } else {\n // get 6 or 8 formatting\n display =\n code +\n number\n .split(\n length === 6\n ? /^(\\+[0-9]{2})|([0-9]{3})/\n : /^(\\+[0-9]{2})|([0-9]{2})/\n )\n .filter((s) => s)\n .join(' ')\n }\n }\n\n aria =\n code +\n number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Bank Account Numbers\n *\n * @param {string|number} number a Bank Account Number\n * @param {string} locale locale as a string\n * @returns a formatted Bank Account Number\n */\nexport const formatBAN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 2000 12 34567\n display = number\n .split(/([0-9]{4})([0-9]{2})([0-9]{1,})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Organization Numbers\n *\n * @param {string|number} number a Organization Number\n * @param {string} locale locale as a string\n * @returns a formatted Organization Number\n */\nexport const formatORG = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 123 456 789\n display = number\n .split(/([0-9]{3})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{1})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format National Identification Numbers\n *\n * @param {string|number} number a National Identification Number\n * @param {string} locale locale as a string\n * @returns a formatted National Identification Number\n */\nexport const formatNIN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 180892 12345\n display = number\n .split(/([0-9]{6})/)\n .filter((s) => s)\n .join(' ')\n\n // correct nin for screen readers\n aria = display\n .split(\n /([0-9]{2})([0-9]{2})([0-9]{2}) ([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})/\n )\n .filter((s) => s)\n .join(IS_WIN ? '. ' : ' ') // NVDA fix with a dot to not read date on FF\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * This function cleans numbers for separators\n * https://en.wikipedia.org/wiki/Decimal_separator\n *\n * @param {string|number} num any number\n * @returns a number that contains valid number separators\n */\nexport function cleanNumber(\n num,\n {\n decimalSeparator = null,\n thousandsSeparator = null,\n prefix = null,\n suffix = null,\n } = {}\n) {\n if (typeof num === 'number') {\n return num\n }\n\n num = String(num).trim()\n\n if (typeof prefix === 'string' && num.startsWith(prefix)) {\n num = num.substring(prefix.length, num.length)\n }\n if (typeof suffix === 'string' && num.endsWith(suffix)) {\n num = num.substring(0, num.length - suffix.length)\n }\n\n // 1. Remove invalid chars on the beginning (not a number)\n if (/^[^0-9-]/.test(num)) {\n num = num.replace(/^(^[^0-9-]+)/, '')\n }\n\n let decimal = decimalSeparator\n let thousands = thousandsSeparator\n\n // -12 345,678\n if (/(\\s)([0-9]{3})/.test(num)) {\n thousands = thousands || '\\\\s'\n decimal = decimal || ','\n }\n\n // -12.345,678\n else if (\n /(\\.)([0-9]{3})/.test(num) &&\n !/([,'][0-9]{3})(\\.)([0-9]{3})/.test(num) // just an additional check, for support with more\n ) {\n thousands = thousands || '\\\\.'\n decimal = decimal || \",|·|'\" // also support Spain and CH\n }\n\n // -1,234,567.891\n else if (/(,)([0-9]{3})/.test(num)) {\n thousands = thousands || ','\n decimal = decimal || '\\\\.|·' // also support Spain\n }\n\n // -1'234'567.891, only used in CH\n else if (/(')([0-9]{3})/.test(num)) {\n thousands = thousands || \"'\"\n decimal = decimal || '\\\\.|,'\n } else {\n thousands = ','\n decimal = '\\\\.'\n }\n\n // 3. Remove invalid thousand separators\n const thousandReg = thousandsSeparator\n ? new RegExp(\n `([0-9]|)(${escapeRegexChars(thousandsSeparator)})([0-9]{3})`,\n 'g'\n )\n : new RegExp(`([0-9]|)(${thousands})([0-9]{3})`, 'g')\n if (thousandReg.test(num)) {\n num = num.replace(thousandReg, '$1$3')\n }\n\n // 2. Rename invalid decimal separator\n // Make sure that there are only two digits after the coma, then we clean that up.\n // else we don't, because it can be a US number\n // therefore, check first, is there a chance of being a decimal?\n // const decimalReg = new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n const decimalReg = decimalSeparator\n ? new RegExp(`(${escapeRegexChars(decimalSeparator)})([0-9]{0,})`, 'g')\n : new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n if (decimalReg.test(num)) {\n num = num.replace(decimalReg, '.$2')\n }\n\n // Edge case, if we have more than 2 decimals, replace these decimals\n if (!decimalSeparator) {\n const decimalBackup = new RegExp(`(${decimal})([0-9]{3,})`, 'g')\n if (decimalBackup.test(num)) {\n num = num.replace(decimalBackup, '.$2')\n }\n }\n\n // Remove all invalid chars\n return num.replace(new RegExp(`([^${NUMBER_CHARS}])`, 'g'), '')\n}\n\n/**\n * So iOS v13 can select something on the first try, we run this add range trick.\n * NB: This hack may be removed in future iOS versions.\n */\nexport function runIOSSelectionFix() {\n try {\n const selection = window.getSelection()\n const range = document.createRange()\n selection.removeAllRanges()\n selection.addRange(range)\n } catch (e) {\n //\n }\n}\n\n/**\n * A function that tries to copy to the clipboard\n * at the same time it shows the copy result in a tooltip\n *\n * NB: This function is not documented.\n * It should not be used!\n *\n * @param {string} value any number\n * @param {*} label\n * @param {*} positionElement\n * @returns\n */\nexport async function copyWithEffect(\n value,\n label,\n positionElement = null\n) {\n let success = null\n\n if (value) {\n try {\n const fx = showSelectionNotice({ value, label })\n success = await copyToClipboard(value)\n if (success === true) {\n fx.run(positionElement)\n }\n } catch (e) {\n warn(e)\n success = e\n }\n }\n\n return success\n}\n\n/**\n * This function add a tooltip looking\n *\n * @type {object} object with property\n * @property {string} value any value\n * @property {string} label any additional label that gets added as a suffix\n * @property {number} timeout how long the tooltip should be visible (3 sec)\n * @returns {object} { run, hide, remove } call the \"run\" function when the effect should be shown\n */\nexport function showSelectionNotice({ value, label, timeout = 3e3 }) {\n const id = 'id-' + slugify(value)\n if (typeof document !== 'undefined' && document.getElementById(id)) {\n return { run: () => {} }\n }\n\n let elem, content, root\n\n try {\n root = document.querySelector('.dnb-tooltip__portal, body')\n\n // create that portal element\n elem = document.createElement('span')\n elem.setAttribute('id', id)\n elem.setAttribute('class', 'dnb-tooltip')\n elem.setAttribute('role', 'tooltip')\n\n const arrow = document.createElement('span')\n arrow.setAttribute(\n 'class',\n 'dnb-tooltip__arrow dnb-tooltip__arrow__position--top'\n )\n content = document.createElement('span')\n content.setAttribute('class', 'dnb-tooltip__content')\n content.setAttribute('aria-live', 'assertive')\n elem.appendChild(arrow)\n elem.appendChild(content)\n } catch (e) {\n warn(e)\n }\n\n return new (class SelectionFx {\n remove() {\n try {\n root.removeChild(elem)\n elem = null\n content = null\n } catch (e) {\n //\n }\n }\n hide() {\n try {\n elem.classList.add('dnb-tooltip--hide')\n } catch (e) {\n //\n }\n }\n run(pE = getSelectedElement()) {\n try {\n root.appendChild(elem)\n\n const top = getOffsetTop(pE)\n const left = getOffsetLeft(pE)\n\n content.innerHTML =\n String(label) +\n (pE instanceof HTMLElement\n ? `<span class=\"dnb-sr-only\">: ${\n (\n (pE &&\n pE.querySelector('.dnb-number-format__selection')) ||\n pE\n ).innerHTML\n }</span>`\n : '')\n\n const width =\n (\n (pE && pE.querySelector('.dnb-number-format__visible')) ||\n pE ||\n {}\n ).offsetWidth || 0\n\n elem.style.top = `${top - elem.offsetHeight}px`\n elem.style.left = `${left + width / 2 - elem.offsetWidth / 2}px`\n elem.classList.add('dnb-tooltip--active')\n\n setTimeout(this.hide, timeout)\n setTimeout(this.remove, timeout + 600)\n } catch (e) {\n warn(e)\n }\n }\n })()\n}\n\n/**\n * React Hook\n * It returns \"copyWithEffect\" but with a translated string\n *\n * @returns copyWithEffect function inside object { copy }\n */\nexport function useCopyWithNotice() {\n const {\n translation: {\n NumberFormat: { clipboard_copy },\n },\n } = React.useContext(Context)\n\n const copy = (value, positionElement) => {\n copyWithEffect(value, clipboard_copy, positionElement)\n }\n\n return { copy }\n}\n\n/**\n * Will return currency display value based on navigator/browser and locale\n *\n * @property {string} currency_display (optional) code, name, symbol or narrowSymbol\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getFallbackCurrencyDisplay(\n locale = null,\n currency_display = null\n) {\n // If currencyDisplay is not defined and locale is \"no\", use narrowSymbol\n if (!currency_display && (!locale || /(no|nb|nn)$/i.test(locale))) {\n currency_display = 'narrowSymbol'\n }\n\n return currency_display || CURRENCY_DISPLAY // code, name, symbol\n}\n\n/**\n * This function returns a decimal separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getDecimalSeparator(locale = null) {\n const separator =\n formatToParts({\n number: 1.1,\n locale,\n }).find(({ type }) => type === 'decimal')?.value || ',' // defaults to nb-NO\n\n return separator\n}\n\n/**\n * This function returns a thousands separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getThousandsSeparator(locale = null) {\n const formatter = getGroupFormatter(locale)\n\n return (\n formatToParts({\n number: 1000,\n locale,\n })\n .map(formatter)\n .find(({ type }) => type === 'group')?.value || ' '\n ) // defaults to nb-NO\n}\n\n/**\n * This function returns a currency symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @property {string} currency (optional) a given currency\n * @property {currencyDisplay} currencyDisplay (optional) what currency display\n * @returns {string} a currency symbol\n */\nexport function getCurrencySymbol(\n locale = null,\n currency = null,\n currencyDisplay = null\n) {\n if (!currency) {\n currency = CURRENCY\n }\n return (\n formatToParts({\n number: 1,\n locale,\n options: {\n style: 'currency',\n currency,\n currencyDisplay: getFallbackCurrencyDisplay(\n locale,\n currencyDisplay\n ),\n },\n }).find(({ type }) => type === 'currency')?.value || currency\n )\n}\n\nfunction getGroupFormatter(\n locale = null,\n separatorSymbol = null,\n existingFormatter = null\n) {\n /**\n * We change the thousand separator to be a non-breaking space\n *\n * Effected locales:\n * - en-GB\n * - en\n */\n if (locale && /(en|gb)$/i.test(locale)) {\n separatorSymbol = ' ' // non-breaking space\n }\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n if (item.type === 'group') {\n item.value = separatorSymbol || item.value\n }\n\n return item\n }\n}\n\n/**\n * For internal usage\n *\n * @type {object}\n * @property {string} number - a number\n * @property {string} locale - locale as a string. Defaults to the global LOCALE constant\n * @property {object} options - NumberFormat options\n * @returns {array} that contains all the parts of the given number [{ value: x, type: 'type' }]\n */\nfunction formatToParts({ number, locale = null, options = null }) {\n if (\n typeof Intl !== 'undefined' &&\n typeof Intl.NumberFormat === 'function'\n ) {\n try {\n const inst = Intl.NumberFormat(locale || LOCALE, options || {})\n if (typeof inst.formatToParts === 'function') {\n return inst.formatToParts(number)\n } else {\n return [{ value: inst.format(number) }]\n }\n } catch (e) {\n warn(e)\n }\n }\n\n return [{ value: number }]\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string} value any number\n * @property {string} locale a given locale\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {number} decimals the amount of decimals\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeDisplay({\n value,\n locale,\n compact,\n decimals = 0,\n opts,\n} = {}) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n value = parseInt(Math.abs(value))\n opts.notation = 'compact'\n\n // For numbers under 1M we do\n if (isTrue(compact) && locale && /(no|nb|nn)$/i.test(locale)) {\n opts.compactDisplay = Math.abs(value) < 1000000 ? 'long' : 'short'\n } else {\n opts.compactDisplay = !isTrue(compact) ? compact : 'short'\n }\n\n if (typeof opts.maximumSignificantDigits === 'undefined') {\n if (isNaN(parseFloat(decimals))) {\n decimals = 0\n } else {\n decimals = parseFloat(decimals)\n }\n\n // This formula ensures we always get the same amount decimals\n const ref = String(value).length % 3\n if (ref === 2) {\n decimals += 1\n } else if (ref === 0) {\n decimals += 2\n }\n\n // The result of this formula would be equal to this:\n // if (value >= 100000000000000) {\n // decimals += 2\n // } else if (value >= 10000000000000) {\n // decimals += 1\n // } else if (value >= 1000000000000) {\n // decimals += 0\n // } else if (value >= 100000000000) {\n // decimals += 2\n // } else if (value >= 10000000000) {\n // decimals += 1\n // } else if (value >= 1000000000) {\n // decimals += 0\n // } else if (value >= 100000000) {\n // decimals += 2\n // } else if (value >= 10000000) {\n // decimals += 1\n // } else if (value >= 1000000) {\n // decimals += 0\n // } else if (value >= 100000) {\n // decimals += 2\n // } else if (value >= 10000) {\n // decimals += 1\n // }\n\n // Firefox issue?\n // If we do not define \"maximumSignificantDigits\" Firefox does not show any decimals at all\n opts.maximumSignificantDigits = decimals + 1\n }\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeAria({ value, compact, opts }) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n opts.compactDisplay = 'long'\n}\n\n/**\n * Checks if we should/can handle the compact format\n *\n * @param {object}\n * @property {string|number} value any number\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n */\nfunction canHandleCompact({ value, compact }) {\n if (compact && Math.abs(value) >= 1000) {\n return true\n }\n\n return false\n}\n"],"mappings":"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"}
@@ -5,13 +5,6 @@
5
5
  /*
6
6
  * Utilities
7
7
  */
8
- /*
9
- * Anchor mixins
10
- *
11
- */
12
- /*
13
- * Utilities
14
- */
15
8
  .dnb-number-format {
16
9
  display: inline-block;
17
10
  position: relative;
@@ -4,7 +4,6 @@
4
4
  */
5
5
 
6
6
  @import '../../../style/core/utilities.scss';
7
- @import '../../../components/anchor/style/anchor-mixins.scss';
8
7
 
9
8
  .dnb-number-format {
10
9
  display: inline-block;
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationInfinity.js","names":["React","PropTypes","ReactDOM","warn","isTrue","dispatchCustomElementEvent","getPreviousSibling","Context","Button","preparePageElement","isTrElement","PaginationIndicator","PaginationContext","InfinityScroller","PureComponent","constructor","props","context","_defineProperty","startupPage","startup_count","pagination","startupCount","parseFloat","newPageNo","skipObserver","callStartupEvent","preventWaitForDelay","i","getNewContent","position","pageCount","endInfinity","exists","items","findIndex","obj","pageNumber","prefillItems","setItems","callEventHandler","hideIndicator","hide_progress_indicator","useLoadButton","use_load_button","lastElement","createRef","callOnUnmount","componentWillUnmount","clearTimeout","_startupTimeout","_bufferTimeout","forEach","f","waitForReachedTime","fn","params","callbackBuffer","push","callBuffer","minTime","length","diff","_lastCall","Date","getTime","waitTime","nextTick","shift","setTimeout","callOnEnd","onDispatch","createEvent","eventName","isNaN","ret","_objectSpread","handleInfinityMarker","children","lowerPage","upperPage","hasEndedInfinity","parallelLoadCount","current_page","fallback_element","marker_element","indicator_element","Marker","createElement","InteractionMarker","markerElement","onVisible","onPageUpdate","setState","LoadButton","InfinityLoadButton","icon","element","pressed_element","on_click","Fragment","render","placeMakerBeforeContent","page_element","startup","useMarkerOnly","Element","map","hasContent","content","ref","ScrollElement","idx","isLastItem","Elem","marker","showIndicator","key","event","ScrollToElement","_extends","process","env","NODE_ENV","propTypes","oneOfType","node","func","isConnected","_this$intersectionObs","intersectionObserver","disconnect","_readyTimeout","_isMounted","_ref","IntersectionObserver","entries","isIntersecting","callReady","componentDidMount","current","_this$intersectionObs2","observe","getContentHeight","height","sibling","window","getComputedStyle","querySelector","e","state","ElementChild","className","number","isRequired","object","string","args","isPressed","size","icon_position","text","translation","Pagination","load_button_text","variant","onClickHandler","elem","findDOMNode","scrollToPage","scrollIntoView","block","behavior","_this$props","_objectWithoutProperties","_excluded"],"sources":["../../../../src/components/pagination/PaginationInfinity.js"],"sourcesContent":["/**\n * Web Pagination Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport ReactDOM from 'react-dom'\nimport {\n warn,\n isTrue,\n dispatchCustomElementEvent,\n getPreviousSibling,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport Button from '../button/Button'\nimport {\n preparePageElement,\n isTrElement,\n PaginationIndicator,\n} from './PaginationHelpers'\nimport PaginationContext from './PaginationContext'\n\nexport default class InfinityScroller extends React.PureComponent {\n static contextType = PaginationContext\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n }\n static defaultProps = { children: null }\n\n constructor(props, context) {\n super(props)\n this.hideIndicator = isTrue(context.pagination.hide_progress_indicator)\n this.useLoadButton = isTrue(context.pagination.use_load_button)\n this.lastElement = React.createRef()\n this.callOnUnmount = []\n }\n\n componentWillUnmount() {\n clearTimeout(this._startupTimeout)\n clearTimeout(this._bufferTimeout)\n this.callOnUnmount.forEach((f) => typeof f === 'function' && f())\n }\n\n startup = () => {\n const { startupPage, startup_count } = this.context.pagination\n const startupCount = parseFloat(startup_count)\n\n let newPageNo, skipObserver, callStartupEvent, preventWaitForDelay\n for (let i = 0; i < startupCount; ++i) {\n newPageNo = startupPage + i\n skipObserver = newPageNo < startupCount\n callStartupEvent = i === 0\n preventWaitForDelay = i <= startupCount - 1\n\n // NB: Looks like we have to do more work here to use a waitBuffer\n this.getNewContent(\n newPageNo,\n {\n position: 'after',\n skipObserver,\n },\n { callStartupEvent, preventWaitForDelay }\n )\n }\n }\n\n getNewContent = (\n newPageNo,\n props = {},\n { callStartupEvent = false, preventWaitForDelay = false } = {}\n ) => {\n const { pageCount, endInfinity } = this.context.pagination\n\n // if \"page_count\" is set do not load more than that value\n if (newPageNo > pageCount) {\n return endInfinity()\n }\n\n const exists =\n this.context.pagination.items.findIndex((obj) => {\n return obj.pageNumber === newPageNo\n }) > -1\n\n if (exists) {\n return // stop here!\n }\n\n const items = this.context.pagination.prefillItems(newPageNo, props)\n\n this.context.pagination.setItems(items, () => {\n this.callEventHandler(newPageNo, {\n callStartupEvent,\n preventWaitForDelay,\n })\n })\n }\n\n waitForReachedTime(fn, params) {\n this.callbackBuffer = this.callbackBuffer || []\n this.callbackBuffer.push({ fn, params })\n this.callBuffer({\n minTime: params.preventWaitForDelay\n ? -1\n : this.context.pagination.minTime,\n })\n }\n\n callBuffer({ minTime = this.context.pagination.minTime } = {}) {\n if (this.callbackBuffer.length === 0) {\n return // stop here\n }\n\n const diff =\n this._lastCall > 0 ? new Date().getTime() - this._lastCall : 0\n const waitTime = diff < minTime ? minTime : 0\n\n const nextTick = () => {\n if (this.callbackBuffer.length > 0) {\n this._lastCall = new Date().getTime()\n const { fn, params } = this.callbackBuffer.shift()\n fn(params)\n this.callBuffer({\n minTime: params.preventWaitForDelay ? -1 : minTime,\n })\n }\n }\n\n if (minTime > 0) {\n clearTimeout(this._bufferTimeout)\n this._bufferTimeout = setTimeout(nextTick, waitTime)\n } else {\n nextTick()\n }\n }\n\n callEventHandler(\n pageNumber,\n {\n callStartupEvent = false,\n preventWaitForDelay = false,\n callOnEnd = false,\n onDispatch = null,\n } = {}\n ) {\n this.waitForReachedTime(\n ({ pageNumber, callStartupEvent }) => {\n const context = this.context.pagination\n const createEvent = (eventName) => {\n if (isNaN(pageNumber)) {\n pageNumber = 1\n }\n const ret = dispatchCustomElementEvent(context, eventName, {\n pageNumber,\n ...context,\n })\n\n if (typeof onDispatch === 'function') {\n onDispatch()\n }\n\n if (typeof ret === 'function') {\n this.callOnUnmount.push(ret)\n }\n }\n\n if (callOnEnd) {\n createEvent('on_end')\n } else {\n if (callStartupEvent) {\n createEvent('on_startup')\n } else {\n createEvent('on_change')\n }\n\n createEvent('on_load')\n }\n },\n { pageNumber, callStartupEvent, preventWaitForDelay }\n )\n }\n\n handleInfinityMarker() {\n const { children } = this.props\n\n const {\n // our states\n lowerPage,\n upperPage,\n pageCount,\n hasEndedInfinity,\n parallelLoadCount,\n\n // our props\n current_page,\n fallback_element,\n marker_element,\n indicator_element,\n } = this.context.pagination\n\n const Marker = () => (\n <InteractionMarker\n pageNumber={upperPage}\n markerElement={marker_element || fallback_element}\n onVisible={(pageNumber) => {\n let newPageNo\n // load several pages at once\n for (let i = 0; i < parallelLoadCount; ++i) {\n newPageNo = pageNumber + 1 + i\n // wait on updating our own state, so we can show the indicator (pressed_element) until we get new children back\n this.context.pagination.onPageUpdate(() => {\n this.context.pagination.setState({\n upperPage: newPageNo,\n skipObserver: i + 1 < parallelLoadCount,\n })\n })\n this.callEventHandler(newPageNo)\n }\n }}\n />\n )\n\n const LoadButton = () => (\n <InfinityLoadButton\n icon=\"arrow_up\"\n element={fallback_element}\n pressed_element={\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n }\n on_click={() => {\n const newPageNo = lowerPage - 1\n // wait on updating our own state, so we can show the indicator (pressed_element) until we get new children back\n this.context.pagination.onPageUpdate(() => {\n this.context.pagination.setState({\n lowerPage: newPageNo,\n })\n })\n this.callEventHandler(newPageNo)\n }}\n />\n )\n\n return (\n <>\n {parseFloat(current_page) > 0 && lowerPage > 1 && <LoadButton />}\n\n {children}\n\n {!hasEndedInfinity &&\n parseFloat(current_page) > 0 &&\n (typeof pageCount === 'undefined' || upperPage < pageCount) && (\n <Marker />\n )}\n\n {!hasEndedInfinity &&\n !this.hideIndicator &&\n (typeof pageCount === 'undefined' || upperPage < pageCount) && (\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n )}\n </>\n )\n }\n\n render() {\n const {\n // our states\n items,\n pageCount,\n startupPage,\n hasEndedInfinity,\n parallelLoadCount,\n placeMakerBeforeContent,\n\n // our props\n page_element,\n fallback_element,\n marker_element,\n indicator_element,\n } = this.context.pagination\n\n // invoke startup if needed\n if (!(items && items.length > 0)) {\n clearTimeout(this._startupTimeout)\n this._startupTimeout = setTimeout(this.startup, 1) // call startup()\n return null // stop here\n }\n\n if (this.context.pagination.useMarkerOnly) {\n return this.handleInfinityMarker()\n }\n\n // make sure we handle Table markup correctly\n const Element = preparePageElement(page_element || React.Fragment)\n\n return items.map(\n (\n {\n pageNumber,\n hasContent,\n content,\n ref,\n skipObserver,\n ScrollElement,\n },\n idx\n ) => {\n const isLastItem = idx === items.length - 1\n\n // decide to whether use the default Element, or use the scrollTo element\n const Elem = (hasContent && ScrollElement) || Element\n\n // render the marker before\n const marker = hasContent &&\n !this.useLoadButton &&\n !skipObserver &&\n !hasEndedInfinity &&\n (typeof pageCount === 'undefined' ||\n pageNumber <= pageCount) && (\n <InteractionMarker\n pageNumber={pageNumber}\n markerElement={marker_element || fallback_element}\n onVisible={(pageNumber) => {\n let newPageNo\n // load several pages at once\n for (let i = 0; i < parallelLoadCount; ++i) {\n newPageNo = pageNumber + 1 + i\n this.getNewContent(newPageNo, {\n position: 'after',\n skipObserver: i + 1 < parallelLoadCount,\n })\n }\n }}\n />\n )\n\n const showIndicator =\n (parallelLoadCount > 1 && idx > 0 ? isLastItem : true) &&\n !hasContent &&\n !this.hideIndicator\n\n return (\n <Elem key={pageNumber} ref={ref}>\n {hasContent &&\n startupPage > 1 &&\n pageNumber > 1 &&\n pageNumber <= startupPage && (\n <InfinityLoadButton\n element={fallback_element}\n icon=\"arrow_up\"\n on_click={(event) =>\n this.getNewContent(pageNumber - 1, {\n position: 'before',\n skipObserver: true,\n event,\n })\n }\n />\n )}\n\n {placeMakerBeforeContent && marker}\n {content}\n {!placeMakerBeforeContent && marker}\n\n {showIndicator && (\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n )}\n\n {hasContent &&\n this.useLoadButton &&\n isLastItem &&\n (typeof pageCount === 'undefined' ||\n pageNumber < pageCount) && (\n <InfinityLoadButton\n element={fallback_element}\n icon=\"arrow_down\"\n on_click={(event) =>\n this.getNewContent(pageNumber + 1, {\n position: 'after',\n skipObserver: true,\n ScrollElement: (props) =>\n hasContent && (\n <ScrollToElement\n page_element={page_element}\n {...props}\n />\n ),\n event,\n })\n }\n />\n )}\n </Elem>\n )\n }\n )\n }\n}\n\nclass InteractionMarker extends React.PureComponent {\n static propTypes = {\n pageNumber: PropTypes.number.isRequired,\n onVisible: PropTypes.func.isRequired,\n markerElement: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n }\n static defaultProps = {\n markerElement: null,\n }\n state = { isConnected: false }\n\n constructor(props) {\n super(props)\n\n if (typeof props.markerElement === 'function') {\n warn(\n 'Pagination: Please use a string or React element e.g. marker_element=\"tr\"'\n )\n }\n\n this._ref = React.createRef()\n\n if (typeof IntersectionObserver !== 'undefined') {\n this.intersectionObserver = new IntersectionObserver((entries) => {\n const [{ isIntersecting }] = entries\n if (isIntersecting) {\n this.callReady()\n }\n })\n } else {\n warn('Pagination is missing IntersectionObserver supported!')\n }\n }\n\n componentDidMount() {\n if (this._ref.current) {\n this._isMounted = true\n this.intersectionObserver?.observe(this._ref.current)\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false\n if (this.intersectionObserver) {\n clearTimeout(this._readyTimeout)\n this.intersectionObserver.disconnect()\n }\n }\n\n callReady = () => {\n this.intersectionObserver?.disconnect()\n this.intersectionObserver = null\n clearTimeout(this._readyTimeout)\n this._readyTimeout = setTimeout(() => {\n if (this._isMounted) {\n this.setState({ isConnected: true })\n }\n this.props.onVisible(this.props.pageNumber)\n }, 1) // because of re-render loop\n }\n\n getContentHeight() {\n let height = 0\n\n try {\n const sibling = getPreviousSibling('dnb-table', this._ref.current)\n height = parseFloat(\n window.getComputedStyle(sibling.querySelector('tbody')).height\n )\n } catch (e) {\n //\n }\n\n return height\n }\n\n render() {\n const { markerElement } = this.props\n\n if (this.state.isConnected || !this.intersectionObserver) {\n return null\n }\n\n // NB: make sure we don't actually use the marker element,\n // because it looks like React as troubles regarding handling ref during a re-render?\n const Element =\n markerElement && isTrElement(markerElement) ? 'tr' : 'div'\n const ElementChild =\n markerElement && isTrElement(markerElement) ? 'td' : 'div'\n\n return (\n <Element className=\"dnb-pagination__marker dnb-table--ignore\">\n <ElementChild\n className=\"dnb-pagination__marker__inner\"\n ref={this._ref}\n >\n {/* {this.props.pageNumber} */}\n </ElementChild>\n </Element>\n )\n }\n}\n\nexport class InfinityLoadButton extends React.PureComponent {\n static contextType = Context\n static propTypes = {\n element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n pressed_element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n icon: PropTypes.string.isRequired,\n on_click: PropTypes.func.isRequired,\n }\n static defaultProps = {\n element: 'div',\n pressed_element: null,\n icon: 'arrow_down',\n }\n state = { isPressed: false }\n onClickHandler = (e) => {\n this.setState({ isPressed: true })\n if (typeof this.props.on_click === 'function') {\n this.props.on_click(e)\n }\n }\n render() {\n const { element, icon } = this.props\n const Element = element\n const ElementChild = isTrElement(Element) ? 'td' : 'div'\n\n return this.state.isPressed ? (\n this.props.pressed_element\n ) : (\n <Element>\n <ElementChild className=\"dnb-pagination__loadbar\">\n <Button\n size=\"medium\"\n icon={icon}\n icon_position=\"left\"\n text={this.context.translation.Pagination.load_button_text}\n variant=\"secondary\"\n on_click={this.onClickHandler}\n />\n </ElementChild>\n </Element>\n )\n }\n}\n\nclass ScrollToElement extends React.PureComponent {\n static propTypes = {\n page_element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n }\n static defaultProps = {\n page_element: null,\n }\n componentDidMount() {\n // we use \"findDOMNode\" here, because we have situations, where we don't knwo about what the input element is,\n // we also don't want to wrap them because of markup collitions\n // therefor we use \"findDOMNode\" here\n // so we can scroll to that page\n // eslint-disable-next-line\n const elem = ReactDOM.findDOMNode(this)\n this.scrollToPage(elem)\n }\n scrollToPage(element) {\n if (element && typeof element.scrollIntoView === 'function') {\n element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n })\n }\n }\n render() {\n const { page_element, ...props } = this.props\n const Element = preparePageElement(page_element || React.Fragment)\n return <Element {...props} />\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PaginationInfinity.js","names":["React","PropTypes","ReactDOM","warn","isTrue","dispatchCustomElementEvent","getPreviousSibling","Context","Button","preparePageElement","isTrElement","PaginationIndicator","PaginationContext","InfinityScroller","PureComponent","constructor","props","context","_defineProperty","startupPage","startup_count","pagination","startupCount","parseFloat","newPageNo","skipObserver","callStartupEvent","preventWaitForDelay","i","getNewContent","position","pageCount","endInfinity","exists","items","findIndex","obj","pageNumber","prefillItems","setItems","callEventHandler","hideIndicator","hide_progress_indicator","useLoadButton","use_load_button","lastElement","createRef","callOnUnmount","componentWillUnmount","clearTimeout","_startupTimeout","_bufferTimeout","forEach","f","waitForReachedTime","fn","params","callbackBuffer","push","callBuffer","minTime","length","diff","_lastCall","Date","getTime","waitTime","nextTick","shift","setTimeout","callOnEnd","onDispatch","createEvent","eventName","isNaN","ret","_objectSpread","handleInfinityMarker","children","lowerPage","upperPage","hasEndedInfinity","parallelLoadCount","current_page","fallback_element","marker_element","indicator_element","Marker","createElement","InteractionMarker","markerElement","onVisible","onPageUpdate","setState","LoadButton","InfinityLoadButton","icon","element","pressed_element","on_click","Fragment","render","placeMakerBeforeContent","page_element","startup","useMarkerOnly","Element","map","hasContent","content","ref","ScrollElement","idx","isLastItem","Elem","marker","showIndicator","key","event","ScrollToElement","_extends","process","env","NODE_ENV","propTypes","oneOfType","node","func","isConnected","_this$intersectionObs","intersectionObserver","disconnect","_readyTimeout","_isMounted","_ref","IntersectionObserver","entries","isIntersecting","callReady","componentDidMount","current","_this$intersectionObs2","observe","getContentHeight","height","sibling","window","getComputedStyle","querySelector","e","state","ElementChild","className","number","isRequired","object","string","args","isPressed","size","icon_position","text","translation","Pagination","load_button_text","variant","onClickHandler","elem","findDOMNode","scrollToPage","scrollIntoView","block","behavior","_this$props","_objectWithoutProperties","_excluded"],"sources":["../../../../src/components/pagination/PaginationInfinity.js"],"sourcesContent":["/**\n * Web Pagination Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport ReactDOM from 'react-dom'\nimport {\n warn,\n isTrue,\n dispatchCustomElementEvent,\n getPreviousSibling,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport Button from '../button/Button'\nimport {\n preparePageElement,\n isTrElement,\n PaginationIndicator,\n} from './PaginationHelpers'\nimport PaginationContext from './PaginationContext'\n\nexport default class InfinityScroller extends React.PureComponent {\n static contextType = PaginationContext\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n }\n static defaultProps = { children: null }\n\n constructor(props, context) {\n super(props)\n this.hideIndicator = isTrue(context.pagination.hide_progress_indicator)\n this.useLoadButton = isTrue(context.pagination.use_load_button)\n this.lastElement = React.createRef()\n this.callOnUnmount = []\n }\n\n componentWillUnmount() {\n clearTimeout(this._startupTimeout)\n clearTimeout(this._bufferTimeout)\n this.callOnUnmount.forEach((f) => typeof f === 'function' && f())\n }\n\n startup = () => {\n const { startupPage, startup_count } = this.context.pagination\n const startupCount = parseFloat(startup_count)\n\n let newPageNo, skipObserver, callStartupEvent, preventWaitForDelay\n for (let i = 0; i < startupCount; ++i) {\n newPageNo = startupPage + i\n skipObserver = newPageNo < startupCount\n callStartupEvent = i === 0\n preventWaitForDelay = i <= startupCount - 1\n\n // NB: Looks like we have to do more work here to use a waitBuffer\n this.getNewContent(\n newPageNo,\n {\n position: 'after',\n skipObserver,\n },\n { callStartupEvent, preventWaitForDelay }\n )\n }\n }\n\n getNewContent = (\n newPageNo,\n props = {},\n { callStartupEvent = false, preventWaitForDelay = false } = {}\n ) => {\n const { pageCount, endInfinity } = this.context.pagination\n\n // if \"page_count\" is set do not load more than that value\n if (newPageNo > pageCount) {\n return endInfinity()\n }\n\n const exists =\n this.context.pagination.items.findIndex((obj) => {\n return obj.pageNumber === newPageNo\n }) > -1\n\n if (exists) {\n return // stop here!\n }\n\n const items = this.context.pagination.prefillItems(newPageNo, props)\n\n this.context.pagination.setItems(items, () => {\n this.callEventHandler(newPageNo, {\n callStartupEvent,\n preventWaitForDelay,\n })\n })\n }\n\n waitForReachedTime(fn, params) {\n this.callbackBuffer = this.callbackBuffer || []\n this.callbackBuffer.push({ fn, params })\n this.callBuffer({\n minTime: params.preventWaitForDelay\n ? -1\n : this.context.pagination.minTime,\n })\n }\n\n callBuffer({ minTime = this.context.pagination.minTime } = {}) {\n if (this.callbackBuffer.length === 0) {\n return // stop here\n }\n\n const diff =\n this._lastCall > 0 ? new Date().getTime() - this._lastCall : 0\n const waitTime = diff < minTime ? minTime : 0\n\n const nextTick = () => {\n if (this.callbackBuffer.length > 0) {\n this._lastCall = new Date().getTime()\n const { fn, params } = this.callbackBuffer.shift()\n fn(params)\n this.callBuffer({\n minTime: params.preventWaitForDelay ? -1 : minTime,\n })\n }\n }\n\n if (minTime > 0) {\n clearTimeout(this._bufferTimeout)\n this._bufferTimeout = setTimeout(nextTick, waitTime)\n } else {\n nextTick()\n }\n }\n\n callEventHandler(\n pageNumber,\n {\n callStartupEvent = false,\n preventWaitForDelay = false,\n callOnEnd = false,\n onDispatch = null,\n } = {}\n ) {\n this.waitForReachedTime(\n ({ pageNumber, callStartupEvent }) => {\n const context = this.context.pagination\n const createEvent = (eventName) => {\n if (isNaN(pageNumber)) {\n pageNumber = 1\n }\n const ret = dispatchCustomElementEvent(context, eventName, {\n pageNumber,\n ...context,\n })\n\n if (typeof onDispatch === 'function') {\n onDispatch()\n }\n\n if (typeof ret === 'function') {\n this.callOnUnmount.push(ret)\n }\n }\n\n if (callOnEnd) {\n createEvent('on_end')\n } else {\n if (callStartupEvent) {\n createEvent('on_startup')\n } else {\n createEvent('on_change')\n }\n\n createEvent('on_load')\n }\n },\n { pageNumber, callStartupEvent, preventWaitForDelay }\n )\n }\n\n handleInfinityMarker() {\n const { children } = this.props\n\n const {\n // our states\n lowerPage,\n upperPage,\n pageCount,\n hasEndedInfinity,\n parallelLoadCount,\n\n // our props\n current_page,\n fallback_element,\n marker_element,\n indicator_element,\n } = this.context.pagination\n\n const Marker = () => (\n <InteractionMarker\n pageNumber={upperPage}\n markerElement={marker_element || fallback_element}\n onVisible={(pageNumber) => {\n let newPageNo\n // load several pages at once\n for (let i = 0; i < parallelLoadCount; ++i) {\n newPageNo = pageNumber + 1 + i\n // wait on updating our own state, so we can show the indicator (pressed_element) until we get new children back\n this.context.pagination.onPageUpdate(() => {\n this.context.pagination.setState({\n upperPage: newPageNo,\n skipObserver: i + 1 < parallelLoadCount,\n })\n })\n this.callEventHandler(newPageNo)\n }\n }}\n />\n )\n\n const LoadButton = () => (\n <InfinityLoadButton\n icon=\"arrow_up\"\n element={fallback_element}\n pressed_element={\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n }\n on_click={() => {\n const newPageNo = lowerPage - 1\n // wait on updating our own state, so we can show the indicator (pressed_element) until we get new children back\n this.context.pagination.onPageUpdate(() => {\n this.context.pagination.setState({\n lowerPage: newPageNo,\n })\n })\n this.callEventHandler(newPageNo)\n }}\n />\n )\n\n return (\n <>\n {parseFloat(current_page) > 0 && lowerPage > 1 && <LoadButton />}\n\n {children}\n\n {!hasEndedInfinity &&\n parseFloat(current_page) > 0 &&\n (typeof pageCount === 'undefined' || upperPage < pageCount) && (\n <Marker />\n )}\n\n {!hasEndedInfinity &&\n !this.hideIndicator &&\n (typeof pageCount === 'undefined' || upperPage < pageCount) && (\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n )}\n </>\n )\n }\n\n render() {\n const {\n // our states\n items,\n pageCount,\n startupPage,\n hasEndedInfinity,\n parallelLoadCount,\n placeMakerBeforeContent,\n\n // our props\n page_element,\n fallback_element,\n marker_element,\n indicator_element,\n } = this.context.pagination\n\n // invoke startup if needed\n if (!(items && items.length > 0)) {\n clearTimeout(this._startupTimeout)\n this._startupTimeout = setTimeout(this.startup, 1) // call startup()\n return null // stop here\n }\n\n if (this.context.pagination.useMarkerOnly) {\n return this.handleInfinityMarker()\n }\n\n // make sure we handle Table markup correctly\n const Element = preparePageElement(page_element || React.Fragment)\n\n return items.map(\n (\n {\n pageNumber,\n hasContent,\n content,\n ref,\n skipObserver,\n ScrollElement,\n },\n idx\n ) => {\n const isLastItem = idx === items.length - 1\n\n // decide to whether use the default Element, or use the scrollTo element\n const Elem = (hasContent && ScrollElement) || Element\n\n // render the marker before\n const marker = hasContent &&\n !this.useLoadButton &&\n !skipObserver &&\n !hasEndedInfinity &&\n (typeof pageCount === 'undefined' ||\n pageNumber <= pageCount) && (\n <InteractionMarker\n pageNumber={pageNumber}\n markerElement={marker_element || fallback_element}\n onVisible={(pageNumber) => {\n let newPageNo\n // load several pages at once\n for (let i = 0; i < parallelLoadCount; ++i) {\n newPageNo = pageNumber + 1 + i\n this.getNewContent(newPageNo, {\n position: 'after',\n skipObserver: i + 1 < parallelLoadCount,\n })\n }\n }}\n />\n )\n\n const showIndicator =\n (parallelLoadCount > 1 && idx > 0 ? isLastItem : true) &&\n !hasContent &&\n !this.hideIndicator\n\n return (\n <Elem key={pageNumber} ref={ref}>\n {hasContent &&\n startupPage > 1 &&\n pageNumber > 1 &&\n pageNumber <= startupPage && (\n <InfinityLoadButton\n element={fallback_element}\n icon=\"arrow_up\"\n on_click={(event) =>\n this.getNewContent(pageNumber - 1, {\n position: 'before',\n skipObserver: true,\n event,\n })\n }\n />\n )}\n\n {placeMakerBeforeContent && marker}\n {content}\n {!placeMakerBeforeContent && marker}\n\n {showIndicator && (\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n )}\n\n {hasContent &&\n this.useLoadButton &&\n isLastItem &&\n (typeof pageCount === 'undefined' ||\n pageNumber < pageCount) && (\n <InfinityLoadButton\n element={fallback_element}\n icon=\"arrow_down\"\n on_click={(event) =>\n this.getNewContent(pageNumber + 1, {\n position: 'after',\n skipObserver: true,\n ScrollElement: (props) =>\n hasContent && (\n <ScrollToElement\n page_element={page_element}\n {...props}\n />\n ),\n event,\n })\n }\n />\n )}\n </Elem>\n )\n }\n )\n }\n}\n\nclass InteractionMarker extends React.PureComponent {\n static propTypes = {\n pageNumber: PropTypes.number.isRequired,\n onVisible: PropTypes.func.isRequired,\n markerElement: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n }\n static defaultProps = {\n markerElement: null,\n }\n state = { isConnected: false }\n\n constructor(props) {\n super(props)\n\n if (typeof props.markerElement === 'function') {\n warn(\n 'Pagination: Please use a string or React element e.g. marker_element=\"tr\"'\n )\n }\n\n this._ref = React.createRef()\n\n if (typeof IntersectionObserver !== 'undefined') {\n this.intersectionObserver = new IntersectionObserver((entries) => {\n const [{ isIntersecting }] = entries\n if (isIntersecting) {\n this.callReady()\n }\n })\n } else {\n warn('Pagination is missing IntersectionObserver supported!')\n }\n }\n\n componentDidMount() {\n if (this._ref.current) {\n this._isMounted = true\n this.intersectionObserver?.observe(this._ref.current)\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false\n if (this.intersectionObserver) {\n clearTimeout(this._readyTimeout)\n this.intersectionObserver.disconnect()\n }\n }\n\n callReady = () => {\n this.intersectionObserver?.disconnect()\n this.intersectionObserver = null\n clearTimeout(this._readyTimeout)\n this._readyTimeout = setTimeout(() => {\n if (this._isMounted) {\n this.setState({ isConnected: true })\n }\n this.props.onVisible(this.props.pageNumber)\n }, 1) // because of re-render loop\n }\n\n getContentHeight() {\n let height = 0\n\n try {\n const sibling = getPreviousSibling('dnb-table', this._ref.current)\n height = parseFloat(\n window.getComputedStyle(sibling.querySelector('tbody')).height\n )\n } catch (e) {\n //\n }\n\n return height\n }\n\n render() {\n const { markerElement } = this.props\n\n if (this.state.isConnected || !this.intersectionObserver) {\n return null\n }\n\n // NB: make sure we don't actually use the marker element,\n // because it looks like React as troubles regarding handling ref during a re-render?\n const Element =\n markerElement && isTrElement(markerElement) ? 'tr' : 'div'\n const ElementChild =\n markerElement && isTrElement(markerElement) ? 'td' : 'div'\n\n return (\n <Element className=\"dnb-pagination__marker dnb-table--ignore\">\n <ElementChild\n className=\"dnb-pagination__marker__inner\"\n ref={this._ref}\n >\n {/* {this.props.pageNumber} */}\n </ElementChild>\n </Element>\n )\n }\n}\n\nexport class InfinityLoadButton extends React.PureComponent {\n static contextType = Context\n static propTypes = {\n element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n pressed_element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n icon: PropTypes.string.isRequired,\n on_click: PropTypes.func.isRequired,\n }\n static defaultProps = {\n element: 'div',\n pressed_element: null,\n icon: 'arrow_down',\n }\n state = { isPressed: false }\n onClickHandler = (e) => {\n this.setState({ isPressed: true })\n if (typeof this.props.on_click === 'function') {\n this.props.on_click(e)\n }\n }\n render() {\n const { element, icon } = this.props\n const Element = element\n const ElementChild = isTrElement(Element) ? 'td' : 'div'\n\n return this.state.isPressed ? (\n this.props.pressed_element\n ) : (\n <Element>\n <ElementChild className=\"dnb-pagination__loadbar\">\n <Button\n size=\"medium\"\n icon={icon}\n icon_position=\"left\"\n text={this.context.translation.Pagination.load_button_text}\n variant=\"secondary\"\n on_click={this.onClickHandler}\n />\n </ElementChild>\n </Element>\n )\n }\n}\n\nclass ScrollToElement extends React.PureComponent {\n static propTypes = {\n page_element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n }\n static defaultProps = {\n page_element: null,\n }\n componentDidMount() {\n // we use \"findDOMNode\" here, because we have situations, where we don't know about what the input element is,\n // we also don't want to wrap them because of markup collisions\n // therefor we use \"findDOMNode\" here\n // so we can scroll to that page\n // eslint-disable-next-line\n const elem = ReactDOM.findDOMNode(this)\n this.scrollToPage(elem)\n }\n scrollToPage(element) {\n if (element && typeof element.scrollIntoView === 'function') {\n element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n })\n }\n }\n render() {\n const { page_element, ...props } = this.props\n const Element = preparePageElement(page_element || React.Fragment)\n return <Element {...props} />\n }\n}\n"],"mappings":"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"}