@dnb/eufemia 10.12.0 → 10.13.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 (582) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cjs/components/accordion/Accordion.js +1 -0
  3. package/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/cjs/components/accordion/AccordionGroup.js +1 -0
  5. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  6. package/cjs/components/accordion/AccordionHeader.js +5 -15
  7. package/cjs/components/accordion/AccordionHeader.js.map +1 -1
  8. package/cjs/components/accordion/style/dnb-accordion.css +2 -2
  9. package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
  10. package/cjs/components/accordion/style/dnb-accordion.scss +3 -8
  11. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
  12. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  13. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
  14. package/cjs/components/anchor/Anchor.js.map +1 -1
  15. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  16. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  17. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
  18. package/cjs/components/autocomplete/Autocomplete.d.ts +2 -2
  19. package/cjs/components/autocomplete/Autocomplete.js +41 -16
  20. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  21. package/cjs/components/breadcrumb/Breadcrumb.js +1 -0
  22. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  23. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  24. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
  25. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  26. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
  27. package/cjs/components/card/Card.js +2 -2
  28. package/cjs/components/card/Card.js.map +1 -1
  29. package/cjs/components/dialog/Dialog.js +1 -0
  30. package/cjs/components/dialog/Dialog.js.map +1 -1
  31. package/cjs/components/dialog/DialogContent.js +1 -0
  32. package/cjs/components/dialog/DialogContent.js.map +1 -1
  33. package/cjs/components/dialog/parts/DialogAction.js +1 -0
  34. package/cjs/components/dialog/parts/DialogAction.js.map +1 -1
  35. package/cjs/components/drawer/Drawer.js +1 -0
  36. package/cjs/components/drawer/Drawer.js.map +1 -1
  37. package/cjs/components/drawer/DrawerContent.js +1 -0
  38. package/cjs/components/drawer/DrawerContent.js.map +1 -1
  39. package/cjs/components/drawer/parts/DrawerContentContext.js +1 -0
  40. package/cjs/components/drawer/parts/DrawerContentContext.js.map +1 -1
  41. package/cjs/components/flex/Container.js +6 -4
  42. package/cjs/components/flex/Container.js.map +1 -1
  43. package/cjs/components/flex/utils.js +2 -2
  44. package/cjs/components/flex/utils.js.map +1 -1
  45. package/cjs/components/form-row/style/dnb-form-row.scss +1 -1
  46. package/cjs/components/icon/style/dnb-icon.scss +1 -1
  47. package/cjs/components/input-masked/InputMasked.d.ts +1 -1
  48. package/cjs/components/input-masked/MultiInputMask.d.ts +3 -3
  49. package/cjs/components/input-masked/MultiInputMask.js +2 -1
  50. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  51. package/cjs/components/input-masked/hooks/useHandleCursorPosition.js +1 -0
  52. package/cjs/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
  53. package/cjs/components/input-masked/hooks/useMultiInputValues.js +1 -0
  54. package/cjs/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  55. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  56. package/cjs/components/number-format/useNumberFormat.js +1 -0
  57. package/cjs/components/number-format/useNumberFormat.js.map +1 -1
  58. package/cjs/components/pagination/PaginationBar.js +1 -0
  59. package/cjs/components/pagination/PaginationBar.js.map +1 -1
  60. package/cjs/components/step-indicator/StepIndicatorContext.js +1 -0
  61. package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
  62. package/cjs/components/step-indicator/StepIndicatorItem.js +3 -2
  63. package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
  64. package/cjs/components/step-indicator/StepIndicatorList.js +1 -0
  65. package/cjs/components/step-indicator/StepIndicatorList.js.map +1 -1
  66. package/cjs/components/step-indicator/StepIndicatorModal.js +1 -0
  67. package/cjs/components/step-indicator/StepIndicatorModal.js.map +1 -1
  68. package/cjs/components/step-indicator/StepIndicatorSidebar.js +1 -0
  69. package/cjs/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  70. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +1 -0
  71. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  72. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
  73. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  74. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
  75. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
  76. package/cjs/components/tooltip/TooltipWithEvents.js.map +1 -1
  77. package/cjs/components/upload/UploadContext.js +1 -0
  78. package/cjs/components/upload/UploadContext.js.map +1 -1
  79. package/cjs/components/upload/UploadFileInput.js +1 -0
  80. package/cjs/components/upload/UploadFileInput.js.map +1 -1
  81. package/cjs/components/upload/UploadFileListCell.js +1 -0
  82. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  83. package/cjs/elements/lists/Dl.d.ts +1 -1
  84. package/cjs/elements/lists/Dl.js.map +1 -1
  85. package/cjs/elements/typography/style/dnb-typography.scss +1 -1
  86. package/cjs/elements/typography/style/typography-mixins.scss +2 -2
  87. package/cjs/extensions/forms/DataContext/At/At.js +1 -0
  88. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  89. package/cjs/extensions/forms/DataContext/Provider/Provider.js +5 -3
  90. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  91. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
  92. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  93. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +5 -3
  94. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  95. package/cjs/extensions/forms/Field/Boolean/Boolean.js +3 -2
  96. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  97. package/cjs/extensions/forms/Field/Currency/Currency.js +3 -2
  98. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  99. package/cjs/extensions/forms/Field/Date/Date.js +2 -1
  100. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  101. package/cjs/extensions/forms/Field/Email/Email.js +5 -3
  102. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  103. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -3
  104. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  105. package/cjs/extensions/forms/Field/Number/Number.js +3 -2
  106. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  107. package/cjs/extensions/forms/Field/Option/Option.js +1 -1
  108. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  109. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +5 -3
  110. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  111. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
  112. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +58 -18
  113. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  114. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -4
  115. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  116. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +12 -8
  117. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  118. package/cjs/extensions/forms/Field/Selection/Selection.js +29 -20
  119. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  120. package/cjs/extensions/forms/Field/String/String.js +10 -9
  121. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  122. package/cjs/extensions/forms/Field/Toggle/Toggle.js +5 -4
  123. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  124. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +1 -0
  125. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  126. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +1 -0
  127. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  128. package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
  129. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  130. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +3 -2
  131. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  132. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -1
  133. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  134. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +1 -0
  135. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  136. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +1 -0
  137. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  138. package/cjs/extensions/forms/StepsLayout/Step/Step.js +1 -0
  139. package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  140. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +3 -1
  141. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  142. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +3 -1
  143. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  144. package/cjs/extensions/forms/Value/Boolean/Boolean.js +1 -0
  145. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  146. package/cjs/extensions/forms/Value/Currency/Currency.js +3 -2
  147. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  148. package/cjs/extensions/forms/Value/Date/Date.js +3 -1
  149. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  150. package/cjs/extensions/forms/Value/Email/Email.js +3 -1
  151. package/cjs/extensions/forms/Value/Email/Email.js.map +1 -1
  152. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +3 -1
  153. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  154. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +3 -1
  155. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  156. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +1 -1
  157. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  158. package/cjs/extensions/forms/Visibility/Visibility.js +1 -0
  159. package/cjs/extensions/forms/Visibility/Visibility.js.map +1 -1
  160. package/cjs/extensions/forms/hooks/useDataValue.js +21 -17
  161. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  162. package/cjs/extensions/forms/types.js +6 -6
  163. package/cjs/extensions/forms/types.js.map +1 -1
  164. package/cjs/extensions/forms/utils/ajv.js +3 -2
  165. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  166. package/cjs/extensions/forms/utils/numbers.js +2 -2
  167. package/cjs/extensions/forms/utils/numbers.js.map +1 -1
  168. package/cjs/extensions/forms/utils/useWasChanged.js +8 -6
  169. package/cjs/extensions/forms/utils/useWasChanged.js.map +1 -1
  170. package/cjs/fragments/drawer-list/DrawerListHelpers.js +1 -1
  171. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  172. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  173. package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +1 -1
  174. package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
  175. package/cjs/shared/Eufemia.d.ts +1 -1
  176. package/cjs/shared/Eufemia.js +2 -2
  177. package/cjs/shared/Eufemia.js.map +1 -1
  178. package/cjs/style/dnb-ui-components.css +2 -2
  179. package/cjs/style/dnb-ui-components.min.css +1 -1
  180. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  181. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  182. package/cjs/style/themes/theme-sbanken/fonts.scss +5 -4
  183. package/cjs/style/themes/theme-sbanken/properties.js +2 -2
  184. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  185. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
  186. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  187. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +8 -7
  188. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  189. package/cjs/style/themes/theme-sbanken/theme-mapping.scss +2 -1
  190. package/cjs/style/themes/theme-ui/ui-theme-components.css +2 -2
  191. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  192. package/components/accordion/Accordion.js +2 -0
  193. package/components/accordion/Accordion.js.map +1 -1
  194. package/components/accordion/AccordionGroup.js +2 -0
  195. package/components/accordion/AccordionGroup.js.map +1 -1
  196. package/components/accordion/AccordionHeader.js +6 -15
  197. package/components/accordion/AccordionHeader.js.map +1 -1
  198. package/components/accordion/style/dnb-accordion.css +2 -2
  199. package/components/accordion/style/dnb-accordion.min.css +1 -1
  200. package/components/accordion/style/dnb-accordion.scss +3 -8
  201. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
  202. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  203. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
  204. package/components/anchor/Anchor.js.map +1 -1
  205. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  206. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  207. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
  208. package/components/autocomplete/Autocomplete.d.ts +2 -2
  209. package/components/autocomplete/Autocomplete.js +42 -17
  210. package/components/autocomplete/Autocomplete.js.map +1 -1
  211. package/components/breadcrumb/Breadcrumb.js +2 -0
  212. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  213. package/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  214. package/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
  215. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  216. package/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
  217. package/components/card/Card.js +2 -2
  218. package/components/card/Card.js.map +1 -1
  219. package/components/dialog/Dialog.js +2 -0
  220. package/components/dialog/Dialog.js.map +1 -1
  221. package/components/dialog/DialogContent.js +2 -0
  222. package/components/dialog/DialogContent.js.map +1 -1
  223. package/components/dialog/parts/DialogAction.js +2 -0
  224. package/components/dialog/parts/DialogAction.js.map +1 -1
  225. package/components/drawer/Drawer.js +2 -0
  226. package/components/drawer/Drawer.js.map +1 -1
  227. package/components/drawer/DrawerContent.js +2 -0
  228. package/components/drawer/DrawerContent.js.map +1 -1
  229. package/components/drawer/parts/DrawerContentContext.js +2 -0
  230. package/components/drawer/parts/DrawerContentContext.js.map +1 -1
  231. package/components/flex/Container.js +6 -4
  232. package/components/flex/Container.js.map +1 -1
  233. package/components/flex/utils.js +2 -2
  234. package/components/flex/utils.js.map +1 -1
  235. package/components/form-row/style/dnb-form-row.scss +1 -1
  236. package/components/icon/style/dnb-icon.scss +1 -1
  237. package/components/input-masked/InputMasked.d.ts +1 -1
  238. package/components/input-masked/MultiInputMask.d.ts +3 -3
  239. package/components/input-masked/MultiInputMask.js +3 -1
  240. package/components/input-masked/MultiInputMask.js.map +1 -1
  241. package/components/input-masked/hooks/useHandleCursorPosition.js +2 -0
  242. package/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
  243. package/components/input-masked/hooks/useMultiInputValues.js +2 -0
  244. package/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  245. package/components/number-format/NumberUtils.js.map +1 -1
  246. package/components/number-format/useNumberFormat.js +2 -0
  247. package/components/number-format/useNumberFormat.js.map +1 -1
  248. package/components/pagination/PaginationBar.js +2 -0
  249. package/components/pagination/PaginationBar.js.map +1 -1
  250. package/components/step-indicator/StepIndicatorContext.js +2 -0
  251. package/components/step-indicator/StepIndicatorContext.js.map +1 -1
  252. package/components/step-indicator/StepIndicatorItem.js +4 -2
  253. package/components/step-indicator/StepIndicatorItem.js.map +1 -1
  254. package/components/step-indicator/StepIndicatorList.js +2 -0
  255. package/components/step-indicator/StepIndicatorList.js.map +1 -1
  256. package/components/step-indicator/StepIndicatorModal.js +2 -0
  257. package/components/step-indicator/StepIndicatorModal.js.map +1 -1
  258. package/components/step-indicator/StepIndicatorSidebar.js +2 -0
  259. package/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  260. package/components/step-indicator/StepIndicatorTriggerButton.js +2 -0
  261. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  262. package/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
  263. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  264. package/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
  265. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
  266. package/components/tooltip/TooltipWithEvents.js.map +1 -1
  267. package/components/upload/UploadContext.js +2 -0
  268. package/components/upload/UploadContext.js.map +1 -1
  269. package/components/upload/UploadFileInput.js +2 -0
  270. package/components/upload/UploadFileInput.js.map +1 -1
  271. package/components/upload/UploadFileListCell.js +2 -0
  272. package/components/upload/UploadFileListCell.js.map +1 -1
  273. package/elements/lists/Dl.d.ts +1 -1
  274. package/elements/lists/Dl.js.map +1 -1
  275. package/elements/typography/style/dnb-typography.scss +1 -1
  276. package/elements/typography/style/typography-mixins.scss +2 -2
  277. package/es/components/accordion/Accordion.js +2 -0
  278. package/es/components/accordion/Accordion.js.map +1 -1
  279. package/es/components/accordion/AccordionGroup.js +2 -0
  280. package/es/components/accordion/AccordionGroup.js.map +1 -1
  281. package/es/components/accordion/AccordionHeader.js +6 -15
  282. package/es/components/accordion/AccordionHeader.js.map +1 -1
  283. package/es/components/accordion/style/dnb-accordion.css +2 -2
  284. package/es/components/accordion/style/dnb-accordion.min.css +1 -1
  285. package/es/components/accordion/style/dnb-accordion.scss +3 -8
  286. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
  287. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  288. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
  289. package/es/components/anchor/Anchor.js.map +1 -1
  290. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  291. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  292. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
  293. package/es/components/autocomplete/Autocomplete.d.ts +2 -2
  294. package/es/components/autocomplete/Autocomplete.js +42 -17
  295. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  296. package/es/components/breadcrumb/Breadcrumb.js +2 -0
  297. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  298. package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  299. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
  300. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  301. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
  302. package/es/components/card/Card.js +2 -2
  303. package/es/components/card/Card.js.map +1 -1
  304. package/es/components/dialog/Dialog.js +2 -0
  305. package/es/components/dialog/Dialog.js.map +1 -1
  306. package/es/components/dialog/DialogContent.js +2 -0
  307. package/es/components/dialog/DialogContent.js.map +1 -1
  308. package/es/components/dialog/parts/DialogAction.js +2 -0
  309. package/es/components/dialog/parts/DialogAction.js.map +1 -1
  310. package/es/components/drawer/Drawer.js +2 -0
  311. package/es/components/drawer/Drawer.js.map +1 -1
  312. package/es/components/drawer/DrawerContent.js +2 -0
  313. package/es/components/drawer/DrawerContent.js.map +1 -1
  314. package/es/components/drawer/parts/DrawerContentContext.js +2 -0
  315. package/es/components/drawer/parts/DrawerContentContext.js.map +1 -1
  316. package/es/components/flex/Container.js +6 -4
  317. package/es/components/flex/Container.js.map +1 -1
  318. package/es/components/flex/utils.js +2 -2
  319. package/es/components/flex/utils.js.map +1 -1
  320. package/es/components/form-row/style/dnb-form-row.scss +1 -1
  321. package/es/components/icon/style/dnb-icon.scss +1 -1
  322. package/es/components/input-masked/InputMasked.d.ts +1 -1
  323. package/es/components/input-masked/MultiInputMask.d.ts +3 -3
  324. package/es/components/input-masked/MultiInputMask.js +3 -1
  325. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  326. package/es/components/input-masked/hooks/useHandleCursorPosition.js +2 -0
  327. package/es/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
  328. package/es/components/input-masked/hooks/useMultiInputValues.js +2 -0
  329. package/es/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  330. package/es/components/number-format/NumberUtils.js.map +1 -1
  331. package/es/components/number-format/useNumberFormat.js +2 -0
  332. package/es/components/number-format/useNumberFormat.js.map +1 -1
  333. package/es/components/pagination/PaginationBar.js +2 -0
  334. package/es/components/pagination/PaginationBar.js.map +1 -1
  335. package/es/components/step-indicator/StepIndicatorContext.js +2 -0
  336. package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
  337. package/es/components/step-indicator/StepIndicatorItem.js +4 -2
  338. package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
  339. package/es/components/step-indicator/StepIndicatorList.js +2 -0
  340. package/es/components/step-indicator/StepIndicatorList.js.map +1 -1
  341. package/es/components/step-indicator/StepIndicatorModal.js +2 -0
  342. package/es/components/step-indicator/StepIndicatorModal.js.map +1 -1
  343. package/es/components/step-indicator/StepIndicatorSidebar.js +2 -0
  344. package/es/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  345. package/es/components/step-indicator/StepIndicatorTriggerButton.js +2 -0
  346. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  347. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
  348. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  349. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
  350. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
  351. package/es/components/tooltip/TooltipWithEvents.js.map +1 -1
  352. package/es/components/upload/UploadContext.js +2 -0
  353. package/es/components/upload/UploadContext.js.map +1 -1
  354. package/es/components/upload/UploadFileInput.js +2 -0
  355. package/es/components/upload/UploadFileInput.js.map +1 -1
  356. package/es/components/upload/UploadFileListCell.js +2 -0
  357. package/es/components/upload/UploadFileListCell.js.map +1 -1
  358. package/es/elements/lists/Dl.d.ts +1 -1
  359. package/es/elements/lists/Dl.js.map +1 -1
  360. package/es/elements/typography/style/dnb-typography.scss +1 -1
  361. package/es/elements/typography/style/typography-mixins.scss +2 -2
  362. package/es/extensions/forms/DataContext/At/At.js +2 -0
  363. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  364. package/es/extensions/forms/DataContext/Provider/Provider.js +6 -3
  365. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  366. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
  367. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  368. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -3
  369. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  370. package/es/extensions/forms/Field/Boolean/Boolean.js +4 -2
  371. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  372. package/es/extensions/forms/Field/Currency/Currency.js +3 -2
  373. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  374. package/es/extensions/forms/Field/Date/Date.js +3 -1
  375. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  376. package/es/extensions/forms/Field/Email/Email.js +6 -3
  377. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  378. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -3
  379. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  380. package/es/extensions/forms/Field/Number/Number.js +3 -2
  381. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  382. package/es/extensions/forms/Field/Option/Option.js +1 -1
  383. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  384. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -3
  385. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  386. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
  387. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +48 -16
  388. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  389. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +7 -4
  390. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  391. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +13 -8
  392. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  393. package/es/extensions/forms/Field/Selection/Selection.js +30 -20
  394. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  395. package/es/extensions/forms/Field/String/String.js +11 -9
  396. package/es/extensions/forms/Field/String/String.js.map +1 -1
  397. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -4
  398. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  399. package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -0
  400. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  401. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +2 -0
  402. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  403. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  404. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  405. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +4 -2
  406. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  407. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +3 -1
  408. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  409. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +2 -0
  410. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  411. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +2 -0
  412. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  413. package/es/extensions/forms/StepsLayout/Step/Step.js +2 -0
  414. package/es/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  415. package/es/extensions/forms/StepsLayout/StepsLayout.js +4 -1
  416. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  417. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -1
  418. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  419. package/es/extensions/forms/Value/Boolean/Boolean.js +2 -0
  420. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  421. package/es/extensions/forms/Value/Currency/Currency.js +3 -2
  422. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  423. package/es/extensions/forms/Value/Date/Date.js +4 -1
  424. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  425. package/es/extensions/forms/Value/Email/Email.js +4 -1
  426. package/es/extensions/forms/Value/Email/Email.js.map +1 -1
  427. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -1
  428. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  429. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -1
  430. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  431. package/es/extensions/forms/ValueBlock/ValueBlock.js +1 -1
  432. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  433. package/es/extensions/forms/Visibility/Visibility.js +2 -0
  434. package/es/extensions/forms/Visibility/Visibility.js.map +1 -1
  435. package/es/extensions/forms/hooks/useDataValue.js +22 -17
  436. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  437. package/es/extensions/forms/types.js +6 -6
  438. package/es/extensions/forms/types.js.map +1 -1
  439. package/es/extensions/forms/utils/ajv.js +3 -2
  440. package/es/extensions/forms/utils/ajv.js.map +1 -1
  441. package/es/extensions/forms/utils/numbers.js +2 -2
  442. package/es/extensions/forms/utils/numbers.js.map +1 -1
  443. package/es/extensions/forms/utils/useWasChanged.js +9 -6
  444. package/es/extensions/forms/utils/useWasChanged.js.map +1 -1
  445. package/es/fragments/drawer-list/DrawerListHelpers.js +1 -1
  446. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  447. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  448. package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +1 -1
  449. package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
  450. package/es/shared/Eufemia.d.ts +1 -1
  451. package/es/shared/Eufemia.js +2 -2
  452. package/es/shared/Eufemia.js.map +1 -1
  453. package/es/style/dnb-ui-components.css +2 -2
  454. package/es/style/dnb-ui-components.min.css +1 -1
  455. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  456. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  457. package/es/style/themes/theme-sbanken/fonts.scss +5 -4
  458. package/es/style/themes/theme-sbanken/properties.js +2 -2
  459. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  460. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
  461. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  462. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +8 -7
  463. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  464. package/es/style/themes/theme-sbanken/theme-mapping.scss +2 -1
  465. package/es/style/themes/theme-ui/ui-theme-components.css +2 -2
  466. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  467. package/esm/dnb-ui-basis.min.mjs +1 -1
  468. package/esm/dnb-ui-components.min.mjs +1 -1
  469. package/esm/dnb-ui-elements.min.mjs +1 -1
  470. package/esm/dnb-ui-extensions.min.mjs +2 -2
  471. package/esm/dnb-ui-lib.min.mjs +1 -1
  472. package/extensions/forms/DataContext/At/At.js +2 -0
  473. package/extensions/forms/DataContext/At/At.js.map +1 -1
  474. package/extensions/forms/DataContext/Provider/Provider.js +6 -3
  475. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  476. package/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
  477. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  478. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -3
  479. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  480. package/extensions/forms/Field/Boolean/Boolean.js +4 -2
  481. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  482. package/extensions/forms/Field/Currency/Currency.js +3 -2
  483. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  484. package/extensions/forms/Field/Date/Date.js +3 -1
  485. package/extensions/forms/Field/Date/Date.js.map +1 -1
  486. package/extensions/forms/Field/Email/Email.js +6 -3
  487. package/extensions/forms/Field/Email/Email.js.map +1 -1
  488. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -3
  489. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  490. package/extensions/forms/Field/Number/Number.js +3 -2
  491. package/extensions/forms/Field/Number/Number.js.map +1 -1
  492. package/extensions/forms/Field/Option/Option.js +1 -1
  493. package/extensions/forms/Field/Option/Option.js.map +1 -1
  494. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -3
  495. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  496. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
  497. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +59 -18
  498. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  499. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +7 -4
  500. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  501. package/extensions/forms/Field/SelectCountry/SelectCountry.js +13 -8
  502. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  503. package/extensions/forms/Field/Selection/Selection.js +30 -20
  504. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  505. package/extensions/forms/Field/String/String.js +11 -9
  506. package/extensions/forms/Field/String/String.js.map +1 -1
  507. package/extensions/forms/Field/Toggle/Toggle.js +6 -4
  508. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  509. package/extensions/forms/FieldBlock/FieldBlock.js +2 -0
  510. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  511. package/extensions/forms/Form/SubmitButton/SubmitButton.js +2 -0
  512. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  513. package/extensions/forms/Iterate/Array/Array.js +2 -2
  514. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  515. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +4 -2
  516. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  517. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +3 -1
  518. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  519. package/extensions/forms/StepsLayout/NextButton/NextButton.js +2 -0
  520. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  521. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +2 -0
  522. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  523. package/extensions/forms/StepsLayout/Step/Step.js +2 -0
  524. package/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  525. package/extensions/forms/StepsLayout/StepsLayout.js +4 -1
  526. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  527. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -1
  528. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  529. package/extensions/forms/Value/Boolean/Boolean.js +2 -0
  530. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  531. package/extensions/forms/Value/Currency/Currency.js +3 -2
  532. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  533. package/extensions/forms/Value/Date/Date.js +4 -1
  534. package/extensions/forms/Value/Date/Date.js.map +1 -1
  535. package/extensions/forms/Value/Email/Email.js +4 -1
  536. package/extensions/forms/Value/Email/Email.js.map +1 -1
  537. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -1
  538. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  539. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -1
  540. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  541. package/extensions/forms/ValueBlock/ValueBlock.js +1 -1
  542. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  543. package/extensions/forms/Visibility/Visibility.js +2 -0
  544. package/extensions/forms/Visibility/Visibility.js.map +1 -1
  545. package/extensions/forms/hooks/useDataValue.js +22 -17
  546. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  547. package/extensions/forms/types.js +6 -6
  548. package/extensions/forms/types.js.map +1 -1
  549. package/extensions/forms/utils/ajv.js +3 -2
  550. package/extensions/forms/utils/ajv.js.map +1 -1
  551. package/extensions/forms/utils/numbers.js +2 -2
  552. package/extensions/forms/utils/numbers.js.map +1 -1
  553. package/extensions/forms/utils/useWasChanged.js +9 -6
  554. package/extensions/forms/utils/useWasChanged.js.map +1 -1
  555. package/fragments/drawer-list/DrawerListHelpers.js +1 -1
  556. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  557. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  558. package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +1 -1
  559. package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
  560. package/package.json +11 -1
  561. package/shared/Eufemia.d.ts +1 -1
  562. package/shared/Eufemia.js +2 -2
  563. package/shared/Eufemia.js.map +1 -1
  564. package/style/dnb-ui-components.css +2 -2
  565. package/style/dnb-ui-components.min.css +1 -1
  566. package/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  567. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  568. package/style/themes/theme-sbanken/fonts.scss +5 -4
  569. package/style/themes/theme-sbanken/properties.js +2 -2
  570. package/style/themes/theme-sbanken/properties.js.map +1 -1
  571. package/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
  572. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  573. package/style/themes/theme-sbanken/sbanken-theme-components.css +8 -7
  574. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  575. package/style/themes/theme-sbanken/theme-mapping.scss +2 -1
  576. package/style/themes/theme-ui/ui-theme-components.css +2 -2
  577. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  578. package/umd/dnb-ui-basis.min.js +1 -1
  579. package/umd/dnb-ui-components.min.js +1 -1
  580. package/umd/dnb-ui-elements.min.js +1 -1
  581. package/umd/dnb-ui-extensions.min.js +2 -2
  582. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NumberUtils.js","names":["_react","_interopRequireDefault","require","_Context","_defaults","_componentHelper","_helpers","_locales","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","NUMBER_CHARS","format","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","LOCALE","window","navigator","language","e","warn","isTrue","cleanNumber","opts","JSON","parse","parseFloat","formatDecimals","maximumFractionDigits","number","_number","_aria","formatPhone","formatBAN","formatNIN","formatORG","countDecimals","style","formatNumber","CURRENCY","handleCompactBeforeDisplay","cleanedNumber","currencyDisplay","getFallbackCurrencyDisplay","minimumFractionDigits","indexOf","formatter","item","test","currencySuffix","currencyPositionFormatter","_ref","trim","prepareMinus","handleCompactBeforeAria","enhanceSR","cleanedValue","thousandsSeparator","getThousandsSeparator","replace","RegExp","locales","NumberFormat","not_available","exports","pos","substring","_String$split$","decimalSeparator","Math","floor","valueOf","split","existingFormatter","callback","position","count","countCurrency","first","second","reg","IS_MAC","abs","getGroupFormatter","replaceNaNWithDash","formatToParts","map","reduce","acc","_ref2","toLocaleString","stringify","code","substr","s","join","IS_WIN","num","prefix","suffix","startsWith","endsWith","decimal","thousands","thousandReg","escapeRegexChars","decimalReg","decimalBackup","runIOSSelectionFix","selection","getSelection","range","document","createRange","removeAllRanges","addRange","copyWithEffect","label","positionElement","success","fx","showSelectionNotice","copyToClipboard","run","_ref3","timeout","id","slugify","getElementById","elem","content","root","querySelector","createElement","setAttribute","arrow","appendChild","SelectionFx","remove","removeChild","hide","classList","add","pE","getSelectedElement","top","getOffsetTop","left","getOffsetLeft","innerHTML","HTMLElement","width","offsetWidth","offsetHeight","setTimeout","useCopyWithNotice","translation","clipboard_copy","React","useContext","Context","copy","CURRENCY_DISPLAY","getDecimalSeparator","_formatToParts$find","separator","find","_ref4","_formatToParts$map$fi","_ref5","getCurrencySymbol","_formatToParts$find2","_ref6","separatorSymbol","_ref7","Intl","inst","canHandleCompact","parseInt","notation","compactDisplay","maximumSignificantDigits","isNaN","ref","_ref8","_ref9"],"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 NDVA to make sure we read the number, we add a minimum fraction digit (decimal)\n // NVDA fix\n aria = formatNumber(value, locale, opts)\n aria = enhanceSR(value, aria, locale) // also calls prepareMinus\n }\n\n if (aria === null) {\n aria = display\n }\n\n if (returnAria) {\n let cleanedValue\n\n if (clean_copy_value) {\n cleanedValue = formatNumber(\n opts.style === 'percent' ? value / 100 : value,\n locale,\n opts,\n (item) => {\n switch (item.type) {\n case 'group':\n case 'literal':\n case 'currency':\n case 'percentSign':\n item.value = ''\n return item\n default:\n return item\n }\n }\n )\n } else {\n const thousandsSeparator = getThousandsSeparator(locale)\n cleanedValue = String(display).replace(\n new RegExp(`${thousandsSeparator}(?=\\\\d{3})`, 'g'),\n ''\n )\n }\n\n 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","_interopRequireDefault","require","_Context","_defaults","_componentHelper","_helpers","_locales","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","NUMBER_CHARS","format","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","LOCALE","window","navigator","language","e","warn","isTrue","cleanNumber","opts","JSON","parse","parseFloat","formatDecimals","maximumFractionDigits","number","_number","_aria","formatPhone","formatBAN","formatNIN","formatORG","countDecimals","style","formatNumber","CURRENCY","handleCompactBeforeDisplay","cleanedNumber","currencyDisplay","getFallbackCurrencyDisplay","minimumFractionDigits","indexOf","formatter","item","test","currencySuffix","currencyPositionFormatter","_ref","trim","prepareMinus","handleCompactBeforeAria","enhanceSR","cleanedValue","thousandsSeparator","getThousandsSeparator","replace","RegExp","locales","NumberFormat","not_available","exports","pos","substring","_String$split$","decimalSeparator","Math","floor","valueOf","split","existingFormatter","callback","position","count","countCurrency","first","second","reg","IS_MAC","abs","getGroupFormatter","replaceNaNWithDash","formatToParts","map","reduce","acc","_ref2","toLocaleString","stringify","code","substr","s","join","IS_WIN","num","prefix","suffix","startsWith","endsWith","decimal","thousands","thousandReg","escapeRegexChars","decimalReg","decimalBackup","runIOSSelectionFix","selection","getSelection","range","document","createRange","removeAllRanges","addRange","copyWithEffect","label","positionElement","success","fx","showSelectionNotice","copyToClipboard","run","_ref3","timeout","id","slugify","getElementById","elem","content","root","querySelector","createElement","setAttribute","arrow","appendChild","SelectionFx","remove","removeChild","hide","classList","add","pE","getSelectedElement","top","getOffsetTop","left","getOffsetLeft","innerHTML","HTMLElement","width","offsetWidth","offsetHeight","setTimeout","useCopyWithNotice","translation","clipboard_copy","React","useContext","Context","copy","CURRENCY_DISPLAY","getDecimalSeparator","_formatToParts$find","separator","find","_ref4","_formatToParts$map$fi","_ref5","getCurrencySymbol","_formatToParts$find2","_ref6","separatorSymbol","_ref7","Intl","inst","canHandleCompact","parseInt","notation","compactDisplay","maximumSignificantDigits","isNaN","ref","_ref8","_ref9"],"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,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
