@dnb/eufemia 10.20.0 → 10.22.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 (1062) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  3. package/cjs/components/breadcrumb/Breadcrumb.d.ts +2 -2
  4. package/cjs/components/breadcrumb/Breadcrumb.js +3 -3
  5. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  6. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
  7. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  8. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
  9. package/cjs/components/button/Button.js +2 -2
  10. package/cjs/components/button/Button.js.map +1 -1
  11. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
  12. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  13. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
  14. package/cjs/components/card/style/dnb-card.css +11 -2
  15. package/cjs/components/card/style/dnb-card.min.css +1 -1
  16. package/cjs/components/card/style/dnb-card.scss +12 -2
  17. package/cjs/components/date-picker/DatePicker.d.ts +10 -1
  18. package/cjs/components/date-picker/DatePicker.js +5 -2
  19. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  20. package/cjs/components/form-label/style/dnb-form-label.css +4 -8
  21. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  22. package/cjs/components/form-label/style/dnb-form-label.scss +5 -8
  23. package/cjs/components/form-status/style/dnb-form-status.css +11 -0
  24. package/cjs/components/form-status/style/dnb-form-status.min.css +1 -1
  25. package/cjs/components/form-status/style/dnb-form-status.scss +11 -0
  26. package/cjs/components/global-status/GlobalStatus.d.ts +1 -1
  27. package/cjs/components/global-status/GlobalStatusProvider.d.ts +1 -1
  28. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +5 -6
  29. package/cjs/components/height-animation/HeightAnimationInstance.js +12 -12
  30. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  31. package/cjs/components/height-animation/useHeightAnimation.js +11 -10
  32. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  33. package/cjs/components/info-card/InfoCard.d.ts +6 -0
  34. package/cjs/components/info-card/InfoCard.js +4 -2
  35. package/cjs/components/info-card/InfoCard.js.map +1 -1
  36. package/cjs/components/info-card/style/dnb-info-card.css +3 -1
  37. package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
  38. package/cjs/components/info-card/style/dnb-info-card.scss +4 -2
  39. package/cjs/components/input/Input.d.ts +9 -9
  40. package/cjs/components/input/InputDocs.d.ts +2 -0
  41. package/cjs/components/input/InputDocs.js +165 -0
  42. package/cjs/components/input/InputDocs.js.map +1 -0
  43. package/cjs/components/input/InputPassword.d.ts +6 -17
  44. package/cjs/components/input/InputPassword.js +4 -85
  45. package/cjs/components/input/InputPassword.js.map +1 -1
  46. package/cjs/components/input-masked/InputMasked.d.ts +6 -93
  47. package/cjs/components/input-masked/InputMasked.js +3 -1
  48. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  49. package/cjs/components/input-masked/InputMaskedDocs.d.ts +2 -0
  50. package/cjs/components/input-masked/InputMaskedDocs.js +85 -0
  51. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -0
  52. package/cjs/components/input-masked/InputMaskedHooks.js +7 -4
  53. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  54. package/cjs/components/input-masked/MultiInputMask.js +2 -6
  55. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  56. package/cjs/components/input-masked/style/dnb-input-masked.css +3 -0
  57. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  58. package/cjs/components/input-masked/style/dnb-input-masked.scss +5 -0
  59. package/cjs/components/number-format/NumberFormat.d.ts +1 -1
  60. package/cjs/components/number-format/NumberUtils.js +22 -14
  61. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  62. package/cjs/components/pagination/InfinityScroller.d.ts +1 -1
  63. package/cjs/components/progress-indicator/ProgressIndicator.js +5 -7
  64. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  65. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
  66. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  67. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
  68. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  69. package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
  70. package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  71. package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
  72. package/cjs/components/slider/Slider.d.ts +1 -0
  73. package/cjs/components/slider/Slider.js +10 -1
  74. package/cjs/components/slider/Slider.js.map +1 -1
  75. package/cjs/components/slider/SliderInstance.js +20 -6
  76. package/cjs/components/slider/SliderInstance.js.map +1 -1
  77. package/cjs/components/slider/SliderMarker.d.ts +7 -0
  78. package/cjs/components/slider/SliderMarker.js +62 -0
  79. package/cjs/components/slider/SliderMarker.js.map +1 -0
  80. package/cjs/components/slider/SliderProvider.js +2 -1
  81. package/cjs/components/slider/SliderProvider.js.map +1 -1
  82. package/cjs/components/slider/style/dnb-slider.css +43 -2
  83. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  84. package/cjs/components/slider/style/dnb-slider.scss +44 -1
  85. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  86. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  87. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  88. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  89. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  90. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  91. package/cjs/components/slider/types.d.ts +6 -0
  92. package/cjs/components/slider/types.js.map +1 -1
  93. package/cjs/components/space/SpacingHelper.d.ts +5 -5
  94. package/cjs/components/table/Table.js +2 -2
  95. package/cjs/components/table/Table.js.map +1 -1
  96. package/cjs/components/table/TableAccordion.js +42 -58
  97. package/cjs/components/table/TableAccordion.js.map +1 -1
  98. package/cjs/components/table/TableAccordionTd.d.ts +9 -0
  99. package/cjs/components/table/{TableAccordionContent.js → TableAccordionTd.js} +18 -56
  100. package/cjs/components/table/TableAccordionTd.js.map +1 -0
  101. package/cjs/components/table/TableAccordionTr.d.ts +13 -0
  102. package/cjs/components/table/TableAccordionTr.js +61 -0
  103. package/cjs/components/table/TableAccordionTr.js.map +1 -0
  104. package/cjs/components/table/TableContext.d.ts +2 -2
  105. package/cjs/components/table/TableContext.js +4 -3
  106. package/cjs/components/table/TableContext.js.map +1 -1
  107. package/cjs/components/table/TableTd.d.ts +2 -2
  108. package/cjs/components/table/TableTd.js +2 -2
  109. package/cjs/components/table/TableTd.js.map +1 -1
  110. package/cjs/components/table/TableTr.d.ts +6 -1
  111. package/cjs/components/table/TableTr.js +10 -5
  112. package/cjs/components/table/TableTr.js.map +1 -1
  113. package/cjs/components/table/style/dnb-table.css +226 -139
  114. package/cjs/components/table/style/dnb-table.min.css +1 -1
  115. package/cjs/components/table/style/dnb-table.scss +60 -4
  116. package/cjs/components/table/style/table-accordion.scss +83 -98
  117. package/cjs/components/table/style/table-container.scss +9 -9
  118. package/cjs/components/table/style/table-mixins.scss +19 -2
  119. package/cjs/components/table/style/table-td.scss +82 -60
  120. package/cjs/components/table/style/table-th.scss +5 -30
  121. package/cjs/components/table/style/table-tr.scss +0 -20
  122. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
  123. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
  124. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
  125. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  126. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  127. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  128. package/cjs/components/table/useTableAnimationHandler.d.ts +20 -0
  129. package/cjs/components/table/useTableAnimationHandler.js +73 -0
  130. package/cjs/components/table/useTableAnimationHandler.js.map +1 -0
  131. package/cjs/components/textarea/Textarea.d.ts +4 -10
  132. package/cjs/components/textarea/TextareaDocs.d.ts +2 -0
  133. package/cjs/components/textarea/TextareaDocs.js +105 -0
  134. package/cjs/components/textarea/TextareaDocs.js.map +1 -0
  135. package/cjs/components/textarea/style/dnb-textarea.css +1 -0
  136. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  137. package/cjs/components/textarea/style/dnb-textarea.scss +3 -0
  138. package/cjs/components/upload/UploadInfo.js +1 -1
  139. package/cjs/components/upload/UploadInfo.js.map +1 -1
  140. package/cjs/core/jest/jestSetupScreenshots.css +7 -0
  141. package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
  142. package/cjs/elements/lib.d.ts +1 -1
  143. package/cjs/elements/lists/Dl.d.ts +5 -1
  144. package/cjs/elements/lists/Dl.js +5 -4
  145. package/cjs/elements/lists/Dl.js.map +1 -1
  146. package/cjs/elements/lists/style/lists-mixins.scss +24 -1
  147. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -2
  148. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  149. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
  150. package/cjs/extensions/forms/DataContext/Provider/Provider.js +54 -40
  151. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  152. package/cjs/extensions/forms/Field/Currency/Currency.js +1 -1
  153. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  154. package/cjs/extensions/forms/Field/Expiry/Expiry.js +1 -0
  155. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  156. package/cjs/extensions/forms/Field/FieldDocs.d.ts +3 -0
  157. package/cjs/extensions/forms/Field/FieldDocs.js +18 -0
  158. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -0
  159. package/cjs/extensions/forms/Field/Number/Number.d.ts +1 -0
  160. package/cjs/extensions/forms/Field/Number/Number.js +13 -7
  161. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  162. package/cjs/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  163. package/cjs/extensions/forms/Field/Number/NumberDocs.js +92 -0
  164. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  165. package/cjs/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  166. package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  167. package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  168. package/cjs/extensions/forms/Field/Password/Password.d.ts +45 -0
  169. package/cjs/extensions/forms/Field/Password/Password.js +111 -0
  170. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -0
  171. package/cjs/extensions/forms/Field/Password/index.d.ts +2 -0
  172. package/cjs/extensions/forms/Field/Password/index.js +27 -0
  173. package/cjs/extensions/forms/Field/Password/index.js.map +1 -0
  174. package/cjs/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  175. package/cjs/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  176. package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  177. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  178. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  179. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  180. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  181. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  182. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  183. package/cjs/extensions/forms/Field/Selection/Selection.js +1 -9
  184. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  185. package/cjs/extensions/forms/Field/String/String.d.ts +20 -9
  186. package/cjs/extensions/forms/Field/String/String.js +52 -31
  187. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  188. package/cjs/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  189. package/cjs/extensions/forms/Field/String/StringDocs.js +106 -0
  190. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -0
  191. package/cjs/extensions/forms/Field/Toggle/Toggle.js +1 -1
  192. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  193. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  194. package/cjs/extensions/forms/Field/index.js +7 -0
  195. package/cjs/extensions/forms/Field/index.js.map +1 -1
  196. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  197. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +204 -62
  198. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  199. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
  200. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  201. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  202. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +60 -0
  203. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  204. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
  205. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  206. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
  207. package/cjs/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  208. package/cjs/extensions/forms/Form/Appearance/Appearance.js +38 -0
  209. package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  210. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  211. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js +15 -0
  212. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  213. package/cjs/extensions/forms/Form/Appearance/index.d.ts +2 -0
  214. package/cjs/extensions/forms/Form/Appearance/index.js +27 -0
  215. package/cjs/extensions/forms/Form/Appearance/index.js.map +1 -0
  216. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
  217. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  218. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
  219. package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
  220. package/cjs/extensions/forms/Form/data-context/useData.js +2 -18
  221. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  222. package/cjs/extensions/forms/Form/data-context/useError.d.ts +2 -1
  223. package/cjs/extensions/forms/Form/data-context/useError.js +4 -2
  224. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  225. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  226. package/cjs/extensions/forms/Form/index.js +7 -0
  227. package/cjs/extensions/forms/Form/index.js.map +1 -1
  228. package/cjs/extensions/forms/Value/Currency/Currency.js +2 -2
  229. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  230. package/cjs/extensions/forms/Value/Number/Number.d.ts +2 -2
  231. package/cjs/extensions/forms/Value/Number/Number.js +1 -1
  232. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  233. package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  234. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +35 -0
  235. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  236. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  237. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js +12 -0
  238. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  239. package/cjs/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  240. package/cjs/extensions/forms/Value/SummaryList/index.js +27 -0
  241. package/cjs/extensions/forms/Value/SummaryList/index.js.map +1 -0
  242. package/cjs/extensions/forms/Value/ValueDocs.d.ts +2 -0
  243. package/cjs/extensions/forms/Value/ValueDocs.js +40 -0
  244. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -0
  245. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  246. package/cjs/extensions/forms/Value/index.js +7 -0
  247. package/cjs/extensions/forms/Value/index.js.map +1 -1
  248. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +13 -3
  249. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  250. package/cjs/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  251. package/cjs/extensions/forms/hooks/DataValueDocs.js +118 -0
  252. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  253. package/cjs/extensions/forms/hooks/useDataValue.d.ts +6 -14
  254. package/cjs/extensions/forms/hooks/useDataValue.js +90 -21
  255. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  256. package/cjs/extensions/forms/hooks/useId.js +1 -1
  257. package/cjs/extensions/forms/hooks/useId.js.map +1 -1
  258. package/cjs/extensions/forms/hooks/useMountEffect.js +1 -1
  259. package/cjs/extensions/forms/hooks/useMountEffect.js.map +1 -1
  260. package/cjs/extensions/forms/hooks/useMounted.d.ts +2 -0
  261. package/cjs/extensions/forms/hooks/useMounted.js +19 -0
  262. package/cjs/extensions/forms/hooks/useMounted.js.map +1 -0
  263. package/cjs/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  264. package/cjs/extensions/forms/hooks/useUnmountEffect.js +14 -0
  265. package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  266. package/cjs/extensions/forms/style/dnb-forms.css +45 -15
  267. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  268. package/cjs/extensions/forms/types.d.ts +6 -4
  269. package/cjs/extensions/forms/types.js.map +1 -1
  270. package/cjs/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
  271. package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
  272. package/cjs/shared/Context.d.ts +2 -0
  273. package/cjs/shared/Context.js.map +1 -1
  274. package/cjs/shared/Eufemia.d.ts +1 -1
  275. package/cjs/shared/Eufemia.js +2 -2
  276. package/cjs/shared/Eufemia.js.map +1 -1
  277. package/cjs/shared/Theme.d.ts +7 -1
  278. package/cjs/shared/Theme.js +20 -7
  279. package/cjs/shared/Theme.js.map +1 -1
  280. package/cjs/shared/component-helper.d.ts +1 -0
  281. package/cjs/shared/component-helper.js +10 -0
  282. package/cjs/shared/component-helper.js.map +1 -1
  283. package/cjs/shared/helpers/debounce.d.ts +37 -0
  284. package/cjs/shared/helpers/debounce.js +92 -0
  285. package/cjs/shared/helpers/debounce.js.map +1 -0
  286. package/cjs/shared/helpers/filterValidProps.d.ts +2 -2
  287. package/cjs/shared/helpers/filterValidProps.js +2 -2
  288. package/cjs/shared/helpers/filterValidProps.js.map +1 -1
  289. package/cjs/shared/helpers/useSharedState.d.ts +1 -0
  290. package/cjs/shared/helpers/useSharedState.js +52 -20
  291. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  292. package/cjs/shared/helpers/withCamelCaseProps.d.ts +14 -1
  293. package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
  294. package/cjs/shared/helpers.d.ts +1 -25
  295. package/cjs/shared/helpers.js +15 -37
  296. package/cjs/shared/helpers.js.map +1 -1
  297. package/cjs/shared/locales/en-GB.d.ts +5 -3
  298. package/cjs/shared/locales/en-GB.js +7 -5
  299. package/cjs/shared/locales/en-GB.js.map +1 -1
  300. package/cjs/shared/locales/en-US.d.ts +5 -3
  301. package/cjs/shared/locales/index.d.ts +10 -6
  302. package/cjs/shared/locales/nb-NO.d.ts +5 -3
  303. package/cjs/shared/locales/nb-NO.js +7 -5
  304. package/cjs/shared/locales/nb-NO.js.map +1 -1
  305. package/cjs/shared/types.d.ts +5 -0
  306. package/cjs/shared/types.js.map +1 -1
  307. package/cjs/shared/useTheme.d.ts +1 -0
  308. package/cjs/style/dnb-ui-components.css +359 -171
  309. package/cjs/style/dnb-ui-components.min.css +3 -3
  310. package/cjs/style/dnb-ui-elements.css +25 -5
  311. package/cjs/style/dnb-ui-elements.min.css +1 -1
  312. package/cjs/style/dnb-ui-extensions.css +45 -15
  313. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  314. package/cjs/style/dnb-ui-forms.css +45 -15
  315. package/cjs/style/dnb-ui-forms.min.css +1 -1
  316. package/cjs/style/dnb-ui-forms.scss +1 -0
  317. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  318. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  319. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
  320. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  321. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  322. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  323. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
  324. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  325. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
  326. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  327. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
  328. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  329. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
  330. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
  331. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
  332. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  333. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
  334. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  335. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
  336. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  337. package/cjs/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
  338. package/cjs/style/themes/theme-ui/ui-theme-basis.css +25 -5
  339. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  340. package/cjs/style/themes/theme-ui/ui-theme-components.css +421 -195
  341. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  342. package/cjs/style/themes/theme-ui/ui-theme-elements.css +25 -5
  343. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  344. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +45 -15
  345. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  346. package/cjs/style/themes/theme-ui/ui-theme-forms.css +45 -15
  347. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  348. package/cjs/style/themes/theme-ui/ui-theme-tags.css +25 -5
  349. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  350. package/components/aria-live/useAriaLive.d.ts +1 -1
  351. package/components/breadcrumb/Breadcrumb.d.ts +2 -2
  352. package/components/breadcrumb/Breadcrumb.js +3 -3
  353. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  354. package/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
  355. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  356. package/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
  357. package/components/button/Button.js +2 -2
  358. package/components/button/Button.js.map +1 -1
  359. package/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
  360. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  361. package/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
  362. package/components/card/style/dnb-card.css +11 -2
  363. package/components/card/style/dnb-card.min.css +1 -1
  364. package/components/card/style/dnb-card.scss +12 -2
  365. package/components/date-picker/DatePicker.d.ts +10 -1
  366. package/components/date-picker/DatePicker.js +5 -2
  367. package/components/date-picker/DatePicker.js.map +1 -1
  368. package/components/form-label/style/dnb-form-label.css +4 -8
  369. package/components/form-label/style/dnb-form-label.min.css +1 -1
  370. package/components/form-label/style/dnb-form-label.scss +5 -8
  371. package/components/form-status/style/dnb-form-status.css +11 -0
  372. package/components/form-status/style/dnb-form-status.min.css +1 -1
  373. package/components/form-status/style/dnb-form-status.scss +11 -0
  374. package/components/global-status/GlobalStatus.d.ts +1 -1
  375. package/components/global-status/GlobalStatusProvider.d.ts +1 -1
  376. package/components/height-animation/HeightAnimationInstance.d.ts +5 -6
  377. package/components/height-animation/HeightAnimationInstance.js +12 -12
  378. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  379. package/components/height-animation/useHeightAnimation.js +11 -10
  380. package/components/height-animation/useHeightAnimation.js.map +1 -1
  381. package/components/info-card/InfoCard.d.ts +6 -0
  382. package/components/info-card/InfoCard.js +4 -2
  383. package/components/info-card/InfoCard.js.map +1 -1
  384. package/components/info-card/style/dnb-info-card.css +3 -1
  385. package/components/info-card/style/dnb-info-card.min.css +1 -1
  386. package/components/info-card/style/dnb-info-card.scss +4 -2
  387. package/components/input/Input.d.ts +9 -9
  388. package/components/input/InputDocs.d.ts +2 -0
  389. package/components/input/InputDocs.js +158 -0
  390. package/components/input/InputDocs.js.map +1 -0
  391. package/components/input/InputPassword.d.ts +6 -17
  392. package/components/input/InputPassword.js +3 -81
  393. package/components/input/InputPassword.js.map +1 -1
  394. package/components/input-masked/InputMasked.d.ts +6 -93
  395. package/components/input-masked/InputMasked.js +3 -1
  396. package/components/input-masked/InputMasked.js.map +1 -1
  397. package/components/input-masked/InputMaskedDocs.d.ts +2 -0
  398. package/components/input-masked/InputMaskedDocs.js +78 -0
  399. package/components/input-masked/InputMaskedDocs.js.map +1 -0
  400. package/components/input-masked/InputMaskedHooks.js +7 -4
  401. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  402. package/components/input-masked/MultiInputMask.js +2 -6
  403. package/components/input-masked/MultiInputMask.js.map +1 -1
  404. package/components/input-masked/style/dnb-input-masked.css +3 -0
  405. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  406. package/components/input-masked/style/dnb-input-masked.scss +5 -0
  407. package/components/number-format/NumberFormat.d.ts +1 -1
  408. package/components/number-format/NumberUtils.js +22 -14
  409. package/components/number-format/NumberUtils.js.map +1 -1
  410. package/components/pagination/InfinityScroller.d.ts +1 -1
  411. package/components/progress-indicator/ProgressIndicator.js +5 -7
  412. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  413. package/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
  414. package/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  415. package/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
  416. package/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  417. package/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
  418. package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  419. package/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
  420. package/components/slider/Slider.d.ts +1 -0
  421. package/components/slider/Slider.js +1 -0
  422. package/components/slider/Slider.js.map +1 -1
  423. package/components/slider/SliderInstance.js +18 -5
  424. package/components/slider/SliderInstance.js.map +1 -1
  425. package/components/slider/SliderMarker.d.ts +7 -0
  426. package/components/slider/SliderMarker.js +53 -0
  427. package/components/slider/SliderMarker.js.map +1 -0
  428. package/components/slider/SliderProvider.js +2 -1
  429. package/components/slider/SliderProvider.js.map +1 -1
  430. package/components/slider/style/dnb-slider.css +43 -2
  431. package/components/slider/style/dnb-slider.min.css +1 -1
  432. package/components/slider/style/dnb-slider.scss +44 -1
  433. package/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  434. package/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  435. package/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  436. package/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  437. package/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  438. package/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  439. package/components/slider/types.d.ts +6 -0
  440. package/components/slider/types.js.map +1 -1
  441. package/components/space/SpacingHelper.d.ts +5 -5
  442. package/components/table/Table.js +1 -1
  443. package/components/table/Table.js.map +1 -1
  444. package/components/table/TableAccordion.js +40 -54
  445. package/components/table/TableAccordion.js.map +1 -1
  446. package/components/table/TableAccordionTd.d.ts +9 -0
  447. package/{es/components/table/TableAccordionContent.js → components/table/TableAccordionTd.js} +16 -50
  448. package/components/table/TableAccordionTd.js.map +1 -0
  449. package/components/table/TableAccordionTr.d.ts +13 -0
  450. package/components/table/TableAccordionTr.js +51 -0
  451. package/components/table/TableAccordionTr.js.map +1 -0
  452. package/components/table/TableContext.d.ts +2 -2
  453. package/components/table/TableContext.js +2 -2
  454. package/components/table/TableContext.js.map +1 -1
  455. package/components/table/TableTd.d.ts +2 -2
  456. package/components/table/TableTd.js +2 -2
  457. package/components/table/TableTd.js.map +1 -1
  458. package/components/table/TableTr.d.ts +6 -1
  459. package/components/table/TableTr.js +9 -4
  460. package/components/table/TableTr.js.map +1 -1
  461. package/components/table/style/dnb-table.css +226 -139
  462. package/components/table/style/dnb-table.min.css +1 -1
  463. package/components/table/style/dnb-table.scss +60 -4
  464. package/components/table/style/table-accordion.scss +83 -98
  465. package/components/table/style/table-container.scss +9 -9
  466. package/components/table/style/table-mixins.scss +19 -2
  467. package/components/table/style/table-td.scss +82 -60
  468. package/components/table/style/table-th.scss +5 -30
  469. package/components/table/style/table-tr.scss +0 -20
  470. package/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
  471. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
  472. package/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
  473. package/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  474. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  475. package/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  476. package/components/table/useTableAnimationHandler.d.ts +20 -0
  477. package/components/table/useTableAnimationHandler.js +63 -0
  478. package/components/table/useTableAnimationHandler.js.map +1 -0
  479. package/components/textarea/Textarea.d.ts +4 -10
  480. package/components/textarea/TextareaDocs.d.ts +2 -0
  481. package/components/textarea/TextareaDocs.js +98 -0
  482. package/components/textarea/TextareaDocs.js.map +1 -0
  483. package/components/textarea/style/dnb-textarea.css +1 -0
  484. package/components/textarea/style/dnb-textarea.min.css +1 -1
  485. package/components/textarea/style/dnb-textarea.scss +3 -0
  486. package/components/upload/UploadInfo.js +1 -1
  487. package/components/upload/UploadInfo.js.map +1 -1
  488. package/core/jest/jestSetupScreenshots.css +7 -0
  489. package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
  490. package/elements/lib.d.ts +1 -1
  491. package/elements/lists/Dl.d.ts +5 -1
  492. package/elements/lists/Dl.js +5 -4
  493. package/elements/lists/Dl.js.map +1 -1
  494. package/elements/lists/style/lists-mixins.scss +24 -1
  495. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  496. package/es/components/breadcrumb/Breadcrumb.d.ts +2 -2
  497. package/es/components/breadcrumb/Breadcrumb.js +3 -3
  498. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  499. package/es/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
  500. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  501. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
  502. package/es/components/button/Button.js +2 -2
  503. package/es/components/button/Button.js.map +1 -1
  504. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
  505. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  506. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
  507. package/es/components/card/style/dnb-card.css +11 -2
  508. package/es/components/card/style/dnb-card.min.css +1 -1
  509. package/es/components/card/style/dnb-card.scss +12 -2
  510. package/es/components/date-picker/DatePicker.d.ts +10 -1
  511. package/es/components/date-picker/DatePicker.js +5 -2
  512. package/es/components/date-picker/DatePicker.js.map +1 -1
  513. package/es/components/form-label/style/dnb-form-label.css +4 -8
  514. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  515. package/es/components/form-label/style/dnb-form-label.scss +5 -8
  516. package/es/components/form-status/style/dnb-form-status.css +11 -0
  517. package/es/components/form-status/style/dnb-form-status.min.css +1 -1
  518. package/es/components/form-status/style/dnb-form-status.scss +11 -0
  519. package/es/components/global-status/GlobalStatus.d.ts +1 -1
  520. package/es/components/global-status/GlobalStatusProvider.d.ts +1 -1
  521. package/es/components/height-animation/HeightAnimationInstance.d.ts +5 -6
  522. package/es/components/height-animation/HeightAnimationInstance.js +12 -12
  523. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  524. package/es/components/height-animation/useHeightAnimation.js +11 -10
  525. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  526. package/es/components/info-card/InfoCard.d.ts +6 -0
  527. package/es/components/info-card/InfoCard.js +4 -2
  528. package/es/components/info-card/InfoCard.js.map +1 -1
  529. package/es/components/info-card/style/dnb-info-card.css +3 -1
  530. package/es/components/info-card/style/dnb-info-card.min.css +1 -1
  531. package/es/components/info-card/style/dnb-info-card.scss +4 -2
  532. package/es/components/input/Input.d.ts +9 -9
  533. package/es/components/input/InputDocs.d.ts +2 -0
  534. package/es/components/input/InputDocs.js +158 -0
  535. package/es/components/input/InputDocs.js.map +1 -0
  536. package/es/components/input/InputPassword.d.ts +6 -17
  537. package/es/components/input/InputPassword.js +3 -81
  538. package/es/components/input/InputPassword.js.map +1 -1
  539. package/es/components/input-masked/InputMasked.d.ts +6 -93
  540. package/es/components/input-masked/InputMasked.js +3 -1
  541. package/es/components/input-masked/InputMasked.js.map +1 -1
  542. package/es/components/input-masked/InputMaskedDocs.d.ts +2 -0
  543. package/es/components/input-masked/InputMaskedDocs.js +78 -0
  544. package/es/components/input-masked/InputMaskedDocs.js.map +1 -0
  545. package/es/components/input-masked/InputMaskedHooks.js +7 -4
  546. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  547. package/es/components/input-masked/MultiInputMask.js +2 -6
  548. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  549. package/es/components/input-masked/style/dnb-input-masked.css +3 -0
  550. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  551. package/es/components/input-masked/style/dnb-input-masked.scss +5 -0
  552. package/es/components/number-format/NumberFormat.d.ts +1 -1
  553. package/es/components/number-format/NumberUtils.js +23 -14
  554. package/es/components/number-format/NumberUtils.js.map +1 -1
  555. package/es/components/pagination/InfinityScroller.d.ts +1 -1
  556. package/es/components/progress-indicator/ProgressIndicator.js +5 -7
  557. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  558. package/es/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
  559. package/es/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  560. package/es/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
  561. package/es/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  562. package/es/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
  563. package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  564. package/es/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
  565. package/es/components/slider/Slider.d.ts +1 -0
  566. package/es/components/slider/Slider.js +1 -0
  567. package/es/components/slider/Slider.js.map +1 -1
  568. package/es/components/slider/SliderInstance.js +17 -5
  569. package/es/components/slider/SliderInstance.js.map +1 -1
  570. package/es/components/slider/SliderMarker.d.ts +7 -0
  571. package/es/components/slider/SliderMarker.js +52 -0
  572. package/es/components/slider/SliderMarker.js.map +1 -0
  573. package/es/components/slider/SliderProvider.js +2 -1
  574. package/es/components/slider/SliderProvider.js.map +1 -1
  575. package/es/components/slider/style/dnb-slider.css +43 -2
  576. package/es/components/slider/style/dnb-slider.min.css +1 -1
  577. package/es/components/slider/style/dnb-slider.scss +44 -1
  578. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  579. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  580. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  581. package/es/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  582. package/es/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  583. package/es/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  584. package/es/components/slider/types.d.ts +6 -0
  585. package/es/components/slider/types.js.map +1 -1
  586. package/es/components/space/SpacingHelper.d.ts +5 -5
  587. package/es/components/table/Table.js +1 -1
  588. package/es/components/table/Table.js.map +1 -1
  589. package/es/components/table/TableAccordion.js +40 -55
  590. package/es/components/table/TableAccordion.js.map +1 -1
  591. package/es/components/table/TableAccordionTd.d.ts +9 -0
  592. package/{components/table/TableAccordionContent.js → es/components/table/TableAccordionTd.js} +16 -51
  593. package/es/components/table/TableAccordionTd.js.map +1 -0
  594. package/es/components/table/TableAccordionTr.d.ts +13 -0
  595. package/es/components/table/TableAccordionTr.js +51 -0
  596. package/es/components/table/TableAccordionTr.js.map +1 -0
  597. package/es/components/table/TableContext.d.ts +2 -2
  598. package/es/components/table/TableContext.js +2 -2
  599. package/es/components/table/TableContext.js.map +1 -1
  600. package/es/components/table/TableTd.d.ts +2 -2
  601. package/es/components/table/TableTd.js +2 -2
  602. package/es/components/table/TableTd.js.map +1 -1
  603. package/es/components/table/TableTr.d.ts +6 -1
  604. package/es/components/table/TableTr.js +9 -4
  605. package/es/components/table/TableTr.js.map +1 -1
  606. package/es/components/table/style/dnb-table.css +226 -139
  607. package/es/components/table/style/dnb-table.min.css +1 -1
  608. package/es/components/table/style/dnb-table.scss +60 -4
  609. package/es/components/table/style/table-accordion.scss +83 -98
  610. package/es/components/table/style/table-container.scss +9 -9
  611. package/es/components/table/style/table-mixins.scss +19 -2
  612. package/es/components/table/style/table-td.scss +82 -60
  613. package/es/components/table/style/table-th.scss +5 -30
  614. package/es/components/table/style/table-tr.scss +0 -20
  615. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
  616. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
  617. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
  618. package/es/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  619. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  620. package/es/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  621. package/es/components/table/useTableAnimationHandler.d.ts +20 -0
  622. package/es/components/table/useTableAnimationHandler.js +62 -0
  623. package/es/components/table/useTableAnimationHandler.js.map +1 -0
  624. package/es/components/textarea/Textarea.d.ts +4 -10
  625. package/es/components/textarea/TextareaDocs.d.ts +2 -0
  626. package/es/components/textarea/TextareaDocs.js +98 -0
  627. package/es/components/textarea/TextareaDocs.js.map +1 -0
  628. package/es/components/textarea/style/dnb-textarea.css +1 -0
  629. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  630. package/es/components/textarea/style/dnb-textarea.scss +3 -0
  631. package/es/components/upload/UploadInfo.js +1 -1
  632. package/es/components/upload/UploadInfo.js.map +1 -1
  633. package/es/core/jest/jestSetupScreenshots.css +7 -0
  634. package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
  635. package/es/elements/lib.d.ts +1 -1
  636. package/es/elements/lists/Dl.d.ts +5 -1
  637. package/es/elements/lists/Dl.js +5 -4
  638. package/es/elements/lists/Dl.js.map +1 -1
  639. package/es/elements/lists/style/lists-mixins.scss +24 -1
  640. package/es/extensions/forms/DataContext/Context.d.ts +1 -2
  641. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  642. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
  643. package/es/extensions/forms/DataContext/Provider/Provider.js +54 -40
  644. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  645. package/es/extensions/forms/Field/Currency/Currency.js +1 -1
  646. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  647. package/es/extensions/forms/Field/Expiry/Expiry.js +1 -0
  648. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  649. package/es/extensions/forms/Field/FieldDocs.d.ts +3 -0
  650. package/es/extensions/forms/Field/FieldDocs.js +8 -0
  651. package/es/extensions/forms/Field/FieldDocs.js.map +1 -0
  652. package/es/extensions/forms/Field/Number/Number.d.ts +1 -0
  653. package/es/extensions/forms/Field/Number/Number.js +13 -7
  654. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  655. package/es/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  656. package/es/extensions/forms/Field/Number/NumberDocs.js +85 -0
  657. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  658. package/es/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  659. package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  660. package/es/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  661. package/es/extensions/forms/Field/Password/Password.d.ts +45 -0
  662. package/es/extensions/forms/Field/Password/Password.js +99 -0
  663. package/es/extensions/forms/Field/Password/Password.js.map +1 -0
  664. package/es/extensions/forms/Field/Password/index.d.ts +2 -0
  665. package/es/extensions/forms/Field/Password/index.js +3 -0
  666. package/es/extensions/forms/Field/Password/index.js.map +1 -0
  667. package/es/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  668. package/es/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  669. package/es/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  670. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  671. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  672. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  673. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  674. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  675. package/es/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  676. package/es/extensions/forms/Field/Selection/Selection.js +2 -11
  677. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  678. package/es/extensions/forms/Field/String/String.d.ts +20 -9
  679. package/es/extensions/forms/Field/String/String.js +52 -31
  680. package/es/extensions/forms/Field/String/String.js.map +1 -1
  681. package/es/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  682. package/es/extensions/forms/Field/String/StringDocs.js +99 -0
  683. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -0
  684. package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
  685. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  686. package/es/extensions/forms/Field/index.d.ts +1 -0
  687. package/es/extensions/forms/Field/index.js +1 -0
  688. package/es/extensions/forms/Field/index.js.map +1 -1
  689. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  690. package/es/extensions/forms/FieldBlock/FieldBlock.js +195 -58
  691. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  692. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
  693. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  694. package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  695. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
  696. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  697. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
  698. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  699. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
  700. package/es/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  701. package/es/extensions/forms/Form/Appearance/Appearance.js +30 -0
  702. package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  703. package/es/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  704. package/es/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
  705. package/es/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  706. package/es/extensions/forms/Form/Appearance/index.d.ts +2 -0
  707. package/es/extensions/forms/Form/Appearance/index.js +3 -0
  708. package/es/extensions/forms/Form/Appearance/index.js.map +1 -0
  709. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
  710. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  711. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
  712. package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
  713. package/es/extensions/forms/Form/data-context/useData.js +3 -19
  714. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  715. package/es/extensions/forms/Form/data-context/useError.d.ts +2 -1
  716. package/es/extensions/forms/Form/data-context/useError.js +4 -2
  717. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  718. package/es/extensions/forms/Form/index.d.ts +1 -0
  719. package/es/extensions/forms/Form/index.js +1 -0
  720. package/es/extensions/forms/Form/index.js.map +1 -1
  721. package/es/extensions/forms/Value/Currency/Currency.js +2 -2
  722. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  723. package/es/extensions/forms/Value/Number/Number.d.ts +2 -2
  724. package/es/extensions/forms/Value/Number/Number.js +1 -1
  725. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  726. package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  727. package/es/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
  728. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  729. package/es/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  730. package/es/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
  731. package/es/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  732. package/es/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  733. package/es/extensions/forms/Value/SummaryList/index.js +3 -0
  734. package/es/extensions/forms/Value/SummaryList/index.js.map +1 -0
  735. package/es/extensions/forms/Value/ValueDocs.d.ts +2 -0
  736. package/es/extensions/forms/Value/ValueDocs.js +33 -0
  737. package/es/extensions/forms/Value/ValueDocs.js.map +1 -0
  738. package/es/extensions/forms/Value/index.d.ts +1 -0
  739. package/es/extensions/forms/Value/index.js +1 -0
  740. package/es/extensions/forms/Value/index.js.map +1 -1
  741. package/es/extensions/forms/ValueBlock/ValueBlock.js +12 -4
  742. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  743. package/es/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  744. package/es/extensions/forms/hooks/DataValueDocs.js +110 -0
  745. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  746. package/es/extensions/forms/hooks/useDataValue.d.ts +6 -14
  747. package/es/extensions/forms/hooks/useDataValue.js +92 -23
  748. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  749. package/es/extensions/forms/hooks/useId.js +1 -1
  750. package/es/extensions/forms/hooks/useId.js.map +1 -1
  751. package/es/extensions/forms/hooks/useMountEffect.js +1 -1
  752. package/es/extensions/forms/hooks/useMountEffect.js.map +1 -1
  753. package/es/extensions/forms/hooks/useMounted.d.ts +2 -0
  754. package/es/extensions/forms/hooks/useMounted.js +14 -0
  755. package/es/extensions/forms/hooks/useMounted.js.map +1 -0
  756. package/es/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  757. package/es/extensions/forms/hooks/useUnmountEffect.js +9 -0
  758. package/es/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  759. package/es/extensions/forms/style/dnb-forms.css +45 -15
  760. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  761. package/es/extensions/forms/types.d.ts +6 -4
  762. package/es/extensions/forms/types.js.map +1 -1
  763. package/es/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
  764. package/es/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
  765. package/es/shared/Context.d.ts +2 -0
  766. package/es/shared/Context.js.map +1 -1
  767. package/es/shared/Eufemia.d.ts +1 -1
  768. package/es/shared/Eufemia.js +2 -2
  769. package/es/shared/Eufemia.js.map +1 -1
  770. package/es/shared/Theme.d.ts +7 -1
  771. package/es/shared/Theme.js +20 -7
  772. package/es/shared/Theme.js.map +1 -1
  773. package/es/shared/component-helper.d.ts +1 -0
  774. package/es/shared/component-helper.js +6 -0
  775. package/es/shared/component-helper.js.map +1 -1
  776. package/es/shared/helpers/debounce.d.ts +37 -0
  777. package/es/shared/helpers/debounce.js +76 -0
  778. package/es/shared/helpers/debounce.js.map +1 -0
  779. package/es/shared/helpers/filterValidProps.d.ts +2 -2
  780. package/es/shared/helpers/filterValidProps.js +2 -2
  781. package/es/shared/helpers/filterValidProps.js.map +1 -1
  782. package/es/shared/helpers/useSharedState.d.ts +1 -0
  783. package/es/shared/helpers/useSharedState.js +49 -20
  784. package/es/shared/helpers/useSharedState.js.map +1 -1
  785. package/es/shared/helpers/withCamelCaseProps.d.ts +14 -1
  786. package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
  787. package/es/shared/helpers.d.ts +1 -25
  788. package/es/shared/helpers.js +1 -29
  789. package/es/shared/helpers.js.map +1 -1
  790. package/es/shared/locales/en-GB.d.ts +5 -3
  791. package/es/shared/locales/en-GB.js +7 -5
  792. package/es/shared/locales/en-GB.js.map +1 -1
  793. package/es/shared/locales/en-US.d.ts +5 -3
  794. package/es/shared/locales/index.d.ts +10 -6
  795. package/es/shared/locales/nb-NO.d.ts +5 -3
  796. package/es/shared/locales/nb-NO.js +7 -5
  797. package/es/shared/locales/nb-NO.js.map +1 -1
  798. package/es/shared/types.d.ts +5 -0
  799. package/es/shared/types.js.map +1 -1
  800. package/es/shared/useTheme.d.ts +1 -0
  801. package/es/style/dnb-ui-components.css +359 -171
  802. package/es/style/dnb-ui-components.min.css +3 -3
  803. package/es/style/dnb-ui-elements.css +25 -5
  804. package/es/style/dnb-ui-elements.min.css +1 -1
  805. package/es/style/dnb-ui-extensions.css +45 -15
  806. package/es/style/dnb-ui-extensions.min.css +1 -1
  807. package/es/style/dnb-ui-forms.css +45 -15
  808. package/es/style/dnb-ui-forms.min.css +1 -1
  809. package/es/style/dnb-ui-forms.scss +1 -0
  810. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  811. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  812. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
  813. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  814. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  815. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  816. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
  817. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  818. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
  819. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  820. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
  821. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  822. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
  823. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
  824. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
  825. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  826. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
  827. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  828. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
  829. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  830. package/es/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
  831. package/es/style/themes/theme-ui/ui-theme-basis.css +25 -5
  832. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  833. package/es/style/themes/theme-ui/ui-theme-components.css +421 -195
  834. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  835. package/es/style/themes/theme-ui/ui-theme-elements.css +25 -5
  836. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  837. package/es/style/themes/theme-ui/ui-theme-extensions.css +45 -15
  838. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  839. package/es/style/themes/theme-ui/ui-theme-forms.css +45 -15
  840. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  841. package/es/style/themes/theme-ui/ui-theme-tags.css +25 -5
  842. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  843. package/esm/dnb-ui-basis.min.mjs +1 -1
  844. package/esm/dnb-ui-components.min.mjs +1 -1
  845. package/esm/dnb-ui-elements.min.mjs +1 -1
  846. package/esm/dnb-ui-extensions.min.mjs +3 -3
  847. package/esm/dnb-ui-lib.min.mjs +1 -1
  848. package/extensions/forms/DataContext/Context.d.ts +1 -2
  849. package/extensions/forms/DataContext/Context.js.map +1 -1
  850. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
  851. package/extensions/forms/DataContext/Provider/Provider.js +54 -40
  852. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  853. package/extensions/forms/Field/Currency/Currency.js +1 -1
  854. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  855. package/extensions/forms/Field/Expiry/Expiry.js +1 -0
  856. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  857. package/extensions/forms/Field/FieldDocs.d.ts +3 -0
  858. package/extensions/forms/Field/FieldDocs.js +8 -0
  859. package/extensions/forms/Field/FieldDocs.js.map +1 -0
  860. package/extensions/forms/Field/Number/Number.d.ts +1 -0
  861. package/extensions/forms/Field/Number/Number.js +13 -7
  862. package/extensions/forms/Field/Number/Number.js.map +1 -1
  863. package/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  864. package/extensions/forms/Field/Number/NumberDocs.js +85 -0
  865. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  866. package/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  867. package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  868. package/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  869. package/extensions/forms/Field/Password/Password.d.ts +45 -0
  870. package/extensions/forms/Field/Password/Password.js +99 -0
  871. package/extensions/forms/Field/Password/Password.js.map +1 -0
  872. package/extensions/forms/Field/Password/index.d.ts +2 -0
  873. package/extensions/forms/Field/Password/index.js +3 -0
  874. package/extensions/forms/Field/Password/index.js.map +1 -0
  875. package/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  876. package/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  877. package/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  878. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  879. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  880. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  881. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  882. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  883. package/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  884. package/extensions/forms/Field/Selection/Selection.js +2 -11
  885. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  886. package/extensions/forms/Field/String/String.d.ts +20 -9
  887. package/extensions/forms/Field/String/String.js +52 -31
  888. package/extensions/forms/Field/String/String.js.map +1 -1
  889. package/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  890. package/extensions/forms/Field/String/StringDocs.js +99 -0
  891. package/extensions/forms/Field/String/StringDocs.js.map +1 -0
  892. package/extensions/forms/Field/Toggle/Toggle.js +1 -1
  893. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  894. package/extensions/forms/Field/index.d.ts +1 -0
  895. package/extensions/forms/Field/index.js +1 -0
  896. package/extensions/forms/Field/index.js.map +1 -1
  897. package/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  898. package/extensions/forms/FieldBlock/FieldBlock.js +203 -64
  899. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  900. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
  901. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  902. package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  903. package/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
  904. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  905. package/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
  906. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  907. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
  908. package/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  909. package/extensions/forms/Form/Appearance/Appearance.js +30 -0
  910. package/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  911. package/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  912. package/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
  913. package/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  914. package/extensions/forms/Form/Appearance/index.d.ts +2 -0
  915. package/extensions/forms/Form/Appearance/index.js +3 -0
  916. package/extensions/forms/Form/Appearance/index.js.map +1 -0
  917. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
  918. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  919. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
  920. package/extensions/forms/Form/data-context/useData.d.ts +1 -1
  921. package/extensions/forms/Form/data-context/useData.js +3 -19
  922. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  923. package/extensions/forms/Form/data-context/useError.d.ts +2 -1
  924. package/extensions/forms/Form/data-context/useError.js +4 -2
  925. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  926. package/extensions/forms/Form/index.d.ts +1 -0
  927. package/extensions/forms/Form/index.js +1 -0
  928. package/extensions/forms/Form/index.js.map +1 -1
  929. package/extensions/forms/Value/Currency/Currency.js +2 -2
  930. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  931. package/extensions/forms/Value/Number/Number.d.ts +2 -2
  932. package/extensions/forms/Value/Number/Number.js +1 -1
  933. package/extensions/forms/Value/Number/Number.js.map +1 -1
  934. package/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  935. package/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
  936. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  937. package/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  938. package/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
  939. package/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  940. package/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  941. package/extensions/forms/Value/SummaryList/index.js +3 -0
  942. package/extensions/forms/Value/SummaryList/index.js.map +1 -0
  943. package/extensions/forms/Value/ValueDocs.d.ts +2 -0
  944. package/extensions/forms/Value/ValueDocs.js +33 -0
  945. package/extensions/forms/Value/ValueDocs.js.map +1 -0
  946. package/extensions/forms/Value/index.d.ts +1 -0
  947. package/extensions/forms/Value/index.js +1 -0
  948. package/extensions/forms/Value/index.js.map +1 -1
  949. package/extensions/forms/ValueBlock/ValueBlock.js +12 -4
  950. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  951. package/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  952. package/extensions/forms/hooks/DataValueDocs.js +110 -0
  953. package/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  954. package/extensions/forms/hooks/useDataValue.d.ts +6 -14
  955. package/extensions/forms/hooks/useDataValue.js +92 -23
  956. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  957. package/extensions/forms/hooks/useId.js +1 -1
  958. package/extensions/forms/hooks/useId.js.map +1 -1
  959. package/extensions/forms/hooks/useMountEffect.js +1 -1
  960. package/extensions/forms/hooks/useMountEffect.js.map +1 -1
  961. package/extensions/forms/hooks/useMounted.d.ts +2 -0
  962. package/extensions/forms/hooks/useMounted.js +14 -0
  963. package/extensions/forms/hooks/useMounted.js.map +1 -0
  964. package/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  965. package/extensions/forms/hooks/useUnmountEffect.js +9 -0
  966. package/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  967. package/extensions/forms/style/dnb-forms.css +45 -15
  968. package/extensions/forms/style/dnb-forms.min.css +1 -1
  969. package/extensions/forms/types.d.ts +6 -4
  970. package/extensions/forms/types.js.map +1 -1
  971. package/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
  972. package/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
  973. package/package.json +1 -1
  974. package/shared/Context.d.ts +2 -0
  975. package/shared/Context.js.map +1 -1
  976. package/shared/Eufemia.d.ts +1 -1
  977. package/shared/Eufemia.js +2 -2
  978. package/shared/Eufemia.js.map +1 -1
  979. package/shared/Theme.d.ts +7 -1
  980. package/shared/Theme.js +20 -7
  981. package/shared/Theme.js.map +1 -1
  982. package/shared/component-helper.d.ts +1 -0
  983. package/shared/component-helper.js +9 -0
  984. package/shared/component-helper.js.map +1 -1
  985. package/shared/helpers/debounce.d.ts +37 -0
  986. package/shared/helpers/debounce.js +83 -0
  987. package/shared/helpers/debounce.js.map +1 -0
  988. package/shared/helpers/filterValidProps.d.ts +2 -2
  989. package/shared/helpers/filterValidProps.js +2 -2
  990. package/shared/helpers/filterValidProps.js.map +1 -1
  991. package/shared/helpers/useSharedState.d.ts +1 -0
  992. package/shared/helpers/useSharedState.js +49 -20
  993. package/shared/helpers/useSharedState.js.map +1 -1
  994. package/shared/helpers/withCamelCaseProps.d.ts +14 -1
  995. package/shared/helpers/withCamelCaseProps.js.map +1 -1
  996. package/shared/helpers.d.ts +1 -25
  997. package/shared/helpers.js +3 -36
  998. package/shared/helpers.js.map +1 -1
  999. package/shared/locales/en-GB.d.ts +5 -3
  1000. package/shared/locales/en-GB.js +7 -5
  1001. package/shared/locales/en-GB.js.map +1 -1
  1002. package/shared/locales/en-US.d.ts +5 -3
  1003. package/shared/locales/index.d.ts +10 -6
  1004. package/shared/locales/nb-NO.d.ts +5 -3
  1005. package/shared/locales/nb-NO.js +7 -5
  1006. package/shared/locales/nb-NO.js.map +1 -1
  1007. package/shared/types.d.ts +5 -0
  1008. package/shared/types.js.map +1 -1
  1009. package/shared/useTheme.d.ts +1 -0
  1010. package/style/dnb-ui-components.css +359 -171
  1011. package/style/dnb-ui-components.min.css +3 -3
  1012. package/style/dnb-ui-elements.css +25 -5
  1013. package/style/dnb-ui-elements.min.css +1 -1
  1014. package/style/dnb-ui-extensions.css +45 -15
  1015. package/style/dnb-ui-extensions.min.css +1 -1
  1016. package/style/dnb-ui-forms.css +45 -15
  1017. package/style/dnb-ui-forms.min.css +1 -1
  1018. package/style/dnb-ui-forms.scss +1 -0
  1019. package/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  1020. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1021. package/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
  1022. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  1023. package/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  1024. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1025. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
  1026. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1027. package/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
  1028. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1029. package/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
  1030. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1031. package/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
  1032. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
  1033. package/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
  1034. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1035. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
  1036. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1037. package/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
  1038. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1039. package/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
  1040. package/style/themes/theme-ui/ui-theme-basis.css +25 -5
  1041. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1042. package/style/themes/theme-ui/ui-theme-components.css +421 -195
  1043. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  1044. package/style/themes/theme-ui/ui-theme-elements.css +25 -5
  1045. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1046. package/style/themes/theme-ui/ui-theme-extensions.css +45 -15
  1047. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1048. package/style/themes/theme-ui/ui-theme-forms.css +45 -15
  1049. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1050. package/style/themes/theme-ui/ui-theme-tags.css +25 -5
  1051. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1052. package/umd/dnb-ui-basis.min.js +1 -1
  1053. package/umd/dnb-ui-components.min.js +1 -1
  1054. package/umd/dnb-ui-elements.min.js +1 -1
  1055. package/umd/dnb-ui-extensions.min.js +3 -3
  1056. package/umd/dnb-ui-lib.min.js +1 -1
  1057. package/cjs/components/table/TableAccordionContent.d.ts +0 -18
  1058. package/cjs/components/table/TableAccordionContent.js.map +0 -1
  1059. package/components/table/TableAccordionContent.d.ts +0 -18
  1060. package/components/table/TableAccordionContent.js.map +0 -1
  1061. package/es/components/table/TableAccordionContent.d.ts +0 -18
  1062. package/es/components/table/TableAccordionContent.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","locales","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","NumberFormat","not_available","pos","substring","decimalSeparator","_String$split$","Math","floor","valueOf","split","length","existingFormatter","callback","position","count","countCurrency","first","second","reg","abs","getGroupFormatter","replaceNaNWithDash","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","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'\nimport locales from '../../shared/locales'\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 NVDA 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 if (value === 'invalid') {\n aria = locales[locale].NumberFormat.not_available || 'N/A'\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 // check for first and second char\n const first = display[0]\n const second = display[1]\n\n // Seems to be the invalid replacement\n if (first === '-' && second === '-') {\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 const reg = '^(-|−|‐|‒|–|—|―)'\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 replaceNaNWithDash(\n formatToParts({ number, locale, options })\n .map(formatter)\n .reduce((acc, { value }) => acc + value, '')\n )\n } else if (\n typeof Number !== 'undefined' &&\n typeof Number.toLocaleString === 'function'\n ) {\n return replaceNaNWithDash(\n parseFloat(number).toLocaleString(locale, options)\n )\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 replaceNaNWithDash(number)\n}\n\nfunction replaceNaNWithDash(number) {\n return String(number).replace(/NaN/, '–')\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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"}
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","locales","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","alignCurrencySymbol","trim","prepareMinus","handleCompactBeforeAria","_objectSpread","enhanceSR","cleanedValue","thousandsSeparator","getThousandsSeparator","replace","RegExp","NumberFormat","not_available","pos","substring","decimalSeparator","_String$split$","Math","floor","valueOf","split","length","existingFormatter","callback","position","count","countCurrency","first","second","reg","output","abs","getGroupFormatter","formatToParts","map","reduce","acc","Number","toLocaleString","stringify","replaceNaNWithDash","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","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'\nimport locales from '../../shared/locales'\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 }) => {\n return (currencySuffix = alignCurrencySymbol(\n value.trim(),\n currency_display\n ))\n },\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 NVDA 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 if (value === 'invalid') {\n aria = locales[locale].NumberFormat.not_available || 'N/A'\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 // check for first and second char\n const first = display[0]\n const second = display[1]\n\n // Seems to be the invalid replacement\n if (first === '-' && second === '-') {\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 const reg = '^(-|−|‐|‒|–|—|―)'\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 * Aligns the currency symbol in the output based on the currency display option.\n * \"norske kroner\" (\"Norwegian kroner\") will be changed to \"kroner\" if the currency display option is set to \"name\".\n *\n * @param {string} output - The output string containing the currency symbol.\n * @param {string} currencyDisplay - The currency display option ('name' or 'symbol').\n * @returns {string} The aligned output string.\n */\nfunction alignCurrencySymbol(output, currencyDisplay) {\n if (currencyDisplay === 'name') {\n output = output.replace(/(nor[^\\s]+?)\\s(\\w+)/i, '$2')\n }\n return output\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 number = 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 number = 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\n return replaceNaNWithDash(\n alignCurrencySymbol(number, options.currencyDisplay)\n )\n}\n\nfunction replaceNaNWithDash(number) {\n return String(number).replace(/NaN/, '–')\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} currencyDisplay (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 currencyDisplay = null\n) {\n // If currencyDisplay is not defined and locale is \"no\", use narrowSymbol\n if (!currencyDisplay && (!locale || /(no|nb|nn)$/i.test(locale))) {\n currencyDisplay = 'narrowSymbol'\n }\n\n return currencyDisplay || 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 {string} display (optional) what currency display\n * @property {number} number (optional) only to define if it should be formatted in singular or plural\n * @returns {string} a currency symbol\n */\nexport function getCurrencySymbol(\n locale = null,\n currency = null,\n display = null,\n number = 2\n) {\n if (!currency) {\n currency = CURRENCY\n }\n\n const currencyDisplay = getFallbackCurrencyDisplay(locale, display)\n\n return alignCurrencySymbol(\n formatToParts({\n number,\n locale,\n options: {\n style: 'currency',\n currency,\n currencyDisplay,\n },\n }).find(({ type }) => type === 'currency')?.value || currency,\n currencyDisplay\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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"}
@@ -1,5 +1,5 @@
1
1
  declare function InfinityScroller(props: any): import("react/jsx-runtime").JSX.Element;
2
2
  declare namespace InfinityScroller {
3
- const _supportsSpacingProps: boolean;
3
+ let _supportsSpacingProps: boolean;
4
4
  }
5
5
  export default InfinityScroller;
@@ -78,8 +78,8 @@ export default class ProgressIndicator extends React.PureComponent {
78
78
  const indicatorLabel = label || children || isTrue(show_label) && indicator_label;
79
79
  const progressTitle = title || formatProgress(progress);
80
80
  validateDOMAttributes(this.props, params);
81
- return React.createElement("div", _extends({
82
- className: classnames('dnb-progress-indicator', createSpacingClasses(props), className, _className, visible && 'dnb-progress-indicator--visible', complete && 'dnb-progress-indicator--complete', label_direction && `dnb-progress-indicator--${label_direction}`, isTrue(no_animation) && 'dnb-progress-indicator--no-animation', type === 'linear' && 'dnb-progress-indicator--full-width')
81
+ return React.createElement("span", _extends({
82
+ className: classnames('dnb-progress-indicator', createSpacingClasses(props), className, _className, visible && 'dnb-progress-indicator--visible', complete && 'dnb-progress-indicator--complete', label_direction && `dnb-progress-indicator--${label_direction}`, size && `dnb-progress-indicator--${size}`, isTrue(no_animation) && 'dnb-progress-indicator--no-animation', type === 'linear' && 'dnb-progress-indicator--full-width')
83
83
  }, params), type === 'circular' && React.createElement(ProgressIndicatorCircular, {
84
84
  size: size,
85
85
  progress: progress,
@@ -96,11 +96,9 @@ export default class ProgressIndicator extends React.PureComponent {
96
96
  onComplete: on_complete,
97
97
  callOnCompleteHandler: this.callOnCompleteHandler,
98
98
  title: progressTitle
99
- }), indicatorLabel && React.createElement("div", {
100
- className: "dnb-progress-indicator__label"
101
- }, React.createElement("p", {
102
- className: "dnb-p"
103
- }, indicatorLabel)));
99
+ }), indicatorLabel && React.createElement("span", {
100
+ className: "dnb-progress-indicator__label dnb-p"
101
+ }, indicatorLabel));
104
102
  }
105
103
  }