@@ -1 +1 @@
1
- {"version":3,"file":"useNumberFormat.js","names":["_react","require","_NumberUtils","_Context","_interopRequireDefault","_componentHelper","obj","__esModule","default","useNumberFormat","value","options","arguments","length","undefined","context","useContext","Context","params","extendPropsWithContext","locale","NumberFormat","format","_default","exports"],"sources":["../../../../src/components/number-format/useNumberFormat.tsx"],"sourcesContent":["import { useContext } from 'react'\nimport { format } from './NumberUtils'\nimport Context from '../../shared/Context'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport type { formatOptionParams, formatValue } from './NumberUtils'\n\nfunction useNumberFormat(\n value: formatValue,\n options: formatOptionParams = {}\n) {\n const context = useContext(Context)\n const params = extendPropsWithContext(\n options,\n { locale: context.locale },\n context.NumberFormat\n )\n\n return format(value, params)\n}\n\nexport default useNumberFormat\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AAAsE,SAAAG,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGtE,SAASG,eAAeA,CACtBC,KAAkB,EAElB;EAAA,IADAC,OAA2B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEhC,MAAMG,OAAO,GAAG,IAAAC,iBAAU,EAACC,gBAAO,CAAC;EACnC,MAAMC,MAAM,GAAG,IAAAC,uCAAsB,EACnCR,OAAO,EACP;IAAES,MAAM,EAAEL,OAAO,CAACK;EAAO,CAAC,EAC1BL,OAAO,CAACM,YACV,CAAC;EAED,OAAO,IAAAC,mBAAM,EAACZ,KAAK,EAAEQ,MAAM,CAAC;AAC9B;AAAC,IAAAK,QAAA,GAEcd,eAAe;AAAAe,OAAA,CAAAhB,OAAA,GAAAe,QAAA"}
1
+ {"version":3,"file":"useNumberFormat.js","names":["_react","require","_NumberUtils","_Context","_interopRequireDefault","_componentHelper","obj","__esModule","default","useNumberFormat","value","options","arguments","length","undefined","context","useContext","Context","params","extendPropsWithContext","locale","NumberFormat","format","_default","exports"],"sources":["../../../../src/components/number-format/useNumberFormat.tsx"],"sourcesContent":["import { useContext } from 'react'\nimport { format } from './NumberUtils'\nimport Context from '../../shared/Context'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport type { formatOptionParams, formatValue } from './NumberUtils'\n\nfunction useNumberFormat(\n value: formatValue,\n options: formatOptionParams = {}\n) {\n const context = useContext(Context)\n const params = extendPropsWithContext(\n options,\n { locale: context.locale },\n context.NumberFormat\n )\n\n return format(value, params)\n}\n\nexport default useNumberFormat\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AAAsE,SAAAG,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGtE,SAASG,eAAeA,CACtBC,KAAkB,EAElB;EAAA,IADAC,OAA2B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEhC,MAAMG,OAAO,GAAG,IAAAC,iBAAU,EAACC,gBAAO,CAAC;EACnC,MAAMC,MAAM,GAAG,IAAAC,uCAAsB,EACnCR,OAAO,EACP;IAAES,MAAM,EAAEL,OAAO,CAACK;EAAO,CAAC,EAC1BL,OAAO,CAACM,YACV,CAAC;EAED,OAAO,IAAAC,mBAAM,EAACZ,KAAK,EAAEQ,MAAM,CAAC;AAC9B;AAAC,IAAAK,QAAA,GAEcd,eAAe;AAAAe,OAAA,CAAAhB,OAAA,GAAAe,QAAA"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationBar.js","names":["_react","_interopRequireWildcard","require","_componentHelper","_PaginationCalculation","_PaginationContext","_interopRequireDefault","_Context","_Button","_IconPrimary","_properties","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","defaultProps","button_title","prev_title","next_title","more_pages","contentRef","children","PaginationBar","localProps","context","useContext","PaginationContext","props","extendPropsWithContext","pagination","currentPage","pageCount","disabled","skeleton","focusPage","onPageUpdate","elem","current","focus","e","keepPageHeight","pageHeight","offsetHeight","style","height","minHeight","setPage","event","setState","setContextState","updatePageContent","dispatchCustomElementEvent","pageNumber","setPrevPage","setNextPage","clickHandler","_ref","getTranslation","Context","Pagination","prevIsDisabled","nextIsDisabled","paginationBarRef","useRef","currentScreenSize","useResizeObserver","pageNumberGroups","calculatePagination","createElement","ref","className","variant","icon","icon_position","text","on_click","title","map","replace","slice","numbersList","idx","Fragment","role","getDotsAriaLabel","size","element","currentSize","setSize","useState","resizeObserver","useEffect","_resizeObserver$curre","handleSizeChange","width","getSizeInPx","ResizeObserver","entries","contentRect","observe","clientWidth","_resizeObserver$curre2","disconnect","exports","styleSize","styleProperties","includes","parseFloat","_supportsSpacingProps","_default"],"sources":["../../../../src/components/pagination/PaginationBar.tsx"],"sourcesContent":["/**\n * Web Pagination Component\n *\n */\n\nimport React, { useContext, useRef, useEffect, useState } from 'react'\nimport classnames from 'classnames'\nimport {\n dispatchCustomElementEvent,\n extendPropsWithContext,\n} from '../../shared/component-helper'\n\nimport {\n calculatePagination,\n getDotsAriaLabel,\n} from './PaginationCalculation'\nimport PaginationContext from './PaginationContext'\nimport Context from '../../shared/Context'\nimport Button from '../button/Button'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport styleProperties from '../../style/themes/theme-ui/properties'\nimport { LocaleProps } from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\n\nexport type PaginationBarProps = {\n /**\n * The title used in every button shown in the bar. Defaults to Side %s.\n */\n button_title?: string\n\n /**\n * The title used in the previous page button. Defaults to Forrige side.\n */\n prev_title?: string\n\n /**\n * The title used in the next page button. Defaults to Neste side.\n */\n next_title?: string\n\n /**\n * The title used in the dots. Relevant for screen-readers. Defaults to %s flere sider.\n */\n more_pages?: string\n\n /**\n * Reference to the parent component. Used to contain height between updates.\n */\n contentRef?: React.RefObject<HTMLElement>\n\n /**\n * the given content can be either a function or a React node, depending on your needs. A function contains several helper functions. More details down below and have a look at the examples in the demos section.\n */\n children?: React.ReactNode | (() => React.ReactNode)\n\n skeleton: SkeletonShow\n}\n\nexport type PaginationBarAllProps = PaginationBarProps &\n LocaleProps &\n React.HTMLProps<HTMLElement>\n\ntype PaginationBarContext = {\n currentPage: number\n pageCount: number\n disabled: boolean\n onPageUpdate: (cb: () => void) => void\n setState: (state: { currentPage: number }) => void\n updatePageContent: (currentPage: number) => void\n}\n\nconst defaultProps = {\n button_title: null,\n prev_title: null,\n next_title: null,\n more_pages: null,\n contentRef: null,\n children: null,\n}\n\nconst PaginationBar = (localProps: PaginationBarAllProps) => {\n const context = useContext(PaginationContext)\n\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.pagination\n ) as PaginationBarProps & PaginationBarContext\n\n const { currentPage, pageCount, disabled, skeleton } = props\n\n // because of accessibility\n const focusPage = () => {\n const { onPageUpdate, contentRef } = props\n\n onPageUpdate(() => {\n try {\n const elem = contentRef.current\n elem.focus()\n } catch (e) {\n //\n }\n })\n }\n\n const keepPageHeight = () => {\n try {\n const elem = props.contentRef.current\n const pageHeight = elem.offsetHeight\n elem.style.height = `${pageHeight / 16}rem`\n elem.style.minHeight = elem.style.height // because of the \"min-height: inherit;\" in &__indicator\n } catch (e) {\n //\n }\n\n const { onPageUpdate } = props\n\n onPageUpdate(() => {\n try {\n const elem = props.contentRef.current\n elem.style.height = 'auto'\n elem.style.minHeight = elem.style.height\n } catch (e) {\n //\n }\n })\n }\n\n const setPage = (currentPage: number, event = null) => {\n keepPageHeight()\n\n const { setState: setContextState, updatePageContent } = props\n setContextState({\n currentPage,\n })\n updatePageContent(currentPage)\n\n dispatchCustomElementEvent(props, 'on_change', {\n pageNumber: currentPage,\n ...props,\n event,\n })\n }\n\n const setPrevPage = () => {\n setPage(props.currentPage - 1)\n }\n const setNextPage = () => {\n setPage(props.currentPage + 1)\n }\n\n const clickHandler = ({ pageNumber, event }) => {\n setPage(pageNumber, event)\n focusPage()\n }\n\n const { getTranslation } = useContext(Context)\n const { button_title, prev_title, next_title, more_pages } =\n extendPropsWithContext(\n props,\n defaultProps,\n getTranslation(props as LocaleProps).Pagination\n )\n\n const prevIsDisabled = currentPage > -1 ? currentPage === 1 : true\n const nextIsDisabled =\n currentPage > -1 ? currentPage === pageCount || pageCount === 0 : true\n\n const paginationBarRef = useRef(null)\n const currentScreenSize = useResizeObserver(paginationBarRef)\n\n const pageNumberGroups = calculatePagination(\n pageCount,\n currentPage,\n currentScreenSize === 'small'\n )\n\n return (\n <div\n ref={paginationBarRef}\n className={classnames(\n 'dnb-pagination__bar',\n pageCount >= 8 && 'dnb-pagination--many-pages'\n )}\n >\n <div className=\"dnb-pagination__bar__wrapper\">\n <div className=\"dnb-pagination__bar__skip\">\n <Button\n key=\"left-arrow\"\n disabled={disabled || prevIsDisabled}\n skeleton={skeleton}\n variant=\"tertiary\"\n icon=\"chevron_left\"\n icon_position=\"left\"\n text={prev_title}\n on_click={setPrevPage}\n title={prevIsDisabled ? null : prev_title}\n />\n\n <Button\n key=\"right-arrow\"\n disabled={disabled || nextIsDisabled}\n skeleton={skeleton}\n variant=\"tertiary\"\n icon=\"chevron_right\"\n icon_position=\"right\"\n text={next_title}\n on_click={setNextPage}\n title={nextIsDisabled ? null : next_title}\n />\n </div>\n\n <div className=\"dnb-pagination__bar__inner\">\n {(pageNumberGroups?.[0] || []).map((pageNumber) => (\n <Button\n key={pageNumber}\n className=\"dnb-pagination__button\"\n text={String(pageNumber)}\n aria-label={button_title.replace('%s', String(pageNumber))}\n variant={\n pageNumber === currentPage ? 'primary' : 'secondary'\n }\n disabled={disabled}\n skeleton={skeleton}\n aria-current={pageNumber === currentPage ? 'page' : null}\n on_click={(event) => clickHandler({ pageNumber, event })}\n />\n ))}\n\n {pageNumberGroups.slice(1).map((numbersList, idx) => (\n <React.Fragment key={idx}>\n <IconPrimary\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-hidden={false}\n title={getDotsAriaLabel({\n more_pages,\n numbersList,\n pageNumberGroups,\n })}\n className=\"dnb-pagination__dots\"\n icon=\"more\"\n size=\"medium\"\n />\n\n {numbersList.map((pageNumber) => {\n return (\n <Button\n key={(pageNumber || 0) + idx}\n className={classnames(\n 'dnb-pagination__button',\n String(pageNumber).length > 3\n ? 'dnb-pagination__button--large-number'\n : null\n )}\n text={String(pageNumber)}\n aria-label={button_title.replace(\n '%s',\n String(pageNumber)\n )}\n variant={\n pageNumber === currentPage ? 'primary' : 'secondary'\n }\n disabled={disabled}\n skeleton={skeleton}\n aria-current={\n pageNumber === currentPage ? 'page' : null\n }\n on_click={(event) =>\n clickHandler({ pageNumber, event })\n }\n />\n )\n })}\n </React.Fragment>\n ))}\n </div>\n </div>\n\n <span className=\"dnb-sr-only\" aria-live=\"assertive\">\n {button_title.replace('%s', String(currentPage))}\n </span>\n </div>\n )\n}\n\nexport const useResizeObserver = (element) => {\n const [currentSize, setSize] = useState('large')\n const resizeObserver = useRef(null)\n\n useEffect(() => {\n try {\n const handleSizeChange = (width) => {\n if (width <= getSizeInPx('small') && currentSize !== 'small') {\n setSize('small')\n } else if (\n width <= getSizeInPx('medium') &&\n currentSize !== 'medium'\n ) {\n setSize('medium')\n } else if (\n width <= getSizeInPx('large') &&\n currentSize !== 'large'\n ) {\n setSize('large')\n } else if (\n width <= getSizeInPx('x-large') &&\n currentSize !== 'x-large'\n ) {\n setSize('x-large')\n } else if (\n width <= getSizeInPx('xx-large') &&\n currentSize !== 'xx-large'\n ) {\n setSize('xx-large')\n }\n }\n resizeObserver.current = new ResizeObserver((entries) => {\n handleSizeChange(entries[0].contentRect.width)\n })\n\n resizeObserver.current?.observe(element.current)\n handleSizeChange(element.current.clientWidth)\n } catch (e) {\n //\n }\n\n return () => {\n resizeObserver.current?.disconnect()\n }\n }, [element]) // eslint-disable-line\n\n return currentSize\n}\n\nconst getSizeInPx = (size) => {\n const styleSize = styleProperties[`--layout-${size}`]\n\n if (styleSize.includes('em')) {\n return parseFloat(styleSize.replace(/(rem|em)$/, '')) * 16\n }\n\n return parseFloat(styleSize.replace(/(px)$/, ''))\n}\n\nPaginationBar._supportsSpacingProps = true\n\nexport default PaginationBar\n"],"mappings":"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"}
1
+ {"version":3,"file":"PaginationBar.js","names":["_react","_interopRequireWildcard","require","_componentHelper","_PaginationCalculation","_PaginationContext","_interopRequireDefault","_Context","_Button","_IconPrimary","_properties","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","defaultProps","button_title","prev_title","next_title","more_pages","contentRef","children","PaginationBar","localProps","context","useContext","PaginationContext","props","extendPropsWithContext","pagination","currentPage","pageCount","disabled","skeleton","focusPage","onPageUpdate","elem","current","focus","e","keepPageHeight","pageHeight","offsetHeight","style","height","minHeight","setPage","event","setState","setContextState","updatePageContent","dispatchCustomElementEvent","pageNumber","setPrevPage","setNextPage","clickHandler","_ref","getTranslation","Context","Pagination","prevIsDisabled","nextIsDisabled","paginationBarRef","useRef","currentScreenSize","useResizeObserver","pageNumberGroups","calculatePagination","createElement","ref","className","variant","icon","icon_position","text","on_click","title","map","replace","slice","numbersList","idx","Fragment","role","getDotsAriaLabel","size","element","currentSize","setSize","useState","resizeObserver","useEffect","_resizeObserver$curre","handleSizeChange","width","getSizeInPx","ResizeObserver","entries","contentRect","observe","clientWidth","_resizeObserver$curre2","disconnect","exports","styleSize","styleProperties","includes","parseFloat","_supportsSpacingProps","_default"],"sources":["../../../../src/components/pagination/PaginationBar.tsx"],"sourcesContent":["/**\n * Web Pagination Component\n *\n */\n\nimport React, { useContext, useRef, useEffect, useState } from 'react'\nimport classnames from 'classnames'\nimport {\n dispatchCustomElementEvent,\n extendPropsWithContext,\n} from '../../shared/component-helper'\n\nimport {\n calculatePagination,\n getDotsAriaLabel,\n} from './PaginationCalculation'\nimport PaginationContext from './PaginationContext'\nimport Context from '../../shared/Context'\nimport Button from '../button/Button'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport styleProperties from '../../style/themes/theme-ui/properties'\nimport { LocaleProps } from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\n\nexport type PaginationBarProps = {\n /**\n * The title used in every button shown in the bar. Defaults to Side %s.\n */\n button_title?: string\n\n /**\n * The title used in the previous page button. Defaults to Forrige side.\n */\n prev_title?: string\n\n /**\n * The title used in the next page button. Defaults to Neste side.\n */\n next_title?: string\n\n /**\n * The title used in the dots. Relevant for screen-readers. Defaults to %s flere sider.\n */\n more_pages?: string\n\n /**\n * Reference to the parent component. Used to contain height between updates.\n */\n contentRef?: React.RefObject<HTMLElement>\n\n /**\n * the given content can be either a function or a React node, depending on your needs. A function contains several helper functions. More details down below and have a look at the examples in the demos section.\n */\n children?: React.ReactNode | (() => React.ReactNode)\n\n skeleton: SkeletonShow\n}\n\nexport type PaginationBarAllProps = PaginationBarProps &\n LocaleProps &\n React.HTMLProps<HTMLElement>\n\ntype PaginationBarContext = {\n currentPage: number\n pageCount: number\n disabled: boolean\n onPageUpdate: (cb: () => void) => void\n setState: (state: { currentPage: number }) => void\n updatePageContent: (currentPage: number) => void\n}\n\nconst defaultProps = {\n button_title: null,\n prev_title: null,\n next_title: null,\n more_pages: null,\n contentRef: null,\n children: null,\n}\n\nconst PaginationBar = (localProps: PaginationBarAllProps) => {\n const context = useContext(PaginationContext)\n\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.pagination\n ) as PaginationBarProps & PaginationBarContext\n\n const { currentPage, pageCount, disabled, skeleton } = props\n\n // because of accessibility\n const focusPage = () => {\n const { onPageUpdate, contentRef } = props\n\n onPageUpdate(() => {\n try {\n const elem = contentRef.current\n elem.focus()\n } catch (e) {\n //\n }\n })\n }\n\n const keepPageHeight = () => {\n try {\n const elem = props.contentRef.current\n const pageHeight = elem.offsetHeight\n elem.style.height = `${pageHeight / 16}rem`\n elem.style.minHeight = elem.style.height // because of the \"min-height: inherit;\" in &__indicator\n } catch (e) {\n //\n }\n\n const { onPageUpdate } = props\n\n onPageUpdate(() => {\n try {\n const elem = props.contentRef.current\n elem.style.height = 'auto'\n elem.style.minHeight = elem.style.height\n } catch (e) {\n //\n }\n })\n }\n\n const setPage = (currentPage: number, event = null) => {\n keepPageHeight()\n\n const { setState: setContextState, updatePageContent } = props\n setContextState({\n currentPage,\n })\n updatePageContent(currentPage)\n\n dispatchCustomElementEvent(props, 'on_change', {\n pageNumber: currentPage,\n ...props,\n event,\n })\n }\n\n const setPrevPage = () => {\n setPage(props.currentPage - 1)\n }\n const setNextPage = () => {\n setPage(props.currentPage + 1)\n }\n\n const clickHandler = ({ pageNumber, event }) => {\n setPage(pageNumber, event)\n focusPage()\n }\n\n const { getTranslation } = useContext(Context)\n const { button_title, prev_title, next_title, more_pages } =\n extendPropsWithContext(\n props,\n defaultProps,\n getTranslation(props as LocaleProps).Pagination\n )\n\n const prevIsDisabled = currentPage > -1 ? currentPage === 1 : true\n const nextIsDisabled =\n currentPage > -1 ? currentPage === pageCount || pageCount === 0 : true\n\n const paginationBarRef = useRef(null)\n const currentScreenSize = useResizeObserver(paginationBarRef)\n\n const pageNumberGroups = calculatePagination(\n pageCount,\n currentPage,\n currentScreenSize === 'small'\n )\n\n return (\n <div\n ref={paginationBarRef}\n className={classnames(\n 'dnb-pagination__bar',\n pageCount >= 8 && 'dnb-pagination--many-pages'\n )}\n >\n <div className=\"dnb-pagination__bar__wrapper\">\n <div className=\"dnb-pagination__bar__skip\">\n <Button\n key=\"left-arrow\"\n disabled={disabled || prevIsDisabled}\n skeleton={skeleton}\n variant=\"tertiary\"\n icon=\"chevron_left\"\n icon_position=\"left\"\n text={prev_title}\n on_click={setPrevPage}\n title={prevIsDisabled ? null : prev_title}\n />\n\n <Button\n key=\"right-arrow\"\n disabled={disabled || nextIsDisabled}\n skeleton={skeleton}\n variant=\"tertiary\"\n icon=\"chevron_right\"\n icon_position=\"right\"\n text={next_title}\n on_click={setNextPage}\n title={nextIsDisabled ? null : next_title}\n />\n </div>\n\n <div className=\"dnb-pagination__bar__inner\">\n {(pageNumberGroups?.[0] || []).map((pageNumber) => (\n <Button\n key={pageNumber}\n className=\"dnb-pagination__button\"\n text={String(pageNumber)}\n aria-label={button_title.replace('%s', String(pageNumber))}\n variant={\n pageNumber === currentPage ? 'primary' : 'secondary'\n }\n disabled={disabled}\n skeleton={skeleton}\n aria-current={pageNumber === currentPage ? 'page' : null}\n on_click={(event) => clickHandler({ pageNumber, event })}\n />\n ))}\n\n {pageNumberGroups.slice(1).map((numbersList, idx) => (\n <React.Fragment key={idx}>\n <IconPrimary\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-hidden={false}\n title={getDotsAriaLabel({\n more_pages,\n numbersList,\n pageNumberGroups,\n })}\n className=\"dnb-pagination__dots\"\n icon=\"more\"\n size=\"medium\"\n />\n\n {numbersList.map((pageNumber) => {\n return (\n <Button\n key={(pageNumber || 0) + idx}\n className={classnames(\n 'dnb-pagination__button',\n String(pageNumber).length > 3\n ? 'dnb-pagination__button--large-number'\n : null\n )}\n text={String(pageNumber)}\n aria-label={button_title.replace(\n '%s',\n String(pageNumber)\n )}\n variant={\n pageNumber === currentPage ? 'primary' : 'secondary'\n }\n disabled={disabled}\n skeleton={skeleton}\n aria-current={\n pageNumber === currentPage ? 'page' : null\n }\n on_click={(event) =>\n clickHandler({ pageNumber, event })\n }\n />\n )\n })}\n </React.Fragment>\n ))}\n </div>\n </div>\n\n <span className=\"dnb-sr-only\" aria-live=\"assertive\">\n {button_title.replace('%s', String(currentPage))}\n </span>\n </div>\n )\n}\n\nexport const useResizeObserver = (element) => {\n const [currentSize, setSize] = useState('large')\n const resizeObserver = useRef(null)\n\n useEffect(() => {\n try {\n const handleSizeChange = (width) => {\n if (width <= getSizeInPx('small') && currentSize !== 'small') {\n setSize('small')\n } else if (\n width <= getSizeInPx('medium') &&\n currentSize !== 'medium'\n ) {\n setSize('medium')\n } else if (\n width <= getSizeInPx('large') &&\n currentSize !== 'large'\n ) {\n setSize('large')\n } else if (\n width <= getSizeInPx('x-large') &&\n currentSize !== 'x-large'\n ) {\n setSize('x-large')\n } else if (\n width <= getSizeInPx('xx-large') &&\n currentSize !== 'xx-large'\n ) {\n setSize('xx-large')\n }\n }\n resizeObserver.current = new ResizeObserver((entries) => {\n handleSizeChange(entries[0].contentRect.width)\n })\n\n resizeObserver.current?.observe(element.current)\n handleSizeChange(element.current.clientWidth)\n } catch (e) {\n //\n }\n\n return () => {\n resizeObserver.current?.disconnect()\n }\n }, [element]) // eslint-disable-line\n\n return currentSize\n}\n\nconst getSizeInPx = (size) => {\n const styleSize = styleProperties[`--layout-${size}`]\n\n if (styleSize.includes('em')) {\n return parseFloat(styleSize.replace(/(rem|em)$/, '')) * 16\n }\n\n return parseFloat(styleSize.replace(/(px)$/, ''))\n}\n\nPaginationBar._supportsSpacingProps = true\n\nexport default PaginationBar\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
@@ -1 +1 @@
1
- {"version":3,"file":"StepIndicatorContext.js","names":["_react","_interopRequireWildcard","require","_Context","_interopRequireDefault","_StepIndicatorProps","_componentHelper","_MediaQueryUtils","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","filterAttributes","stepIndicatorDefaultProps","item","includes","concat","StepIndicatorContext","React","createContext","_default","exports","StepIndicatorProvider","_ref","isSidebar","restOfProps","props","data","getData","countSteps","hasSidebar","setHasSidebar","useState","hideSidebar","setHideSidebar","activeStep","setActiveStep","getActiveStepFromProps","openState","setOpenState","listOfReachedSteps","useRef","Boolean","current","mediaQueryListener","context","useContext","Context","contextValue","makeContextValue","useEffect","_document","container","document","getElementById","sidebar_id","onMediaQueryChange","min","max","runOnInit","currentStepFromProps","current_step","onChangeState","openHandler","closeHandler","JSON","parse","dataWithItems","itemWithCurrentStep","find","is_current","globalContext","extendPropsWithContext","skeleton","getTranslation","StepIndicator","extendSafe","defaultProps","stepsLabel","updateStepTitle","step_title","stepsLabelExtended","step_title_extended","sidebarIsVisible","title","replace","window","startsWith","createElement","Provider","children","_len","objects","Array","_key","itm","entries","reduce","acc","_ref2","k","v","_ref3"],"sources":["../../../../src/components/step-indicator/StepIndicatorContext.tsx"],"sourcesContent":["/**\n * Web StepIndicator Context\n *\n */\n\nimport React, { useContext, useEffect, useRef, useState } from 'react'\nimport Context, { ContextProps } from '../../shared/Context'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport { onMediaQueryChange } from '../../shared/MediaQueryUtils'\nimport {\n StepIndicatorData,\n StepIndicatorDataItem,\n StepIndicatorMode,\n StepIndicatorProps,\n} from './StepIndicator'\nimport { StepIndicatorItemProps } from './StepIndicatorItem'\n\n// We use this array to filter out unwanted properties\nconst filterAttributes = Object.keys(stepIndicatorDefaultProps)\n .filter((item) => {\n return !['class', 'className'].includes(item)\n })\n .concat([\n 'internalId',\n 'isSidebar',\n 'hasSidebar',\n 'hideSidebar',\n 'sidebarIsVisible',\n 'mainTitle',\n 'stepsLabel',\n 'stepsLabelExtended',\n 'listOfReachedSteps',\n 'setActiveStep',\n 'activeStep',\n 'countSteps',\n 'openState',\n 'onChangeState',\n 'openHandler',\n 'closeHandler',\n 'innerRef',\n 'hasSkeletonData',\n 'filterAttributes',\n 'onChangeState',\n ])\n\nexport type StepIndicatorContextValues = StepIndicatorProviderProps &\n StepIndicatorProviderStates &\n ContextProps\n\nconst StepIndicatorContext =\n React.createContext<StepIndicatorContextValues>(null)\n\nexport default StepIndicatorContext\n\nexport type StepIndicatorProviderProps = Omit<\n StepIndicatorProps,\n 'mode' | 'data'\n> & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id: string\n /**\n * <em>(required)</em> defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.\n */\n data?: StepIndicatorData\n /**\n * <em>(required)</em> defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.\n */\n mode?: StepIndicatorMode\n children: React.ReactNode\n isSidebar?: boolean\n}\n\nexport type StepIndicatorProviderStates = {\n data: (string | StepIndicatorItemProps)[]\n hasSidebar: boolean\n hideSidebar: boolean\n activeStep: number\n openState: boolean\n listOfReachedSteps: number[]\n countSteps: number\n stepsLabel: string\n stepsLabelExtended: string\n filterAttributes: string[]\n setActiveStep: React.Dispatch<React.SetStateAction<number>>\n sidebarIsVisible: boolean\n onChangeState: () => void\n openHandler: () => void\n closeHandler: () => void\n}\n\nexport function StepIndicatorProvider({\n isSidebar = false,\n ...restOfProps\n}: StepIndicatorProviderProps) {\n const props = { isSidebar, ...restOfProps }\n\n const data = getData(props)\n const countSteps = data.length\n\n const [hasSidebar, setHasSidebar] = useState<boolean>(true)\n const [hideSidebar, setHideSidebar] = useState<boolean>(false)\n const [activeStep, setActiveStep] = useState<number>(\n getActiveStepFromProps()\n )\n const [openState, setOpenState] = useState<boolean>(false)\n\n const listOfReachedSteps = useRef([activeStep].filter(Boolean)).current\n\n const mediaQueryListener = useRef(null)\n\n const context = useContext(Context)\n const contextValue = makeContextValue() as StepIndicatorContextValues\n\n // Mount and dismount\n useEffect(() => {\n const container = document?.getElementById(\n 'sidebar__' + props.sidebar_id\n )\n\n setHasSidebar(Boolean(container))\n\n mediaQueryListener.current = onMediaQueryChange(\n {\n min: '0',\n max: 'medium',\n },\n (hideSidebar) => {\n setHideSidebar(hideSidebar)\n },\n { runOnInit: true }\n )\n\n return () => {\n if (mediaQueryListener.current) {\n mediaQueryListener.current()\n }\n }\n }, [])\n\n // Keeps the activeStep state updated with changes to the current_step and data props\n useEffect(() => {\n const currentStepFromProps = getActiveStepFromProps()\n\n if (currentStepFromProps !== activeStep) {\n setActiveStep(currentStepFromProps)\n }\n }, [props.current_step, data])\n\n // Keeps the listOfReachedSteps state up to date with the activeStep state\n useEffect(() => {\n if (!listOfReachedSteps.includes(activeStep)) {\n listOfReachedSteps.push(activeStep)\n }\n }, [activeStep])\n\n function onChangeState() {\n setOpenState(false)\n }\n\n function openHandler() {\n setOpenState(true)\n }\n\n function closeHandler() {\n setOpenState(false)\n }\n\n function getData(\n props: StepIndicatorProviderProps\n ): string[] | StepIndicatorDataItem[] {\n if (typeof props.data === 'string') {\n return props.data[0] === '[' ? JSON.parse(props.data) : []\n }\n\n return props.data || []\n }\n\n function getActiveStepFromProps() {\n if (typeof data[0] === 'string') {\n return props.current_step\n }\n\n const dataWithItems = data as StepIndicatorDataItem[]\n\n const itemWithCurrentStep = dataWithItems.find(\n (item) => item.is_current\n )\n // Is current on data item has precedence(?) over current_step prop\n return itemWithCurrentStep\n ? dataWithItems.indexOf(itemWithCurrentStep)\n : props.current_step\n }\n\n function makeContextValue() {\n const globalContext = extendPropsWithContext(\n props,\n stepIndicatorDefaultProps,\n { skeleton: context?.skeleton },\n context.getTranslation(context).StepIndicator,\n context.StepIndicator\n )\n\n const value = extendSafe(\n { filterAttributes },\n globalContext,\n // Props\n {\n defaultProps: stepIndicatorDefaultProps,\n props,\n },\n // State\n {\n hasSidebar,\n hideSidebar,\n activeStep,\n openState,\n listOfReachedSteps,\n data,\n countSteps,\n stepsLabel: updateStepTitle(globalContext.step_title),\n stepsLabelExtended: updateStepTitle(\n globalContext.step_title_extended\n ),\n },\n // Functions\n {\n setActiveStep,\n onChangeState,\n openHandler,\n closeHandler,\n }\n ) as StepIndicatorContextValues\n\n value.sidebarIsVisible = value.hasSidebar && !value.hideSidebar\n\n return value\n }\n\n function updateStepTitle(title: string) {\n return title\n ?.replace('%step', String((activeStep || 0) + 1))\n .replace('%count', String(data?.length || 1))\n }\n\n if (typeof window !== 'undefined' && window['IS_TEST']) {\n contextValue['no_animation'] = true\n }\n\n // Filter out unwanted HTML attributes\n Object.keys(contextValue).forEach((key) => {\n if (key.startsWith('_')) {\n delete contextValue[key]\n }\n })\n\n return (\n <StepIndicatorContext.Provider value={contextValue}>\n {props.children}\n </StepIndicatorContext.Provider>\n )\n}\n\n/**\n * Like \"Object.assign\" – but safe\n * A new falsy value will not be used, if it exists already\n *\n * @param {...object} objects\n * @returns object\n */\nfunction extendSafe(...objects): Record<string, unknown> {\n const obj = {}\n\n objects.forEach((itm) => {\n if (itm.defaultProps && itm.props) {\n itm = Object.entries(itm.props).reduce((acc, [k, v]) => {\n if (itm.defaultProps[k] !== v) {\n acc[k] = v\n }\n return acc\n }, {})\n }\n\n Object.entries(itm).forEach(([k, v]) => {\n if (!obj[k] || (obj[k] && v)) {\n obj[k] = v\n }\n })\n })\n\n return obj\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"StepIndicatorContext.js","names":["_react","_interopRequireWildcard","require","_Context","_interopRequireDefault","_StepIndicatorProps","_componentHelper","_MediaQueryUtils","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","filterAttributes","stepIndicatorDefaultProps","item","includes","concat","StepIndicatorContext","React","createContext","_default","exports","StepIndicatorProvider","_ref","isSidebar","restOfProps","props","data","getData","countSteps","hasSidebar","setHasSidebar","useState","hideSidebar","setHideSidebar","activeStep","setActiveStep","getActiveStepFromProps","openState","setOpenState","listOfReachedSteps","useRef","Boolean","current","mediaQueryListener","context","useContext","Context","contextValue","makeContextValue","useEffect","_document","container","document","getElementById","sidebar_id","onMediaQueryChange","min","max","runOnInit","currentStepFromProps","current_step","onChangeState","openHandler","closeHandler","JSON","parse","dataWithItems","itemWithCurrentStep","find","is_current","globalContext","extendPropsWithContext","skeleton","getTranslation","StepIndicator","extendSafe","defaultProps","stepsLabel","updateStepTitle","step_title","stepsLabelExtended","step_title_extended","sidebarIsVisible","title","replace","window","startsWith","createElement","Provider","children","_len","objects","Array","_key","itm","entries","reduce","acc","_ref2","k","v","_ref3"],"sources":["../../../../src/components/step-indicator/StepIndicatorContext.tsx"],"sourcesContent":["/**\n * Web StepIndicator Context\n *\n */\n\nimport React, { useContext, useEffect, useRef, useState } from 'react'\nimport Context, { ContextProps } from '../../shared/Context'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport { onMediaQueryChange } from '../../shared/MediaQueryUtils'\nimport {\n StepIndicatorData,\n StepIndicatorDataItem,\n StepIndicatorMode,\n StepIndicatorProps,\n} from './StepIndicator'\nimport { StepIndicatorItemProps } from './StepIndicatorItem'\n\n// We use this array to filter out unwanted properties\nconst filterAttributes = Object.keys(stepIndicatorDefaultProps)\n .filter((item) => {\n return !['class', 'className'].includes(item)\n })\n .concat([\n 'internalId',\n 'isSidebar',\n 'hasSidebar',\n 'hideSidebar',\n 'sidebarIsVisible',\n 'mainTitle',\n 'stepsLabel',\n 'stepsLabelExtended',\n 'listOfReachedSteps',\n 'setActiveStep',\n 'activeStep',\n 'countSteps',\n 'openState',\n 'onChangeState',\n 'openHandler',\n 'closeHandler',\n 'innerRef',\n 'hasSkeletonData',\n 'filterAttributes',\n 'onChangeState',\n ])\n\nexport type StepIndicatorContextValues = StepIndicatorProviderProps &\n StepIndicatorProviderStates &\n ContextProps\n\nconst StepIndicatorContext =\n React.createContext<StepIndicatorContextValues>(null)\n\nexport default StepIndicatorContext\n\nexport type StepIndicatorProviderProps = Omit<\n StepIndicatorProps,\n 'mode' | 'data'\n> & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id: string\n /**\n * <em>(required)</em> defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.\n */\n data?: StepIndicatorData\n /**\n * <em>(required)</em> defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.\n */\n mode?: StepIndicatorMode\n children: React.ReactNode\n isSidebar?: boolean\n}\n\nexport type StepIndicatorProviderStates = {\n data: (string | StepIndicatorItemProps)[]\n hasSidebar: boolean\n hideSidebar: boolean\n activeStep: number\n openState: boolean\n listOfReachedSteps: number[]\n countSteps: number\n stepsLabel: string\n stepsLabelExtended: string\n filterAttributes: string[]\n setActiveStep: React.Dispatch<React.SetStateAction<number>>\n sidebarIsVisible: boolean\n onChangeState: () => void\n openHandler: () => void\n closeHandler: () => void\n}\n\nexport function StepIndicatorProvider({\n isSidebar = false,\n ...restOfProps\n}: StepIndicatorProviderProps) {\n const props = { isSidebar, ...restOfProps }\n\n const data = getData(props)\n const countSteps = data.length\n\n const [hasSidebar, setHasSidebar] = useState<boolean>(true)\n const [hideSidebar, setHideSidebar] = useState<boolean>(false)\n const [activeStep, setActiveStep] = useState<number>(\n getActiveStepFromProps()\n )\n const [openState, setOpenState] = useState<boolean>(false)\n\n const listOfReachedSteps = useRef([activeStep].filter(Boolean)).current\n\n const mediaQueryListener = useRef(null)\n\n const context = useContext(Context)\n const contextValue = makeContextValue() as StepIndicatorContextValues\n\n // Mount and dismount\n useEffect(() => {\n const container = document?.getElementById(\n 'sidebar__' + props.sidebar_id\n )\n\n setHasSidebar(Boolean(container))\n\n mediaQueryListener.current = onMediaQueryChange(\n {\n min: '0',\n max: 'medium',\n },\n (hideSidebar) => {\n setHideSidebar(hideSidebar)\n },\n { runOnInit: true }\n )\n\n return () => {\n if (mediaQueryListener.current) {\n mediaQueryListener.current()\n }\n }\n }, [])\n\n // Keeps the activeStep state updated with changes to the current_step and data props\n useEffect(() => {\n const currentStepFromProps = getActiveStepFromProps()\n\n if (currentStepFromProps !== activeStep) {\n setActiveStep(currentStepFromProps)\n }\n }, [props.current_step, data])\n\n // Keeps the listOfReachedSteps state up to date with the activeStep state\n useEffect(() => {\n if (!listOfReachedSteps.includes(activeStep)) {\n listOfReachedSteps.push(activeStep)\n }\n }, [activeStep])\n\n function onChangeState() {\n setOpenState(false)\n }\n\n function openHandler() {\n setOpenState(true)\n }\n\n function closeHandler() {\n setOpenState(false)\n }\n\n function getData(\n props: StepIndicatorProviderProps\n ): string[] | StepIndicatorDataItem[] {\n if (typeof props.data === 'string') {\n return props.data[0] === '[' ? JSON.parse(props.data) : []\n }\n\n return props.data || []\n }\n\n function getActiveStepFromProps() {\n if (typeof data[0] === 'string') {\n return props.current_step\n }\n\n const dataWithItems = data as StepIndicatorDataItem[]\n\n const itemWithCurrentStep = dataWithItems.find(\n (item) => item.is_current\n )\n // Is current on data item has precedence(?) over current_step prop\n return itemWithCurrentStep\n ? dataWithItems.indexOf(itemWithCurrentStep)\n : props.current_step\n }\n\n function makeContextValue() {\n const globalContext = extendPropsWithContext(\n props,\n stepIndicatorDefaultProps,\n { skeleton: context?.skeleton },\n context.getTranslation(context).StepIndicator,\n context.StepIndicator\n )\n\n const value = extendSafe(\n { filterAttributes },\n globalContext,\n // Props\n {\n defaultProps: stepIndicatorDefaultProps,\n props,\n },\n // State\n {\n hasSidebar,\n hideSidebar,\n activeStep,\n openState,\n listOfReachedSteps,\n data,\n countSteps,\n stepsLabel: updateStepTitle(globalContext.step_title),\n stepsLabelExtended: updateStepTitle(\n globalContext.step_title_extended\n ),\n },\n // Functions\n {\n setActiveStep,\n onChangeState,\n openHandler,\n closeHandler,\n }\n ) as StepIndicatorContextValues\n\n value.sidebarIsVisible = value.hasSidebar && !value.hideSidebar\n\n return value\n }\n\n function updateStepTitle(title: string) {\n return title\n ?.replace('%step', String((activeStep || 0) + 1))\n .replace('%count', String(data?.length || 1))\n }\n\n if (typeof window !== 'undefined' && window['IS_TEST']) {\n contextValue['no_animation'] = true\n }\n\n // Filter out unwanted HTML attributes\n Object.keys(contextValue).forEach((key) => {\n if (key.startsWith('_')) {\n delete contextValue[key]\n }\n })\n\n return (\n <StepIndicatorContext.Provider value={contextValue}>\n {props.children}\n </StepIndicatorContext.Provider>\n )\n}\n\n/**\n * Like \"Object.assign\" – but safe\n * A new falsy value will not be used, if it exists already\n *\n * @param {...object} objects\n * @returns object\n */\nfunction extendSafe(...objects): Record<string, unknown> {\n const obj = {}\n\n objects.forEach((itm) => {\n if (itm.defaultProps && itm.props) {\n itm = Object.entries(itm.props).reduce((acc, [k, v]) => {\n if (itm.defaultProps[k] !== v) {\n acc[k] = v\n }\n return acc\n }, {})\n }\n\n Object.entries(itm).forEach(([k, v]) => {\n if (!obj[k] || (obj[k] && v)) {\n obj[k] = v\n }\n })\n })\n\n return obj\n}\n"],"mappings":"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"}