106
104
  _defineProperty(ProgressIndicator, "contextType", Context);
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressIndicator.js","names":["React","PropTypes","classnames","Context","isTrue","validateDOMAttributes","dispatchCustomElementEvent","extendPropsWithContextInClassComponent","spacingPropTypes","createSpacingClasses","ProgressIndicatorCircular","ProgressIndicatorLinear","format","ProgressIndicator","PureComponent","constructor","args","_defineProperty","_listenForPropChanges","completeTimeout","setTimeout","setState","complete","props","on_complete","fadeOutTimeout","getDerivedStateFromProps","state","visible","progress","parseFloat","undefined","componentWillUnmount","clearTimeout","render","defaultProps","context","getTranslation","type","size","no_animation","label","indicator_label","label_direction","show_label","className","class","_className","children","title","_progress","_visible","_complete","attributes","_objectWithoutProperties","_excluded","params","_objectSpread","indicatorLabel","progressTitle","formatProgress","createElement","_extends","onComplete","callOnCompleteHandler","section_style","section_spacing","process","env","NODE_ENV","propTypes","oneOfType","string","bool","oneOf","number","node","func","decimals","percent","_supportsSpacingProps"],"sources":["../../../../src/components/progress-indicator/ProgressIndicator.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n isTrue,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n extendPropsWithContextInClassComponent,\n} from '../../shared/component-helper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport ProgressIndicatorCircular from './ProgressIndicatorCircular'\nimport ProgressIndicatorLinear from './ProgressIndicatorLinear'\nimport { format } from '../number-format/NumberUtils'\n\nexport default class ProgressIndicator extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n visible: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n type: PropTypes.oneOf(['circular', 'linear']),\n no_animation: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n size: PropTypes.oneOf(['default', 'small', 'medium', 'large', 'huge']),\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.node,\n label_direction: PropTypes.string,\n show_label: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n indicator_label: PropTypes.string,\n section_style: PropTypes.string,\n section_spacing: PropTypes.string,\n title: PropTypes.string,\n\n ...spacingPropTypes,\n\n class: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n on_complete: PropTypes.func,\n }\n\n static defaultProps = {\n visible: true,\n type: 'circular',\n no_animation: false,\n size: 'default',\n progress: null,\n label: null,\n label_direction: 'horizontal',\n show_label: false,\n indicator_label: null,\n section_style: null,\n section_spacing: null,\n title: null,\n class: null,\n className: null,\n children: null,\n\n on_complete: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (state._listenForPropChanges) {\n state.visible = isTrue(props.visible)\n if (state.visible) {\n state.complete = false\n }\n state.progress =\n parseFloat(props.progress) > -1 ? props.progress : undefined\n }\n state._listenForPropChanges = true\n return state\n }\n\n state = {\n _listenForPropChanges: true,\n }\n\n componentWillUnmount() {\n clearTimeout(this.completeTimeout)\n clearTimeout(this.fadeOutTimeout)\n }\n\n callOnCompleteHandler = () => {\n this.completeTimeout = setTimeout(() => {\n this.setState({\n complete: true,\n })\n if (typeof this.props.on_complete === 'function') {\n this.fadeOutTimeout = setTimeout(() => {\n dispatchCustomElementEvent(this, 'on_complete')\n }, 600) // wait for CSS fade out, defined in \"progress-indicator-fade-out\"\n }\n }, 200)\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n ProgressIndicator.defaultProps,\n this.context.getTranslation(this.props).ProgressIndicator,\n this.context.ProgressIndicator\n )\n\n const {\n type,\n size,\n no_animation,\n on_complete,\n label,\n indicator_label,\n label_direction,\n show_label,\n className,\n class: _className,\n children,\n title,\n progress: _progress, //eslint-disable-line\n visible: _visible, //eslint-disable-line\n complete: _complete, //eslint-disable-line\n ...attributes\n } = props\n\n const { progress, visible, complete } = this.state\n\n const params = { ...attributes }\n\n const indicatorLabel =\n label || children || (isTrue(show_label) && indicator_label)\n\n const progressTitle = title || formatProgress(progress)\n\n validateDOMAttributes(this.props, params)\n\n return (\n <div\n className={classnames(\n 'dnb-progress-indicator',\n visible && 'dnb-progress-indicator--visible',\n complete && 'dnb-progress-indicator--complete',\n type === 'linear' && 'dnb-progress-indicator--full-width',\n label_direction && `dnb-progress-indicator--${label_direction}`,\n isTrue(no_animation) && 'dnb-progress-indicator--no-animation',\n createSpacingClasses(props),\n className,\n _className\n )}\n {...params}\n >\n {type === 'circular' && (\n <ProgressIndicatorCircular\n size={size}\n progress={progress}\n visible={visible}\n complete={complete}\n onComplete={on_complete}\n callOnCompleteHandler={this.callOnCompleteHandler}\n title={progressTitle}\n />\n )}\n {type === 'linear' && (\n <ProgressIndicatorLinear\n size={size}\n progress={progress}\n visible={visible}\n complete={complete}\n onComplete={on_complete}\n callOnCompleteHandler={this.callOnCompleteHandler}\n title={progressTitle}\n />\n )}\n {indicatorLabel && (\n <div className=\"dnb-progress-indicator__label\">\n <p className=\"dnb-p\">{indicatorLabel}</p>\n </div>\n )}\n </div>\n )\n }\n}\n\nfunction formatProgress(progress) {\n if (parseFloat(progress) > -1) {\n return format(progress, {\n decimals: 2,\n percent: true,\n })\n }\n return null\n}\n\nProgressIndicator._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProgressIndicator.js","names":["React","PropTypes","classnames","Context","isTrue","validateDOMAttributes","dispatchCustomElementEvent","extendPropsWithContextInClassComponent","spacingPropTypes","createSpacingClasses","ProgressIndicatorCircular","ProgressIndicatorLinear","format","ProgressIndicator","PureComponent","constructor","args","_defineProperty","_listenForPropChanges","completeTimeout","setTimeout","setState","complete","props","on_complete","fadeOutTimeout","getDerivedStateFromProps","state","visible","progress","parseFloat","undefined","componentWillUnmount","clearTimeout","render","defaultProps","context","getTranslation","type","size","no_animation","label","indicator_label","label_direction","show_label","className","class","_className","children","title","_progress","_visible","_complete","attributes","_objectWithoutProperties","_excluded","params","_objectSpread","indicatorLabel","progressTitle","formatProgress","createElement","_extends","onComplete","callOnCompleteHandler","section_style","section_spacing","process","env","NODE_ENV","propTypes","oneOfType","string","bool","oneOf","number","node","func","decimals","percent","_supportsSpacingProps"],"sources":["../../../../src/components/progress-indicator/ProgressIndicator.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n isTrue,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n extendPropsWithContextInClassComponent,\n} from '../../shared/component-helper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport ProgressIndicatorCircular from './ProgressIndicatorCircular'\nimport ProgressIndicatorLinear from './ProgressIndicatorLinear'\nimport { format } from '../number-format/NumberUtils'\n\nexport default class ProgressIndicator extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n visible: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n type: PropTypes.oneOf(['circular', 'linear']),\n no_animation: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n size: PropTypes.oneOf(['default', 'small', 'medium', 'large', 'huge']),\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.node,\n label_direction: PropTypes.string,\n show_label: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n indicator_label: PropTypes.string,\n section_style: PropTypes.string,\n section_spacing: PropTypes.string,\n title: PropTypes.string,\n\n ...spacingPropTypes,\n\n class: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n on_complete: PropTypes.func,\n }\n\n static defaultProps = {\n visible: true,\n type: 'circular',\n no_animation: false,\n size: 'default',\n progress: null,\n label: null,\n label_direction: 'horizontal',\n show_label: false,\n indicator_label: null,\n section_style: null,\n section_spacing: null,\n title: null,\n class: null,\n className: null,\n children: null,\n\n on_complete: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (state._listenForPropChanges) {\n state.visible = isTrue(props.visible)\n if (state.visible) {\n state.complete = false\n }\n state.progress =\n parseFloat(props.progress) > -1 ? props.progress : undefined\n }\n state._listenForPropChanges = true\n return state\n }\n\n state = {\n _listenForPropChanges: true,\n }\n\n componentWillUnmount() {\n clearTimeout(this.completeTimeout)\n clearTimeout(this.fadeOutTimeout)\n }\n\n callOnCompleteHandler = () => {\n this.completeTimeout = setTimeout(() => {\n this.setState({\n complete: true,\n })\n if (typeof this.props.on_complete === 'function') {\n this.fadeOutTimeout = setTimeout(() => {\n dispatchCustomElementEvent(this, 'on_complete')\n }, 600) // wait for CSS fade out, defined in \"progress-indicator-fade-out\"\n }\n }, 200)\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n ProgressIndicator.defaultProps,\n this.context.getTranslation(this.props).ProgressIndicator,\n this.context.ProgressIndicator\n )\n\n const {\n type,\n size,\n no_animation,\n on_complete,\n label,\n indicator_label,\n label_direction,\n show_label,\n className,\n class: _className,\n children,\n title,\n progress: _progress, // eslint-disable-line\n visible: _visible, // eslint-disable-line\n complete: _complete, // eslint-disable-line\n ...attributes\n } = props\n\n const { progress, visible, complete } = this.state\n\n const params = { ...attributes }\n\n const indicatorLabel =\n label || children || (isTrue(show_label) && indicator_label)\n\n const progressTitle = title || formatProgress(progress)\n\n validateDOMAttributes(this.props, params)\n\n return (\n <span\n className={classnames(\n 'dnb-progress-indicator',\n visible && 'dnb-progress-indicator--visible',\n complete && 'dnb-progress-indicator--complete',\n type === 'linear' && 'dnb-progress-indicator--full-width',\n label_direction && `dnb-progress-indicator--${label_direction}`,\n size && `dnb-progress-indicator--${size}`,\n isTrue(no_animation) && 'dnb-progress-indicator--no-animation',\n createSpacingClasses(props),\n className,\n _className\n )}\n {...params}\n >\n {type === 'circular' && (\n <ProgressIndicatorCircular\n size={size}\n progress={progress}\n visible={visible}\n complete={complete}\n onComplete={on_complete}\n callOnCompleteHandler={this.callOnCompleteHandler}\n title={progressTitle}\n />\n )}\n {type === 'linear' && (\n <ProgressIndicatorLinear\n size={size}\n progress={progress}\n visible={visible}\n complete={complete}\n onComplete={on_complete}\n callOnCompleteHandler={this.callOnCompleteHandler}\n title={progressTitle}\n />\n )}\n {indicatorLabel && (\n <span className=\"dnb-progress-indicator__label dnb-p\">\n {indicatorLabel}\n </span>\n )}\n </span>\n )\n }\n}\n\nfunction formatProgress(progress) {\n if (parseFloat(progress) > -1) {\n return format(progress, {\n decimals: 2,\n percent: true,\n })\n }\n return null\n}\n\nProgressIndicator._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -139,7 +139,7 @@ export default class ProgressIndicatorCircular extends React.PureComponent {
139
139
  params['aria-busy'] = true;
140
140
  }
141
141
  validateDOMAttributes(this.props, params);
142
- return React.createElement("div", _extends({
142
+ return React.createElement("span", _extends({
143
143
  className: classnames('dnb-progress-indicator__circular', size && `dnb-progress-indicator__circular--${size}`, hasProgressValue && 'dnb-progress-indicator__circular--has-progress-value')
144
144
  }, params), _Circle || (_Circle = React.createElement(Circle, {
145
145
  className: "dnb-progress-indicator__circular__line light paused"
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressIndicatorCircular.js","names":["React","PropTypes","classnames","validateDOMAttributes","IS_EDGE","ProgressIndicatorCircular","PureComponent","getDerivedStateFromProps","props","state","progress","parseFloat","visible","complete","constructor","useAnimationFrame","onComplete","_refDark","createRef","_refLight","animate","componentDidMount","startAnimationFirstTime","componentWillUnmount","stopAnimation","setState","startupTimeout","clearTimeout","setTimeout","startAnimation","current","callOnCompleteHandler","element","animateOnStart","callback","min","max","start","ms","prog","setProg","completeCalled","stopNextRound","step","timestamp","style","Math","round","ceil","window","requestAnimationFrame","render","_this$props","size","maxOffset","title","_progress","rest","_objectWithoutProperties","_excluded","strokeDashoffset","hasProgressValue","params","_objectSpread","role","createElement","_extends","className","_Circle","Circle","ref","_defineProperty","process","env","NODE_ENV","propTypes","string","bool","oneOfType","number","func","forwardRef","_ref","_excluded2","viewBox","shapeRendering","_circle","fill","strokeWidth","cx","cy","r","isRequired"],"sources":["../../../../src/components/progress-indicator/ProgressIndicatorCircular.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport { validateDOMAttributes } from '../../shared/component-helper'\nimport { IS_EDGE } from '../../shared/helpers'\n\nexport default class ProgressIndicatorCircular extends React.PureComponent {\n static propTypes = {\n size: PropTypes.string,\n visible: PropTypes.bool,\n complete: PropTypes.bool,\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxOffset: PropTypes.number,\n onComplete: PropTypes.func,\n callOnCompleteHandler: PropTypes.func,\n title: PropTypes.string,\n }\n static defaultProps = {\n size: null,\n visible: true,\n complete: false,\n progress: null,\n maxOffset: 88,\n onComplete: null,\n callOnCompleteHandler: null,\n title: null,\n }\n static getDerivedStateFromProps(props, state) {\n state.progress = parseFloat(props.progress)\n state.visible = props.visible\n state.complete = props.complete\n return state\n }\n constructor(props) {\n super(props)\n this.useAnimationFrame =\n typeof props.onComplete === 'function' || IS_EDGE\n this._refDark = React.createRef()\n this._refLight = React.createRef()\n this.state = { animate: false }\n }\n componentDidMount() {\n if (this.useAnimationFrame) {\n this.startAnimationFirstTime()\n }\n }\n componentWillUnmount() {\n this.stopAnimation()\n }\n stopAnimation() {\n this.setState({ animate: false })\n if (this.startupTimeout) {\n clearTimeout(this.startupTimeout)\n }\n }\n startAnimationFirstTime() {\n this.setState({ animate: false })\n this.startupTimeout = setTimeout(() => this.startAnimation(), 300)\n }\n startAnimation() {\n this.setState({ animate: true }, () => {\n if (this._refDark.current) {\n this.animate(\n this._refDark.current,\n true,\n this.props.callOnCompleteHandler\n )\n }\n if (this._refLight.current) {\n this.animate(this._refLight.current, false)\n }\n })\n }\n animate(element, animateOnStart = true, callback = null) {\n const min = 1\n const max = 88\n let start = 0,\n ms = 0,\n prog = max,\n setProg = animateOnStart,\n animate = true,\n completeCalled = false,\n stopNextRound = false\n\n const step = (timestamp) => {\n if (!start) {\n start = timestamp\n }\n\n // milliseconds\n ms = timestamp - start\n\n if (animate) {\n if (!this.state.visible && prog < 5) {\n prog = min\n }\n if (setProg) {\n element.style['stroke-dashoffset'] = prog\n } else if (!animateOnStart) {\n element.style['stroke-dashoffset'] = max\n }\n }\n\n // if complete\n if (stopNextRound) {\n animate = false\n if (!completeCalled) {\n completeCalled = true\n if (animateOnStart && typeof callback === 'function') {\n callback()\n }\n } else if (this.state.visible && ms % 1e3 > 950) {\n // this.startAnimationFirstTime() // will not start completely from scratch\n stopNextRound = false\n }\n } else {\n // make sure we stop next round\n stopNextRound = !this.state.visible && prog === min\n animate = true\n completeCalled = false\n }\n\n // since we have 1sec as duration, and we want always a max of 1000ms\n prog = Math.round(max - (max / 1e3) * (ms % 1e3))\n\n // calc if we want to animate\n setProg = animateOnStart\n ? Math.ceil(ms / 1e3) % 2 === 1 || ms === 0\n : Math.ceil(ms / 1e3) % 2 === 0 && ms !== 0\n\n if (this.state.animate) {\n window.requestAnimationFrame(step)\n }\n }\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n window.requestAnimationFrame(step)\n }\n }\n render() {\n const {\n size,\n maxOffset,\n title,\n progress: _progress, // eslint-disable-line\n visible, // eslint-disable-line\n complete, // eslint-disable-line\n onComplete, // eslint-disable-line\n callOnCompleteHandler, // eslint-disable-line\n\n ...rest\n } = this.props\n\n const { progress } = this.state\n\n const strokeDashoffset = maxOffset - (maxOffset / 100) * progress\n const hasProgressValue = parseFloat(progress) > -1\n\n const params = { ...rest }\n\n if (hasProgressValue) {\n params.role = 'progressbar'\n params['aria-label'] = title\n params['title'] = title\n } else {\n params.role = 'alert'\n params['aria-busy'] = true\n }\n\n validateDOMAttributes(this.props, params)\n\n return (\n <div\n className={classnames(\n 'dnb-progress-indicator__circular',\n size && `dnb-progress-indicator__circular--${size}`,\n hasProgressValue &&\n 'dnb-progress-indicator__circular--has-progress-value'\n )}\n {...params}\n >\n {/* The first one is the background line */}\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'light',\n 'paused'\n )}\n />\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'dark',\n 'dark',\n hasProgressValue || this.useAnimationFrame ? 'paused' : null\n )}\n style={hasProgressValue ? { strokeDashoffset } : {}}\n ref={this._refDark}\n />\n {!hasProgressValue && (\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'light',\n this.useAnimationFrame ? 'paused' : null\n )}\n ref={this._refLight}\n />\n )}\n </div>\n )\n }\n}\n\nconst Circle = React.forwardRef(({ className, ...rest }, ref) => {\n return (\n <svg\n className={className}\n viewBox=\"0 0 32 32\"\n shapeRendering=\"geometricPrecision\"\n ref={ref}\n {...rest}\n >\n <circle\n className=\"dnb-progress-indicator__circular__circle\"\n fill=\"none\"\n strokeWidth=\"4\"\n cx=\"16\"\n cy=\"16\"\n r=\"14\"\n />\n </svg>\n )\n})\nCircle.propTypes = {\n className: PropTypes.string.isRequired,\n}\n// Circle.defaultProps = {\n// }\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProgressIndicatorCircular.js","names":["React","PropTypes","classnames","validateDOMAttributes","IS_EDGE","ProgressIndicatorCircular","PureComponent","getDerivedStateFromProps","props","state","progress","parseFloat","visible","complete","constructor","useAnimationFrame","onComplete","_refDark","createRef","_refLight","animate","componentDidMount","startAnimationFirstTime","componentWillUnmount","stopAnimation","setState","startupTimeout","clearTimeout","setTimeout","startAnimation","current","callOnCompleteHandler","element","animateOnStart","callback","min","max","start","ms","prog","setProg","completeCalled","stopNextRound","step","timestamp","style","Math","round","ceil","window","requestAnimationFrame","render","_this$props","size","maxOffset","title","_progress","rest","_objectWithoutProperties","_excluded","strokeDashoffset","hasProgressValue","params","_objectSpread","role","createElement","_extends","className","_Circle","Circle","ref","_defineProperty","process","env","NODE_ENV","propTypes","string","bool","oneOfType","number","func","forwardRef","_ref","_excluded2","viewBox","shapeRendering","_circle","fill","strokeWidth","cx","cy","r","isRequired"],"sources":["../../../../src/components/progress-indicator/ProgressIndicatorCircular.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport { validateDOMAttributes } from '../../shared/component-helper'\nimport { IS_EDGE } from '../../shared/helpers'\n\nexport default class ProgressIndicatorCircular extends React.PureComponent {\n static propTypes = {\n size: PropTypes.string,\n visible: PropTypes.bool,\n complete: PropTypes.bool,\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxOffset: PropTypes.number,\n onComplete: PropTypes.func,\n callOnCompleteHandler: PropTypes.func,\n title: PropTypes.string,\n }\n static defaultProps = {\n size: null,\n visible: true,\n complete: false,\n progress: null,\n maxOffset: 88,\n onComplete: null,\n callOnCompleteHandler: null,\n title: null,\n }\n static getDerivedStateFromProps(props, state) {\n state.progress = parseFloat(props.progress)\n state.visible = props.visible\n state.complete = props.complete\n return state\n }\n constructor(props) {\n super(props)\n this.useAnimationFrame =\n typeof props.onComplete === 'function' || IS_EDGE\n this._refDark = React.createRef()\n this._refLight = React.createRef()\n this.state = { animate: false }\n }\n componentDidMount() {\n if (this.useAnimationFrame) {\n this.startAnimationFirstTime()\n }\n }\n componentWillUnmount() {\n this.stopAnimation()\n }\n stopAnimation() {\n this.setState({ animate: false })\n if (this.startupTimeout) {\n clearTimeout(this.startupTimeout)\n }\n }\n startAnimationFirstTime() {\n this.setState({ animate: false })\n this.startupTimeout = setTimeout(() => this.startAnimation(), 300)\n }\n startAnimation() {\n this.setState({ animate: true }, () => {\n if (this._refDark.current) {\n this.animate(\n this._refDark.current,\n true,\n this.props.callOnCompleteHandler\n )\n }\n if (this._refLight.current) {\n this.animate(this._refLight.current, false)\n }\n })\n }\n animate(element, animateOnStart = true, callback = null) {\n const min = 1\n const max = 88\n let start = 0,\n ms = 0,\n prog = max,\n setProg = animateOnStart,\n animate = true,\n completeCalled = false,\n stopNextRound = false\n\n const step = (timestamp) => {\n if (!start) {\n start = timestamp\n }\n\n // milliseconds\n ms = timestamp - start\n\n if (animate) {\n if (!this.state.visible && prog < 5) {\n prog = min\n }\n if (setProg) {\n element.style['stroke-dashoffset'] = prog\n } else if (!animateOnStart) {\n element.style['stroke-dashoffset'] = max\n }\n }\n\n // if complete\n if (stopNextRound) {\n animate = false\n if (!completeCalled) {\n completeCalled = true\n if (animateOnStart && typeof callback === 'function') {\n callback()\n }\n } else if (this.state.visible && ms % 1e3 > 950) {\n // this.startAnimationFirstTime() // will not start completely from scratch\n stopNextRound = false\n }\n } else {\n // make sure we stop next round\n stopNextRound = !this.state.visible && prog === min\n animate = true\n completeCalled = false\n }\n\n // since we have 1sec as duration, and we want always a max of 1000ms\n prog = Math.round(max - (max / 1e3) * (ms % 1e3))\n\n // calc if we want to animate\n setProg = animateOnStart\n ? Math.ceil(ms / 1e3) % 2 === 1 || ms === 0\n : Math.ceil(ms / 1e3) % 2 === 0 && ms !== 0\n\n if (this.state.animate) {\n window.requestAnimationFrame(step)\n }\n }\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n window.requestAnimationFrame(step)\n }\n }\n render() {\n const {\n size,\n maxOffset,\n title,\n progress: _progress, // eslint-disable-line\n visible, // eslint-disable-line\n complete, // eslint-disable-line\n onComplete, // eslint-disable-line\n callOnCompleteHandler, // eslint-disable-line\n\n ...rest\n } = this.props\n\n const { progress } = this.state\n\n const strokeDashoffset = maxOffset - (maxOffset / 100) * progress\n const hasProgressValue = parseFloat(progress) > -1\n\n const params = { ...rest }\n\n if (hasProgressValue) {\n params.role = 'progressbar'\n params['aria-label'] = title\n params['title'] = title\n } else {\n params.role = 'alert'\n params['aria-busy'] = true\n }\n\n validateDOMAttributes(this.props, params)\n\n return (\n <span\n className={classnames(\n 'dnb-progress-indicator__circular',\n size && `dnb-progress-indicator__circular--${size}`,\n hasProgressValue &&\n 'dnb-progress-indicator__circular--has-progress-value'\n )}\n {...params}\n >\n {/* The first one is the background line */}\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'light',\n 'paused'\n )}\n />\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'dark',\n 'dark',\n hasProgressValue || this.useAnimationFrame ? 'paused' : null\n )}\n style={hasProgressValue ? { strokeDashoffset } : {}}\n ref={this._refDark}\n />\n {!hasProgressValue && (\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'light',\n this.useAnimationFrame ? 'paused' : null\n )}\n ref={this._refLight}\n />\n )}\n </span>\n )\n }\n}\n\nconst Circle = React.forwardRef(({ className, ...rest }, ref) => {\n return (\n <svg\n className={className}\n viewBox=\"0 0 32 32\"\n shapeRendering=\"geometricPrecision\"\n ref={ref}\n {...rest}\n >\n <circle\n className=\"dnb-progress-indicator__circular__circle\"\n fill=\"none\"\n strokeWidth=\"4\"\n cx=\"16\"\n cy=\"16\"\n r=\"14\"\n />\n </svg>\n )\n})\nCircle.propTypes = {\n className: PropTypes.string.isRequired,\n}\n// Circle.defaultProps = {\n// }\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- var _div;
4
+ var _span;
5
5
  const _excluded = ["size", "title", "progress", "visible", "complete", "onComplete", "callOnCompleteHandler"];
6
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -55,14 +55,14 @@ export default class ProgressIndicatorLinear extends React.PureComponent {
55
55
  params['aria-busy'] = true;
56
56
  }
57
57
  validateDOMAttributes(this.props, params);
58
- return React.createElement("div", _extends({
58
+ return React.createElement("span", _extends({
59
59
  className: 'dnb-progress-indicator__linear' + (size ? ` dnb-progress-indicator__linear--${size}` : "")
60
- }, params), React.createElement("div", {
60
+ }, params), React.createElement("span", {
61
61
  className: "dnb-progress-indicator__linear__bar " + (hasProgressValue ? 'dnb-progress-indicator__linear__bar-transition' : 'dnb-progress-indicator__linear__bar1-animation'),
62
62
  style: hasProgressValue ? {
63
63
  transform
64
64
  } : {}
65
- }), !hasProgressValue && (_div || (_div = React.createElement("div", {
65
+ }), !hasProgressValue && (_span || (_span = React.createElement("span", {
66
66
  className: "dnb-progress-indicator__linear__bar dnb-progress-indicator__linear__bar2-animation"
67
67
  }))));
68
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressIndicatorLinear.js","names":["React","PropTypes","validateDOMAttributes","isFn","func","ProgressIndicatorLinear","PureComponent","getDerivedStateFromProps","props","state","progress","parseFloat","visible","complete","constructor","onCompleteIsFn","onComplete","callOnCompleteHandler","componentDidUpdate","prevProps","render","_this$props","size","title","_progress","rest","_objectWithoutProperties","_excluded","hasProgressValue","transform","params","_objectSpread","role","createElement","_extends","className","style","_div","_defineProperty","process","env","NODE_ENV","propTypes","string","bool","oneOfType","number"],"sources":["../../../../src/components/progress-indicator/ProgressIndicatorLinear.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport { validateDOMAttributes } from '../../shared/component-helper'\n\nconst isFn = (func) => {\n return typeof func === 'function'\n}\n\nexport default class ProgressIndicatorLinear extends React.PureComponent {\n static propTypes = {\n size: PropTypes.string,\n visible: PropTypes.bool,\n complete: PropTypes.bool,\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onComplete: PropTypes.func,\n callOnCompleteHandler: PropTypes.func,\n title: PropTypes.string,\n }\n static defaultProps = {\n size: null,\n visible: true,\n complete: false,\n progress: null,\n onComplete: null,\n callOnCompleteHandler: null,\n title: null,\n }\n static getDerivedStateFromProps(props, state) {\n state.progress = parseFloat(props.progress)\n state.visible = props.visible\n state.complete = props.complete\n return state\n }\n constructor(props) {\n super(props)\n this.onCompleteIsFn =\n isFn(this.props.onComplete) && isFn(this.props.callOnCompleteHandler)\n this.state = {}\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.onCompleteIsFn &&\n !this.props.visible &&\n this.props.visible !== prevProps.visible\n ) {\n this.props.callOnCompleteHandler()\n }\n }\n\n render() {\n const {\n size,\n title,\n progress: _progress, // eslint-disable-line\n visible, // eslint-disable-line\n complete, // eslint-disable-line\n onComplete, // eslint-disable-line\n callOnCompleteHandler, // eslint-disable-line\n\n ...rest\n } = this.props\n\n const { progress } = this.state\n\n const hasProgressValue = parseFloat(progress) > -1\n\n const transform = `translateX(${(progress || 0) - 100}%)`\n\n const params = { ...rest }\n\n if (hasProgressValue) {\n params.role = 'progressbar'\n params['aria-label'] = title\n params['title'] = title\n } else {\n params.role = 'alert'\n params['aria-busy'] = true\n }\n\n validateDOMAttributes(this.props, params)\n\n return (\n <div\n className={classnames(\n 'dnb-progress-indicator__linear',\n size && `dnb-progress-indicator__linear--${size}`\n )}\n {...params}\n >\n <div\n className={classnames(\n 'dnb-progress-indicator__linear__bar',\n hasProgressValue &&\n 'dnb-progress-indicator__linear__bar-transition',\n !hasProgressValue &&\n 'dnb-progress-indicator__linear__bar1-animation'\n )}\n style={hasProgressValue ? { transform } : {}}\n />\n {!hasProgressValue && (\n <div\n className={classnames(\n 'dnb-progress-indicator__linear__bar',\n 'dnb-progress-indicator__linear__bar2-animation'\n )}\n />\n )}\n </div>\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProgressIndicatorLinear.js","names":["React","PropTypes","validateDOMAttributes","isFn","func","ProgressIndicatorLinear","PureComponent","getDerivedStateFromProps","props","state","progress","parseFloat","visible","complete","constructor","onCompleteIsFn","onComplete","callOnCompleteHandler","componentDidUpdate","prevProps","render","_this$props","size","title","_progress","rest","_objectWithoutProperties","_excluded","hasProgressValue","transform","params","_objectSpread","role","createElement","_extends","className","style","_span","_defineProperty","process","env","NODE_ENV","propTypes","string","bool","oneOfType","number"],"sources":["../../../../src/components/progress-indicator/ProgressIndicatorLinear.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport { validateDOMAttributes } from '../../shared/component-helper'\n\nconst isFn = (func) => {\n return typeof func === 'function'\n}\n\nexport default class ProgressIndicatorLinear extends React.PureComponent {\n static propTypes = {\n size: PropTypes.string,\n visible: PropTypes.bool,\n complete: PropTypes.bool,\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onComplete: PropTypes.func,\n callOnCompleteHandler: PropTypes.func,\n title: PropTypes.string,\n }\n static defaultProps = {\n size: null,\n visible: true,\n complete: false,\n progress: null,\n onComplete: null,\n callOnCompleteHandler: null,\n title: null,\n }\n static getDerivedStateFromProps(props, state) {\n state.progress = parseFloat(props.progress)\n state.visible = props.visible\n state.complete = props.complete\n return state\n }\n constructor(props) {\n super(props)\n this.onCompleteIsFn =\n isFn(this.props.onComplete) && isFn(this.props.callOnCompleteHandler)\n this.state = {}\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.onCompleteIsFn &&\n !this.props.visible &&\n this.props.visible !== prevProps.visible\n ) {\n this.props.callOnCompleteHandler()\n }\n }\n\n render() {\n const {\n size,\n title,\n progress: _progress, // eslint-disable-line\n visible, // eslint-disable-line\n complete, // eslint-disable-line\n onComplete, // eslint-disable-line\n callOnCompleteHandler, // eslint-disable-line\n\n ...rest\n } = this.props\n\n const { progress } = this.state\n\n const hasProgressValue = parseFloat(progress) > -1\n\n const transform = `translateX(${(progress || 0) - 100}%)`\n\n const params = { ...rest }\n\n if (hasProgressValue) {\n params.role = 'progressbar'\n params['aria-label'] = title\n params['title'] = title\n } else {\n params.role = 'alert'\n params['aria-busy'] = true\n }\n\n validateDOMAttributes(this.props, params)\n\n return (\n <span\n className={classnames(\n 'dnb-progress-indicator__linear',\n size && `dnb-progress-indicator__linear--${size}`\n )}\n {...params}\n >\n <span\n className={classnames(\n 'dnb-progress-indicator__linear__bar',\n hasProgressValue &&\n 'dnb-progress-indicator__linear__bar-transition',\n !hasProgressValue &&\n 'dnb-progress-indicator__linear__bar1-animation'\n )}\n style={hasProgressValue ? { transform } : {}}\n />\n {!hasProgressValue && (\n <span\n className={classnames(\n 'dnb-progress-indicator__linear__bar',\n 'dnb-progress-indicator__linear__bar2-animation'\n )}\n />\n )}\n </span>\n )\n }\n}\n"],"mappings":"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"}
@@ -36,10 +36,13 @@
36
36
  }
37
37
 
38
38
  .dnb-progress-indicator--horizontal .dnb-progress-indicator__label {
39
- margin: 0 1rem;
39
+ padding-left: 1rem;
40
+ }
41
+ .dnb-progress-indicator--horizontal.dnb-progress-indicator--small .dnb-progress-indicator__label {
42
+ padding-left: 0.5rem;
40
43
  }
41
44
  .dnb-progress-indicator--vertical .dnb-progress-indicator__label {
42
- margin-top: 0.5rem;
45
+ padding-top: 0.5rem;
43
46
  }
44
47
  .dnb-progress-indicator__circular {
45
48
  position: relative;