@dnb/eufemia 10.4.2 → 10.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/cjs/components/accordion/Accordion.d.ts +240 -136
- package/cjs/components/accordion/Accordion.js +217 -252
- package/cjs/components/accordion/Accordion.js.map +1 -1
- package/cjs/components/accordion/AccordionContent.d.ts +12 -14
- package/cjs/components/accordion/AccordionContent.js +3 -15
- package/cjs/components/accordion/AccordionContent.js.map +1 -1
- package/cjs/components/accordion/AccordionContext.d.ts +17 -2
- package/cjs/components/accordion/AccordionContext.js.map +1 -1
- package/cjs/components/accordion/AccordionGroup.d.ts +10 -12
- package/cjs/components/accordion/AccordionGroup.js +63 -72
- package/cjs/components/accordion/AccordionGroup.js.map +1 -1
- package/cjs/components/accordion/AccordionHeader.d.ts +62 -92
- package/cjs/components/accordion/AccordionHeader.js +178 -251
- package/cjs/components/accordion/AccordionHeader.js.map +1 -1
- package/cjs/components/accordion/AccordionProviderContext.d.ts +16 -2
- package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
- package/cjs/components/accordion/AccordionStore.d.ts +7 -6
- package/cjs/components/accordion/AccordionStore.js +1 -1
- package/cjs/components/accordion/AccordionStore.js.map +1 -1
- package/cjs/components/accordion/defaultProps.d.ts +2 -0
- package/cjs/components/accordion/defaultProps.js +12 -0
- package/cjs/components/accordion/defaultProps.js.map +1 -0
- package/cjs/components/anchor/style/anchor-mixins.scss +26 -27
- package/cjs/components/anchor/style/dnb-anchor.css +27 -16
- package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
- package/cjs/components/anchor/style/dnb-anchor.scss +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +97 -44
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +48 -22
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
- package/cjs/components/autocomplete/Autocomplete.js +2 -2
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/button/style/themes/button-mixins.scss +23 -4
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +80 -82
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -1
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +82 -54
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/cjs/components/dialog/Dialog.d.ts +1 -1
- package/cjs/components/dialog/DialogContent.d.ts +1 -1
- package/cjs/components/dialog/DialogContent.js +4 -2
- package/cjs/components/dialog/DialogContent.js.map +1 -1
- package/cjs/components/dialog/parts/DialogAction.d.ts +5 -1
- package/cjs/components/dialog/parts/DialogAction.js +3 -2
- package/cjs/components/dialog/parts/DialogAction.js.map +1 -1
- package/cjs/components/form-row/FormRow.js.map +1 -1
- package/cjs/components/form-row/style/dnb-form-row.scss +2 -2
- package/cjs/components/form-set/FormSet.js.map +1 -1
- package/cjs/components/height-animation/HeightAnimation.d.ts +1 -1
- package/cjs/components/height-animation/HeightAnimation.js.map +1 -1
- package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
- package/cjs/components/icon/lib/SvgComparison.js.map +1 -1
- package/cjs/components/input/style/dnb-input.css +5 -0
- package/cjs/components/input/style/dnb-input.min.css +1 -1
- package/cjs/components/input/style/dnb-input.scss +7 -1
- package/cjs/components/input/style/themes/dnb-input-theme-sbanken.css +104 -0
- package/cjs/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -0
- package/cjs/components/input/style/themes/dnb-input-theme-sbanken.scss +126 -0
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/input-masked/TextMask.js.map +1 -1
- package/cjs/components/modal/Modal.js +0 -2
- package/cjs/components/modal/Modal.js.map +1 -1
- package/cjs/components/modal/bodyScrollLock.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.js +8 -6
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/number-format/style/dnb-number-format.css +0 -7
- package/cjs/components/number-format/style/dnb-number-format.scss +0 -1
- package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
- package/cjs/components/radio/Radio.js.map +1 -1
- package/cjs/components/section/style/themes/dnb-section-theme-ui.css +14 -7
- package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/cjs/components/slider/hooks/useSliderEvents.js.map +1 -1
- package/cjs/components/slider/types.d.ts +1 -1
- package/cjs/components/slider/types.js.map +1 -1
- package/cjs/components/space/Space.d.ts +2 -2
- package/cjs/components/space/SpacingHelper.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorProps.d.ts +1 -1
- package/cjs/components/table/TableAccordion.js.map +1 -1
- package/cjs/components/table/TableTr.js.map +1 -1
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/components/textarea/style/dnb-textarea.css +39 -1
- package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
- package/cjs/components/textarea/style/dnb-textarea.scss +20 -1
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +61 -0
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -0
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +72 -0
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +0 -41
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +0 -22
- package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/cjs/components/tooltip/TooltipContainer.js.map +1 -1
- package/cjs/components/upload/Upload.js +2 -2
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/useUpload.d.ts +1 -1
- package/cjs/components/upload/useUpload.js +2 -2
- package/cjs/components/upload/useUpload.js.map +1 -1
- package/cjs/elements/blockquote/Blockquote.d.ts +1 -1
- package/cjs/elements/blockquote/Blockquote.js.map +1 -1
- package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
- package/cjs/extensions/forms/DataContext/At.d.ts +13 -0
- package/cjs/extensions/forms/DataContext/At.js +60 -0
- package/cjs/extensions/forms/DataContext/At.js.map +1 -0
- package/cjs/extensions/forms/DataContext/Context.d.ts +19 -0
- package/cjs/extensions/forms/DataContext/Context.js +25 -0
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -0
- package/cjs/extensions/forms/DataContext/Provider.d.ts +19 -0
- package/cjs/extensions/forms/DataContext/Provider.js +112 -0
- package/cjs/extensions/forms/DataContext/Provider.js.map +1 -0
- package/cjs/extensions/forms/DataContext/SubmitButton.d.ts +9 -0
- package/cjs/extensions/forms/DataContext/SubmitButton.js +30 -0
- package/cjs/extensions/forms/DataContext/SubmitButton.js.map +1 -0
- package/cjs/extensions/forms/DataContext/index.d.ts +13 -0
- package/cjs/extensions/forms/DataContext/index.js +20 -0
- package/cjs/extensions/forms/DataContext/index.js.map +1 -0
- package/cjs/extensions/forms/Field/ArraySelection.d.ts +12 -0
- package/cjs/extensions/forms/Field/ArraySelection.js +68 -0
- package/cjs/extensions/forms/Field/ArraySelection.js.map +1 -0
- package/cjs/extensions/forms/Field/BankAccountNumber.d.ts +10 -0
- package/cjs/extensions/forms/Field/BankAccountNumber.js +40 -0
- package/cjs/extensions/forms/Field/BankAccountNumber.js.map +1 -0
- package/cjs/extensions/forms/Field/Boolean.d.ts +10 -0
- package/cjs/extensions/forms/Field/Boolean.js +34 -0
- package/cjs/extensions/forms/Field/Boolean.js.map +1 -0
- package/cjs/extensions/forms/Field/Currency.d.ts +10 -0
- package/cjs/extensions/forms/Field/Currency.js +61 -0
- package/cjs/extensions/forms/Field/Currency.js.map +1 -0
- package/cjs/extensions/forms/Field/Date.d.ts +8 -0
- package/cjs/extensions/forms/Field/Date.js +59 -0
- package/cjs/extensions/forms/Field/Date.js.map +1 -0
- package/cjs/extensions/forms/Field/Email.d.ts +7 -0
- package/cjs/extensions/forms/Field/Email.js +34 -0
- package/cjs/extensions/forms/Field/Email.js.map +1 -0
- package/cjs/extensions/forms/Field/FirstName.d.ts +7 -0
- package/cjs/extensions/forms/Field/FirstName.js +31 -0
- package/cjs/extensions/forms/Field/FirstName.js.map +1 -0
- package/cjs/extensions/forms/Field/LastName.d.ts +7 -0
- package/cjs/extensions/forms/Field/LastName.js +31 -0
- package/cjs/extensions/forms/Field/LastName.js.map +1 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber.d.ts +10 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber.js +39 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber.js.map +1 -0
- package/cjs/extensions/forms/Field/Number.d.ts +31 -0
- package/cjs/extensions/forms/Field/Number.js +111 -0
- package/cjs/extensions/forms/Field/Number.js.map +1 -0
- package/cjs/extensions/forms/Field/Option.d.ts +9 -0
- package/cjs/extensions/forms/Field/Option.js +22 -0
- package/cjs/extensions/forms/Field/Option.js.map +1 -0
- package/cjs/extensions/forms/Field/OrganizationNumber.d.ts +10 -0
- package/cjs/extensions/forms/Field/OrganizationNumber.js +40 -0
- package/cjs/extensions/forms/Field/OrganizationNumber.js.map +1 -0
- package/cjs/extensions/forms/Field/PhoneNumber.d.ts +12 -0
- package/cjs/extensions/forms/Field/PhoneNumber.js +101 -0
- package/cjs/extensions/forms/Field/PhoneNumber.js.map +1 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity.d.ts +10 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity.js +59 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity.js.map +1 -0
- package/cjs/extensions/forms/Field/SelectCountry.d.ts +7 -0
- package/cjs/extensions/forms/Field/SelectCountry.js +38 -0
- package/cjs/extensions/forms/Field/SelectCountry.js.map +1 -0
- package/cjs/extensions/forms/Field/Selection.d.ts +13 -0
- package/cjs/extensions/forms/Field/Selection.js +120 -0
- package/cjs/extensions/forms/Field/Selection.js.map +1 -0
- package/cjs/extensions/forms/Field/String.d.ts +32 -0
- package/cjs/extensions/forms/Field/String.js +135 -0
- package/cjs/extensions/forms/Field/String.js.map +1 -0
- package/cjs/extensions/forms/Field/Toggle.d.ts +14 -0
- package/cjs/extensions/forms/Field/Toggle.js +129 -0
- package/cjs/extensions/forms/Field/Toggle.js.map +1 -0
- package/cjs/extensions/forms/Field/fields.scss +2 -0
- package/cjs/extensions/forms/Field/hooks/index.d.ts +1 -0
- package/cjs/extensions/forms/Field/hooks/index.js +14 -0
- package/cjs/extensions/forms/Field/hooks/index.js.map +1 -0
- package/cjs/extensions/forms/Field/hooks/useField.d.ts +11 -0
- package/cjs/extensions/forms/Field/hooks/useField.js +163 -0
- package/cjs/extensions/forms/Field/hooks/useField.js.map +1 -0
- package/cjs/extensions/forms/Field/index.d.ts +39 -0
- package/cjs/extensions/forms/Field/index.js +48 -0
- package/cjs/extensions/forms/Field/index.js.map +1 -0
- package/cjs/extensions/forms/Field/style/dnb-number.css +11 -0
- package/cjs/extensions/forms/Field/style/dnb-number.min.css +1 -0
- package/cjs/extensions/forms/Field/style/dnb-number.scss +19 -0
- package/cjs/extensions/forms/Field/style/dnb-phone-number.css +23 -0
- package/cjs/extensions/forms/Field/style/dnb-phone-number.min.css +1 -0
- package/cjs/extensions/forms/Field/style/dnb-phone-number.scss +28 -0
- package/cjs/extensions/forms/Field/style/dnb-postal-code-and-city.css +19 -0
- package/cjs/extensions/forms/Field/style/dnb-postal-code-and-city.min.css +1 -0
- package/cjs/extensions/forms/Field/style/dnb-postal-code-and-city.scss +25 -0
- package/cjs/extensions/forms/Field/style/dnb-selection.css +6 -0
- package/cjs/extensions/forms/Field/style/dnb-selection.min.css +1 -0
- package/cjs/extensions/forms/Field/style/dnb-selection.scss +15 -0
- package/cjs/extensions/forms/Field/style/dnb-string.css +11 -0
- package/cjs/extensions/forms/Field/style/dnb-string.min.css +1 -0
- package/cjs/extensions/forms/Field/style/dnb-string.scss +19 -0
- package/cjs/extensions/forms/Field/style/index.d.ts +6 -0
- package/cjs/extensions/forms/Field/style/index.js +5 -0
- package/cjs/extensions/forms/Field/style/index.js.map +1 -0
- package/cjs/extensions/forms/Field/style/index.scss +5 -0
- package/cjs/extensions/forms/Field/style.d.ts +5 -0
- package/cjs/extensions/forms/Field/style.js +4 -0
- package/cjs/extensions/forms/Field/style.js.map +1 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +12 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +77 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -0
- package/cjs/extensions/forms/FieldBlock/index.d.ts +1 -0
- package/cjs/extensions/forms/FieldBlock/index.js +14 -0
- package/cjs/extensions/forms/FieldBlock/index.js.map +1 -0
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -0
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +19 -0
- package/cjs/extensions/forms/FieldBlock/style/index.d.ts +5 -0
- package/cjs/extensions/forms/FieldBlock/style/index.js +4 -0
- package/cjs/extensions/forms/FieldBlock/style/index.js.map +1 -0
- package/cjs/extensions/forms/FieldBlock/style.d.ts +5 -0
- package/cjs/extensions/forms/FieldBlock/style.js +4 -0
- package/cjs/extensions/forms/FieldBlock/style.js.map +1 -0
- package/cjs/extensions/forms/FieldGroup/FieldGroup.d.ts +17 -0
- package/cjs/extensions/forms/FieldGroup/FieldGroup.js +95 -0
- package/cjs/extensions/forms/FieldGroup/FieldGroup.js.map +1 -0
- package/cjs/extensions/forms/FieldGroup/index.d.ts +2 -0
- package/cjs/extensions/forms/FieldGroup/index.js +27 -0
- package/cjs/extensions/forms/FieldGroup/index.js.map +1 -0
- package/cjs/extensions/forms/Forms.d.ts +3 -0
- package/cjs/extensions/forms/Forms.js +22 -0
- package/cjs/extensions/forms/Forms.js.map +1 -0
- package/cjs/extensions/forms/Layout/ButtonRow.d.ts +10 -0
- package/cjs/extensions/forms/Layout/ButtonRow.js +25 -0
- package/cjs/extensions/forms/Layout/ButtonRow.js.map +1 -0
- package/cjs/extensions/forms/Layout/Card.d.ts +14 -0
- package/cjs/extensions/forms/Layout/Card.js +45 -0
- package/cjs/extensions/forms/Layout/Card.js.map +1 -0
- package/cjs/extensions/forms/Layout/Column.d.ts +7 -0
- package/cjs/extensions/forms/Layout/Column.js +26 -0
- package/cjs/extensions/forms/Layout/Column.js.map +1 -0
- package/cjs/extensions/forms/Layout/FlexContainer.d.ts +23 -0
- package/cjs/extensions/forms/Layout/FlexContainer.js +104 -0
- package/cjs/extensions/forms/Layout/FlexContainer.js.map +1 -0
- package/cjs/extensions/forms/Layout/FlexItem.d.ts +12 -0
- package/cjs/extensions/forms/Layout/FlexItem.js +28 -0
- package/cjs/extensions/forms/Layout/FlexItem.js.map +1 -0
- package/cjs/extensions/forms/Layout/InfoCardSection.d.ts +8 -0
- package/cjs/extensions/forms/Layout/InfoCardSection.js +25 -0
- package/cjs/extensions/forms/Layout/InfoCardSection.js.map +1 -0
- package/cjs/extensions/forms/Layout/MainHeading.d.ts +10 -0
- package/cjs/extensions/forms/Layout/MainHeading.js +27 -0
- package/cjs/extensions/forms/Layout/MainHeading.js.map +1 -0
- package/cjs/extensions/forms/Layout/Row.d.ts +7 -0
- package/cjs/extensions/forms/Layout/Row.js +26 -0
- package/cjs/extensions/forms/Layout/Row.js.map +1 -0
- package/cjs/extensions/forms/Layout/Section.d.ts +13 -0
- package/cjs/extensions/forms/Layout/Section.js +29 -0
- package/cjs/extensions/forms/Layout/Section.js.map +1 -0
- package/cjs/extensions/forms/Layout/SubHeading.d.ts +10 -0
- package/cjs/extensions/forms/Layout/SubHeading.js +26 -0
- package/cjs/extensions/forms/Layout/SubHeading.js.map +1 -0
- package/cjs/extensions/forms/Layout/index.d.ts +23 -0
- package/cjs/extensions/forms/Layout/index.js +32 -0
- package/cjs/extensions/forms/Layout/index.js.map +1 -0
- package/cjs/extensions/forms/Layout/style/dnb-button-row.css +7 -0
- package/cjs/extensions/forms/Layout/style/dnb-button-row.min.css +1 -0
- package/cjs/extensions/forms/Layout/style/dnb-button-row.scss +5 -0
- package/cjs/extensions/forms/Layout/style/dnb-card.css +13 -0
- package/cjs/extensions/forms/Layout/style/dnb-card.min.css +1 -0
- package/cjs/extensions/forms/Layout/style/dnb-card.scss +15 -0
- package/cjs/extensions/forms/Layout/style/dnb-flex-container.css +63 -0
- package/cjs/extensions/forms/Layout/style/dnb-flex-container.min.css +1 -0
- package/cjs/extensions/forms/Layout/style/dnb-flex-container.scss +84 -0
- package/cjs/extensions/forms/Layout/style/dnb-flex-item.css +6 -0
- package/cjs/extensions/forms/Layout/style/dnb-flex-item.min.css +1 -0
- package/cjs/extensions/forms/Layout/style/dnb-flex-item.scss +9 -0
- package/cjs/extensions/forms/Layout/style/dnb-section.css +3 -0
- package/cjs/extensions/forms/Layout/style/dnb-section.min.css +1 -0
- package/cjs/extensions/forms/Layout/style/dnb-section.scss +3 -0
- package/cjs/extensions/forms/Layout/style/index.d.ts +9 -0
- package/cjs/extensions/forms/Layout/style/index.js +8 -0
- package/cjs/extensions/forms/Layout/style/index.js.map +1 -0
- package/cjs/extensions/forms/Layout/style/index.scss +5 -0
- package/cjs/extensions/forms/Layout/style.d.ts +5 -0
- package/cjs/extensions/forms/Layout/style.js +4 -0
- package/cjs/extensions/forms/Layout/style.js.map +1 -0
- package/cjs/extensions/forms/StepsLayout/Buttons.d.ts +9 -0
- package/cjs/extensions/forms/StepsLayout/Buttons.js +27 -0
- package/cjs/extensions/forms/StepsLayout/Buttons.js.map +1 -0
- package/cjs/extensions/forms/StepsLayout/NextButton.d.ts +10 -0
- package/cjs/extensions/forms/StepsLayout/NextButton.js +37 -0
- package/cjs/extensions/forms/StepsLayout/NextButton.js.map +1 -0
- package/cjs/extensions/forms/StepsLayout/PreviousButton.d.ts +10 -0
- package/cjs/extensions/forms/StepsLayout/PreviousButton.js +37 -0
- package/cjs/extensions/forms/StepsLayout/PreviousButton.js.map +1 -0
- package/cjs/extensions/forms/StepsLayout/Step.d.ts +15 -0
- package/cjs/extensions/forms/StepsLayout/Step.js +37 -0
- package/cjs/extensions/forms/StepsLayout/Step.js.map +1 -0
- package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +8 -0
- package/cjs/extensions/forms/StepsLayout/StepsContext.js +12 -0
- package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +1 -0
- package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +19 -0
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js +116 -0
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -0
- package/cjs/extensions/forms/StepsLayout/index.d.ts +3 -0
- package/cjs/extensions/forms/StepsLayout/index.js +18 -0
- package/cjs/extensions/forms/StepsLayout/index.js.map +1 -0
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +25 -0
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -0
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +23 -0
- package/cjs/extensions/forms/StepsLayout/style/index.d.ts +5 -0
- package/cjs/extensions/forms/StepsLayout/style/index.js +4 -0
- package/cjs/extensions/forms/StepsLayout/style/index.js.map +1 -0
- package/cjs/extensions/forms/StepsLayout/style/index.scss +1 -0
- package/cjs/extensions/forms/StepsLayout/style.d.ts +5 -0
- package/cjs/extensions/forms/StepsLayout/style.js +4 -0
- package/cjs/extensions/forms/StepsLayout/style.js.map +1 -0
- package/cjs/extensions/forms/Value/BankAccountNumber.d.ts +7 -0
- package/cjs/extensions/forms/Value/BankAccountNumber.js +32 -0
- package/cjs/extensions/forms/Value/BankAccountNumber.js.map +1 -0
- package/cjs/extensions/forms/Value/Boolean.d.ts +8 -0
- package/cjs/extensions/forms/Value/Boolean.js +37 -0
- package/cjs/extensions/forms/Value/Boolean.js.map +1 -0
- package/cjs/extensions/forms/Value/Currency.d.ts +7 -0
- package/cjs/extensions/forms/Value/Currency.js +26 -0
- package/cjs/extensions/forms/Value/Currency.js.map +1 -0
- package/cjs/extensions/forms/Value/Date.d.ts +7 -0
- package/cjs/extensions/forms/Value/Date.js +28 -0
- package/cjs/extensions/forms/Value/Date.js.map +1 -0
- package/cjs/extensions/forms/Value/Email.d.ts +7 -0
- package/cjs/extensions/forms/Value/Email.js +28 -0
- package/cjs/extensions/forms/Value/Email.js.map +1 -0
- package/cjs/extensions/forms/Value/FirstName.d.ts +7 -0
- package/cjs/extensions/forms/Value/FirstName.js +28 -0
- package/cjs/extensions/forms/Value/FirstName.js.map +1 -0
- package/cjs/extensions/forms/Value/LastName.d.ts +7 -0
- package/cjs/extensions/forms/Value/LastName.js +28 -0
- package/cjs/extensions/forms/Value/LastName.js.map +1 -0
- package/cjs/extensions/forms/Value/NationalIdentityNumber.d.ts +7 -0
- package/cjs/extensions/forms/Value/NationalIdentityNumber.js +32 -0
- package/cjs/extensions/forms/Value/NationalIdentityNumber.js.map +1 -0
- package/cjs/extensions/forms/Value/Number.d.ts +14 -0
- package/cjs/extensions/forms/Value/Number.js +44 -0
- package/cjs/extensions/forms/Value/Number.js.map +1 -0
- package/cjs/extensions/forms/Value/PhoneNumber.d.ts +7 -0
- package/cjs/extensions/forms/Value/PhoneNumber.js +32 -0
- package/cjs/extensions/forms/Value/PhoneNumber.js.map +1 -0
- package/cjs/extensions/forms/Value/String.d.ts +8 -0
- package/cjs/extensions/forms/Value/String.js +34 -0
- package/cjs/extensions/forms/Value/String.js.map +1 -0
- package/cjs/extensions/forms/Value/hooks/index.d.ts +1 -0
- package/cjs/extensions/forms/Value/hooks/index.js +14 -0
- package/cjs/extensions/forms/Value/hooks/index.js.map +1 -0
- package/cjs/extensions/forms/Value/hooks/useValue.d.ts +2 -0
- package/cjs/extensions/forms/Value/hooks/useValue.js +31 -0
- package/cjs/extensions/forms/Value/hooks/useValue.js.map +1 -0
- package/cjs/extensions/forms/Value/index.d.ts +25 -0
- package/cjs/extensions/forms/Value/index.js +34 -0
- package/cjs/extensions/forms/Value/index.js.map +1 -0
- package/cjs/extensions/forms/ValueBlock/ValueBlock.d.ts +11 -0
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +38 -0
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -0
- package/cjs/extensions/forms/ValueBlock/index.d.ts +1 -0
- package/cjs/extensions/forms/ValueBlock/index.js +14 -0
- package/cjs/extensions/forms/ValueBlock/index.js.map +1 -0
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +16 -0
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -0
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +19 -0
- package/cjs/extensions/forms/ValueBlock/style/index.d.ts +5 -0
- package/cjs/extensions/forms/ValueBlock/style/index.js +4 -0
- package/cjs/extensions/forms/ValueBlock/style/index.js.map +1 -0
- package/cjs/extensions/forms/ValueBlock/style/index.scss +1 -0
- package/cjs/extensions/forms/ValueBlock/style.d.ts +5 -0
- package/cjs/extensions/forms/ValueBlock/style.js +4 -0
- package/cjs/extensions/forms/ValueBlock/style.js.map +1 -0
- package/cjs/extensions/forms/Visibility/Visibility.d.ts +24 -0
- package/cjs/extensions/forms/Visibility/Visibility.js +55 -0
- package/cjs/extensions/forms/Visibility/Visibility.js.map +1 -0
- package/cjs/extensions/forms/Visibility/index.d.ts +1 -0
- package/cjs/extensions/forms/Visibility/index.js +14 -0
- package/cjs/extensions/forms/Visibility/index.js.map +1 -0
- package/cjs/extensions/forms/component-types.d.ts +4 -0
- package/cjs/extensions/forms/component-types.js +1 -0
- package/cjs/extensions/forms/component-types.js.map +1 -0
- package/cjs/extensions/forms/constants/countries.d.ts +6 -0
- package/cjs/extensions/forms/constants/countries.js +969 -0
- package/cjs/extensions/forms/constants/countries.js.map +1 -0
- package/cjs/extensions/forms/field-types.d.ts +52 -0
- package/cjs/extensions/forms/field-types.js +1 -0
- package/cjs/extensions/forms/field-types.js.map +1 -0
- package/cjs/extensions/forms/index.d.ts +13 -0
- package/cjs/extensions/forms/index.js +110 -0
- package/cjs/extensions/forms/index.js.map +1 -0
- package/cjs/extensions/forms/style/dnb-forms.css +237 -0
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -0
- package/cjs/extensions/forms/style/dnb-forms.scss +6 -0
- package/cjs/extensions/forms/style.d.ts +5 -0
- package/cjs/extensions/forms/style.js +4 -0
- package/cjs/extensions/forms/style.js.map +1 -0
- package/cjs/extensions/forms/types.d.ts +11 -0
- package/cjs/extensions/forms/types.js +20 -0
- package/cjs/extensions/forms/types.js.map +1 -0
- package/cjs/extensions/forms/utils/TestElement/TestElement.d.ts +6 -0
- package/cjs/extensions/forms/utils/TestElement/TestElement.js +17 -0
- package/cjs/extensions/forms/utils/TestElement/TestElement.js.map +1 -0
- package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.css +6 -0
- package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -0
- package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.scss +6 -0
- package/cjs/extensions/forms/utils/TestElement/style/index.d.ts +5 -0
- package/cjs/extensions/forms/utils/TestElement/style/index.js +4 -0
- package/cjs/extensions/forms/utils/TestElement/style/index.js.map +1 -0
- package/cjs/extensions/forms/utils/TestElement/style.d.ts +5 -0
- package/cjs/extensions/forms/utils/TestElement/style.js +4 -0
- package/cjs/extensions/forms/utils/TestElement/style.js.map +1 -0
- package/cjs/extensions/forms/utils/ajv.d.ts +14 -0
- package/cjs/extensions/forms/utils/ajv.js +69 -0
- package/cjs/extensions/forms/utils/ajv.js.map +1 -0
- package/cjs/extensions/forms/utils/components.d.ts +3 -0
- package/cjs/extensions/forms/utils/components.js +32 -0
- package/cjs/extensions/forms/utils/components.js.map +1 -0
- package/cjs/extensions/forms/utils/index.d.ts +3 -0
- package/cjs/extensions/forms/utils/index.js +41 -0
- package/cjs/extensions/forms/utils/index.js.map +1 -0
- package/cjs/extensions/forms/utils/numbers.d.ts +17 -0
- package/cjs/extensions/forms/utils/numbers.js +42 -0
- package/cjs/extensions/forms/utils/numbers.js.map +1 -0
- package/cjs/extensions/forms/value-types.d.ts +15 -0
- package/cjs/extensions/forms/value-types.js +1 -0
- package/cjs/extensions/forms/value-types.js.map +1 -0
- package/cjs/extensions/index.d.ts +2 -1
- package/cjs/extensions/index.js +7 -0
- package/cjs/extensions/index.js.map +1 -1
- package/cjs/extensions/lib.d.ts +22 -1
- package/cjs/extensions/lib.js +8 -0
- package/cjs/extensions/lib.js.map +1 -1
- package/cjs/extensions/payment-card/utils/Types.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/cjs/shared/Context.d.ts +2 -0
- package/cjs/shared/Context.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/VisibilityByTheme.d.ts +1 -1
- package/cjs/shared/VisibilityByTheme.js.map +1 -1
- package/cjs/shared/helpers.d.ts +2 -2
- package/cjs/shared/helpers.js.map +1 -1
- package/cjs/shared/locales/en-GB.d.ts +39 -0
- package/cjs/shared/locales/en-GB.js +39 -0
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +39 -0
- package/cjs/shared/locales/index.d.ts +78 -0
- package/cjs/shared/locales/nb-NO.d.ts +39 -0
- package/cjs/shared/locales/nb-NO.js +39 -0
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/style/core/utilities.scss +40 -8
- package/cjs/style/dnb-ui-components.css +71 -24
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +238 -0
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +105 -82
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +238 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/properties.js +4 -4
- package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/properties.scss +4 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +4 -11
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +429 -333
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +238 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +17 -11
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +105 -82
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +17 -11
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +238 -0
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +24 -12
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/accordion/Accordion.d.ts +240 -136
- package/components/accordion/Accordion.js +214 -251
- package/components/accordion/Accordion.js.map +1 -1
- package/components/accordion/AccordionContent.d.ts +12 -14
- package/components/accordion/AccordionContent.js +5 -17
- package/components/accordion/AccordionContent.js.map +1 -1
- package/components/accordion/AccordionContext.d.ts +17 -2
- package/components/accordion/AccordionContext.js.map +1 -1
- package/components/accordion/AccordionGroup.d.ts +10 -12
- package/components/accordion/AccordionGroup.js +60 -71
- package/components/accordion/AccordionGroup.js.map +1 -1
- package/components/accordion/AccordionHeader.d.ts +62 -92
- package/components/accordion/AccordionHeader.js +175 -251
- package/components/accordion/AccordionHeader.js.map +1 -1
- package/components/accordion/AccordionProviderContext.d.ts +16 -2
- package/components/accordion/AccordionProviderContext.js.map +1 -1
- package/components/accordion/AccordionStore.d.ts +7 -6
- package/components/accordion/AccordionStore.js +2 -2
- package/components/accordion/AccordionStore.js.map +1 -1
- package/components/accordion/defaultProps.d.ts +2 -0
- package/components/accordion/defaultProps.js +5 -0
- package/components/accordion/defaultProps.js.map +1 -0
- package/components/anchor/style/anchor-mixins.scss +26 -27
- package/components/anchor/style/dnb-anchor.css +27 -16
- package/components/anchor/style/dnb-anchor.min.css +1 -1
- package/components/anchor/style/dnb-anchor.scss +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +97 -44
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +48 -22
- package/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
- package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
- package/components/autocomplete/Autocomplete.js +2 -2
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/button/style/themes/button-mixins.scss +23 -4
- package/components/button/style/themes/dnb-button-theme-sbanken.css +80 -82
- package/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -1
- package/components/button/style/themes/dnb-button-theme-sbanken.scss +82 -54
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/components/dialog/Dialog.d.ts +1 -1
- package/components/dialog/DialogContent.d.ts +1 -1
- package/components/dialog/DialogContent.js +4 -2
- package/components/dialog/DialogContent.js.map +1 -1
- package/components/dialog/parts/DialogAction.d.ts +5 -1
- package/components/dialog/parts/DialogAction.js +3 -2
- package/components/dialog/parts/DialogAction.js.map +1 -1
- package/components/form-row/FormRow.js.map +1 -1
- package/components/form-row/style/dnb-form-row.scss +2 -2
- package/components/form-set/FormSet.js.map +1 -1
- package/components/height-animation/HeightAnimation.d.ts +1 -1
- package/components/height-animation/HeightAnimation.js.map +1 -1
- package/components/height-animation/useHeightAnimation.js.map +1 -1
- package/components/icon/lib/SvgComparison.js.map +1 -1
- package/components/input/style/dnb-input.css +5 -0
- package/components/input/style/dnb-input.min.css +1 -1
- package/components/input/style/dnb-input.scss +7 -1
- package/components/input/style/themes/dnb-input-theme-sbanken.css +104 -0
- package/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -0
- package/components/input/style/themes/dnb-input-theme-sbanken.scss +126 -0
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/input-masked/TextMask.js.map +1 -1
- package/components/modal/Modal.js +0 -2
- package/components/modal/Modal.js.map +1 -1
- package/components/modal/bodyScrollLock.js.map +1 -1
- package/components/number-format/NumberUtils.js +8 -6
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/number-format/style/dnb-number-format.css +0 -7
- package/components/number-format/style/dnb-number-format.scss +0 -1
- package/components/pagination/PaginationInfinity.js.map +1 -1
- package/components/radio/Radio.js.map +1 -1
- package/components/section/style/themes/dnb-section-theme-ui.css +14 -7
- package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/components/slider/hooks/useSliderEvents.js.map +1 -1
- package/components/slider/types.d.ts +1 -1
- package/components/slider/types.js.map +1 -1
- package/components/space/Space.d.ts +2 -2
- package/components/space/SpacingHelper.js.map +1 -1
- package/components/step-indicator/StepIndicatorProps.d.ts +1 -1
- package/components/table/TableAccordion.js.map +1 -1
- package/components/table/TableTr.js.map +1 -1
- package/components/textarea/Textarea.js.map +1 -1
- package/components/textarea/style/dnb-textarea.css +39 -1
- package/components/textarea/style/dnb-textarea.min.css +1 -1
- package/components/textarea/style/dnb-textarea.scss +20 -1
- package/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +61 -0
- package/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -0
- package/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +72 -0
- package/components/textarea/style/themes/dnb-textarea-theme-ui.css +0 -41
- package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
- package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +0 -22
- package/components/toggle-button/ToggleButton.js.map +1 -1
- package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/components/tooltip/TooltipContainer.js.map +1 -1
- package/components/upload/Upload.js +2 -2
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/useUpload.d.ts +1 -1
- package/components/upload/useUpload.js +2 -2
- package/components/upload/useUpload.js.map +1 -1
- package/elements/blockquote/Blockquote.d.ts +1 -1
- package/elements/blockquote/Blockquote.js.map +1 -1
- package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
- package/es/components/accordion/Accordion.d.ts +240 -136
- package/es/components/accordion/Accordion.js +210 -244
- package/es/components/accordion/Accordion.js.map +1 -1
- package/es/components/accordion/AccordionContent.d.ts +12 -14
- package/es/components/accordion/AccordionContent.js +5 -17
- package/es/components/accordion/AccordionContent.js.map +1 -1
- package/es/components/accordion/AccordionContext.d.ts +17 -2
- package/es/components/accordion/AccordionContext.js.map +1 -1
- package/es/components/accordion/AccordionGroup.d.ts +10 -12
- package/es/components/accordion/AccordionGroup.js +60 -71
- package/es/components/accordion/AccordionGroup.js.map +1 -1
- package/es/components/accordion/AccordionHeader.d.ts +62 -92
- package/es/components/accordion/AccordionHeader.js +176 -253
- package/es/components/accordion/AccordionHeader.js.map +1 -1
- package/es/components/accordion/AccordionProviderContext.d.ts +16 -2
- package/es/components/accordion/AccordionProviderContext.js.map +1 -1
- package/es/components/accordion/AccordionStore.d.ts +7 -6
- package/es/components/accordion/AccordionStore.js +2 -2
- package/es/components/accordion/AccordionStore.js.map +1 -1
- package/es/components/accordion/defaultProps.d.ts +2 -0
- package/es/components/accordion/defaultProps.js +5 -0
- package/es/components/accordion/defaultProps.js.map +1 -0
- package/es/components/anchor/style/anchor-mixins.scss +26 -27
- package/es/components/anchor/style/dnb-anchor.css +27 -16
- package/es/components/anchor/style/dnb-anchor.min.css +1 -1
- package/es/components/anchor/style/dnb-anchor.scss +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +97 -44
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +48 -22
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
- package/es/components/autocomplete/Autocomplete.js +2 -2
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/button/style/themes/button-mixins.scss +23 -4
- package/es/components/button/style/themes/dnb-button-theme-sbanken.css +80 -82
- package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -1
- package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +82 -54
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/es/components/dialog/Dialog.d.ts +1 -1
- package/es/components/dialog/DialogContent.d.ts +1 -1
- package/es/components/dialog/DialogContent.js +4 -2
- package/es/components/dialog/DialogContent.js.map +1 -1
- package/es/components/dialog/parts/DialogAction.d.ts +5 -1
- package/es/components/dialog/parts/DialogAction.js +3 -2
- package/es/components/dialog/parts/DialogAction.js.map +1 -1
- package/es/components/form-row/FormRow.js.map +1 -1
- package/es/components/form-row/style/dnb-form-row.scss +2 -2
- package/es/components/form-set/FormSet.js.map +1 -1
- package/es/components/height-animation/HeightAnimation.d.ts +1 -1
- package/es/components/height-animation/HeightAnimation.js.map +1 -1
- package/es/components/height-animation/useHeightAnimation.js.map +1 -1
- package/es/components/icon/lib/SvgComparison.js.map +1 -1
- package/es/components/input/style/dnb-input.css +5 -0
- package/es/components/input/style/dnb-input.min.css +1 -1
- package/es/components/input/style/dnb-input.scss +7 -1
- package/es/components/input/style/themes/dnb-input-theme-sbanken.css +104 -0
- package/es/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -0
- package/es/components/input/style/themes/dnb-input-theme-sbanken.scss +126 -0
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/input-masked/TextMask.js.map +1 -1
- package/es/components/modal/Modal.js +0 -2
- package/es/components/modal/Modal.js.map +1 -1
- package/es/components/modal/bodyScrollLock.js.map +1 -1
- package/es/components/number-format/NumberUtils.js +8 -6
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/number-format/style/dnb-number-format.css +0 -7
- package/es/components/number-format/style/dnb-number-format.scss +0 -1
- package/es/components/pagination/PaginationInfinity.js.map +1 -1
- package/es/components/radio/Radio.js.map +1 -1
- package/es/components/section/style/themes/dnb-section-theme-ui.css +14 -7
- package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/es/components/slider/hooks/useSliderEvents.js.map +1 -1
- package/es/components/slider/types.d.ts +1 -1
- package/es/components/slider/types.js.map +1 -1
- package/es/components/space/Space.d.ts +2 -2
- package/es/components/space/SpacingHelper.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorProps.d.ts +1 -1
- package/es/components/table/TableAccordion.js.map +1 -1
- package/es/components/table/TableTr.js.map +1 -1
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/components/textarea/style/dnb-textarea.css +39 -1
- package/es/components/textarea/style/dnb-textarea.min.css +1 -1
- package/es/components/textarea/style/dnb-textarea.scss +20 -1
- package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +61 -0
- package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -0
- package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +72 -0
- package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +0 -41
- package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
- package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +0 -22
- package/es/components/toggle-button/ToggleButton.js.map +1 -1
- package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/es/components/tooltip/TooltipContainer.js.map +1 -1
- package/es/components/upload/Upload.js +2 -2
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/useUpload.d.ts +1 -1
- package/es/components/upload/useUpload.js +2 -2
- package/es/components/upload/useUpload.js.map +1 -1
- package/es/elements/blockquote/Blockquote.d.ts +1 -1
- package/es/elements/blockquote/Blockquote.js.map +1 -1
- package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
- package/es/extensions/forms/DataContext/At.d.ts +13 -0
- package/es/extensions/forms/DataContext/At.js +48 -0
- package/es/extensions/forms/DataContext/At.js.map +1 -0
- package/es/extensions/forms/DataContext/Context.d.ts +19 -0
- package/es/extensions/forms/DataContext/Context.js +16 -0
- package/es/extensions/forms/DataContext/Context.js.map +1 -0
- package/es/extensions/forms/DataContext/Provider.d.ts +19 -0
- package/es/extensions/forms/DataContext/Provider.js +102 -0
- package/es/extensions/forms/DataContext/Provider.js.map +1 -0
- package/es/extensions/forms/DataContext/SubmitButton.d.ts +9 -0
- package/es/extensions/forms/DataContext/SubmitButton.js +20 -0
- package/es/extensions/forms/DataContext/SubmitButton.js.map +1 -0
- package/es/extensions/forms/DataContext/index.d.ts +13 -0
- package/es/extensions/forms/DataContext/index.js +12 -0
- package/es/extensions/forms/DataContext/index.js.map +1 -0
- package/es/extensions/forms/Field/ArraySelection.d.ts +12 -0
- package/es/extensions/forms/Field/ArraySelection.js +60 -0
- package/es/extensions/forms/Field/ArraySelection.js.map +1 -0
- package/es/extensions/forms/Field/BankAccountNumber.d.ts +10 -0
- package/es/extensions/forms/Field/BankAccountNumber.js +28 -0
- package/es/extensions/forms/Field/BankAccountNumber.js.map +1 -0
- package/es/extensions/forms/Field/Boolean.d.ts +10 -0
- package/es/extensions/forms/Field/Boolean.js +23 -0
- package/es/extensions/forms/Field/Boolean.js.map +1 -0
- package/es/extensions/forms/Field/Currency.d.ts +10 -0
- package/es/extensions/forms/Field/Currency.js +50 -0
- package/es/extensions/forms/Field/Currency.js.map +1 -0
- package/es/extensions/forms/Field/Date.d.ts +8 -0
- package/es/extensions/forms/Field/Date.js +46 -0
- package/es/extensions/forms/Field/Date.js.map +1 -0
- package/es/extensions/forms/Field/Email.d.ts +7 -0
- package/es/extensions/forms/Field/Email.js +22 -0
- package/es/extensions/forms/Field/Email.js.map +1 -0
- package/es/extensions/forms/Field/FirstName.d.ts +7 -0
- package/es/extensions/forms/Field/FirstName.js +19 -0
- package/es/extensions/forms/Field/FirstName.js.map +1 -0
- package/es/extensions/forms/Field/LastName.d.ts +7 -0
- package/es/extensions/forms/Field/LastName.js +19 -0
- package/es/extensions/forms/Field/LastName.js.map +1 -0
- package/es/extensions/forms/Field/NationalIdentityNumber.d.ts +10 -0
- package/es/extensions/forms/Field/NationalIdentityNumber.js +27 -0
- package/es/extensions/forms/Field/NationalIdentityNumber.js.map +1 -0
- package/es/extensions/forms/Field/Number.d.ts +31 -0
- package/es/extensions/forms/Field/Number.js +100 -0
- package/es/extensions/forms/Field/Number.js.map +1 -0
- package/es/extensions/forms/Field/Option.d.ts +9 -0
- package/es/extensions/forms/Field/Option.js +14 -0
- package/es/extensions/forms/Field/Option.js.map +1 -0
- package/es/extensions/forms/Field/OrganizationNumber.d.ts +10 -0
- package/es/extensions/forms/Field/OrganizationNumber.js +28 -0
- package/es/extensions/forms/Field/OrganizationNumber.js.map +1 -0
- package/es/extensions/forms/Field/PhoneNumber.d.ts +12 -0
- package/es/extensions/forms/Field/PhoneNumber.js +87 -0
- package/es/extensions/forms/Field/PhoneNumber.js.map +1 -0
- package/es/extensions/forms/Field/PostalCodeAndCity.d.ts +10 -0
- package/es/extensions/forms/Field/PostalCodeAndCity.js +46 -0
- package/es/extensions/forms/Field/PostalCodeAndCity.js.map +1 -0
- package/es/extensions/forms/Field/SelectCountry.d.ts +7 -0
- package/es/extensions/forms/Field/SelectCountry.js +26 -0
- package/es/extensions/forms/Field/SelectCountry.js.map +1 -0
- package/es/extensions/forms/Field/Selection.d.ts +13 -0
- package/es/extensions/forms/Field/Selection.js +107 -0
- package/es/extensions/forms/Field/Selection.js.map +1 -0
- package/es/extensions/forms/Field/String.d.ts +32 -0
- package/es/extensions/forms/Field/String.js +122 -0
- package/es/extensions/forms/Field/String.js.map +1 -0
- package/es/extensions/forms/Field/Toggle.d.ts +14 -0
- package/es/extensions/forms/Field/Toggle.js +116 -0
- package/es/extensions/forms/Field/Toggle.js.map +1 -0
- package/es/extensions/forms/Field/fields.scss +2 -0
- package/es/extensions/forms/Field/hooks/index.d.ts +1 -0
- package/es/extensions/forms/Field/hooks/index.js +1 -0
- package/es/extensions/forms/Field/hooks/index.js.map +1 -0
- package/es/extensions/forms/Field/hooks/useField.d.ts +11 -0
- package/es/extensions/forms/Field/hooks/useField.js +150 -0
- package/es/extensions/forms/Field/hooks/useField.js.map +1 -0
- package/es/extensions/forms/Field/index.d.ts +39 -0
- package/es/extensions/forms/Field/index.js +40 -0
- package/es/extensions/forms/Field/index.js.map +1 -0
- package/es/extensions/forms/Field/style/dnb-number.css +11 -0
- package/es/extensions/forms/Field/style/dnb-number.min.css +1 -0
- package/es/extensions/forms/Field/style/dnb-number.scss +19 -0
- package/es/extensions/forms/Field/style/dnb-phone-number.css +23 -0
- package/es/extensions/forms/Field/style/dnb-phone-number.min.css +1 -0
- package/es/extensions/forms/Field/style/dnb-phone-number.scss +28 -0
- package/es/extensions/forms/Field/style/dnb-postal-code-and-city.css +19 -0
- package/es/extensions/forms/Field/style/dnb-postal-code-and-city.min.css +1 -0
- package/es/extensions/forms/Field/style/dnb-postal-code-and-city.scss +25 -0
- package/es/extensions/forms/Field/style/dnb-selection.css +6 -0
- package/es/extensions/forms/Field/style/dnb-selection.min.css +1 -0
- package/es/extensions/forms/Field/style/dnb-selection.scss +15 -0
- package/es/extensions/forms/Field/style/dnb-string.css +11 -0
- package/es/extensions/forms/Field/style/dnb-string.min.css +1 -0
- package/es/extensions/forms/Field/style/dnb-string.scss +19 -0
- package/es/extensions/forms/Field/style/index.d.ts +6 -0
- package/es/extensions/forms/Field/style/index.js +3 -0
- package/es/extensions/forms/Field/style/index.js.map +1 -0
- package/es/extensions/forms/Field/style/index.scss +5 -0
- package/es/extensions/forms/Field/style.d.ts +5 -0
- package/es/extensions/forms/Field/style.js +1 -0
- package/es/extensions/forms/Field/style.js.map +1 -0
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +12 -0
- package/es/extensions/forms/FieldBlock/FieldBlock.js +69 -0
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -0
- package/es/extensions/forms/FieldBlock/index.d.ts +1 -0
- package/es/extensions/forms/FieldBlock/index.js +1 -0
- package/es/extensions/forms/FieldBlock/index.js.map +1 -0
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -0
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +19 -0
- package/es/extensions/forms/FieldBlock/style/index.d.ts +5 -0
- package/es/extensions/forms/FieldBlock/style/index.js +1 -0
- package/es/extensions/forms/FieldBlock/style/index.js.map +1 -0
- package/es/extensions/forms/FieldBlock/style.d.ts +5 -0
- package/es/extensions/forms/FieldBlock/style.js +1 -0
- package/es/extensions/forms/FieldBlock/style.js.map +1 -0
- package/es/extensions/forms/FieldGroup/FieldGroup.d.ts +17 -0
- package/es/extensions/forms/FieldGroup/FieldGroup.js +77 -0
- package/es/extensions/forms/FieldGroup/FieldGroup.js.map +1 -0
- package/es/extensions/forms/FieldGroup/index.d.ts +2 -0
- package/es/extensions/forms/FieldGroup/index.js +3 -0
- package/es/extensions/forms/FieldGroup/index.js.map +1 -0
- package/es/extensions/forms/Forms.d.ts +3 -0
- package/es/extensions/forms/Forms.js +4 -0
- package/es/extensions/forms/Forms.js.map +1 -0
- package/es/extensions/forms/Layout/ButtonRow.d.ts +10 -0
- package/es/extensions/forms/Layout/ButtonRow.js +17 -0
- package/es/extensions/forms/Layout/ButtonRow.js.map +1 -0
- package/es/extensions/forms/Layout/Card.d.ts +14 -0
- package/es/extensions/forms/Layout/Card.js +37 -0
- package/es/extensions/forms/Layout/Card.js.map +1 -0
- package/es/extensions/forms/Layout/Column.d.ts +7 -0
- package/es/extensions/forms/Layout/Column.js +17 -0
- package/es/extensions/forms/Layout/Column.js.map +1 -0
- package/es/extensions/forms/Layout/FlexContainer.d.ts +23 -0
- package/es/extensions/forms/Layout/FlexContainer.js +91 -0
- package/es/extensions/forms/Layout/FlexContainer.js.map +1 -0
- package/es/extensions/forms/Layout/FlexItem.d.ts +12 -0
- package/es/extensions/forms/Layout/FlexItem.js +20 -0
- package/es/extensions/forms/Layout/FlexItem.js.map +1 -0
- package/es/extensions/forms/Layout/InfoCardSection.d.ts +8 -0
- package/es/extensions/forms/Layout/InfoCardSection.js +17 -0
- package/es/extensions/forms/Layout/InfoCardSection.js.map +1 -0
- package/es/extensions/forms/Layout/MainHeading.d.ts +10 -0
- package/es/extensions/forms/Layout/MainHeading.js +19 -0
- package/es/extensions/forms/Layout/MainHeading.js.map +1 -0
- package/es/extensions/forms/Layout/Row.d.ts +7 -0
- package/es/extensions/forms/Layout/Row.js +17 -0
- package/es/extensions/forms/Layout/Row.js.map +1 -0
- package/es/extensions/forms/Layout/Section.d.ts +13 -0
- package/es/extensions/forms/Layout/Section.js +21 -0
- package/es/extensions/forms/Layout/Section.js.map +1 -0
- package/es/extensions/forms/Layout/SubHeading.d.ts +10 -0
- package/es/extensions/forms/Layout/SubHeading.js +18 -0
- package/es/extensions/forms/Layout/SubHeading.js.map +1 -0
- package/es/extensions/forms/Layout/index.d.ts +23 -0
- package/es/extensions/forms/Layout/index.js +24 -0
- package/es/extensions/forms/Layout/index.js.map +1 -0
- package/es/extensions/forms/Layout/style/dnb-button-row.css +7 -0
- package/es/extensions/forms/Layout/style/dnb-button-row.min.css +1 -0
- package/es/extensions/forms/Layout/style/dnb-button-row.scss +5 -0
- package/es/extensions/forms/Layout/style/dnb-card.css +13 -0
- package/es/extensions/forms/Layout/style/dnb-card.min.css +1 -0
- package/es/extensions/forms/Layout/style/dnb-card.scss +15 -0
- package/es/extensions/forms/Layout/style/dnb-flex-container.css +63 -0
- package/es/extensions/forms/Layout/style/dnb-flex-container.min.css +1 -0
- package/es/extensions/forms/Layout/style/dnb-flex-container.scss +84 -0
- package/es/extensions/forms/Layout/style/dnb-flex-item.css +6 -0
- package/es/extensions/forms/Layout/style/dnb-flex-item.min.css +1 -0
- package/es/extensions/forms/Layout/style/dnb-flex-item.scss +9 -0
- package/es/extensions/forms/Layout/style/dnb-section.css +3 -0
- package/es/extensions/forms/Layout/style/dnb-section.min.css +1 -0
- package/es/extensions/forms/Layout/style/dnb-section.scss +3 -0
- package/es/extensions/forms/Layout/style/index.d.ts +9 -0
- package/es/extensions/forms/Layout/style/index.js +6 -0
- package/es/extensions/forms/Layout/style/index.js.map +1 -0
- package/es/extensions/forms/Layout/style/index.scss +5 -0
- package/es/extensions/forms/Layout/style.d.ts +5 -0
- package/es/extensions/forms/Layout/style.js +1 -0
- package/es/extensions/forms/Layout/style.js.map +1 -0
- package/es/extensions/forms/StepsLayout/Buttons.d.ts +9 -0
- package/es/extensions/forms/StepsLayout/Buttons.js +19 -0
- package/es/extensions/forms/StepsLayout/Buttons.js.map +1 -0
- package/es/extensions/forms/StepsLayout/NextButton.d.ts +10 -0
- package/es/extensions/forms/StepsLayout/NextButton.js +27 -0
- package/es/extensions/forms/StepsLayout/NextButton.js.map +1 -0
- package/es/extensions/forms/StepsLayout/PreviousButton.d.ts +10 -0
- package/es/extensions/forms/StepsLayout/PreviousButton.js +27 -0
- package/es/extensions/forms/StepsLayout/PreviousButton.js.map +1 -0
- package/es/extensions/forms/StepsLayout/Step.d.ts +15 -0
- package/es/extensions/forms/StepsLayout/Step.js +27 -0
- package/es/extensions/forms/StepsLayout/Step.js.map +1 -0
- package/es/extensions/forms/StepsLayout/StepsContext.d.ts +8 -0
- package/es/extensions/forms/StepsLayout/StepsContext.js +4 -0
- package/es/extensions/forms/StepsLayout/StepsContext.js.map +1 -0
- package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +19 -0
- package/es/extensions/forms/StepsLayout/StepsLayout.js +105 -0
- package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -0
- package/es/extensions/forms/StepsLayout/index.d.ts +3 -0
- package/es/extensions/forms/StepsLayout/index.js +4 -0
- package/es/extensions/forms/StepsLayout/index.js.map +1 -0
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +25 -0
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -0
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +23 -0
- package/es/extensions/forms/StepsLayout/style/index.d.ts +5 -0
- package/es/extensions/forms/StepsLayout/style/index.js +1 -0
- package/es/extensions/forms/StepsLayout/style/index.js.map +1 -0
- package/es/extensions/forms/StepsLayout/style/index.scss +1 -0
- package/es/extensions/forms/StepsLayout/style.d.ts +5 -0
- package/es/extensions/forms/StepsLayout/style.js +1 -0
- package/es/extensions/forms/StepsLayout/style.js.map +1 -0
- package/es/extensions/forms/Value/BankAccountNumber.d.ts +7 -0
- package/es/extensions/forms/Value/BankAccountNumber.js +20 -0
- package/es/extensions/forms/Value/BankAccountNumber.js.map +1 -0
- package/es/extensions/forms/Value/Boolean.d.ts +8 -0
- package/es/extensions/forms/Value/Boolean.js +27 -0
- package/es/extensions/forms/Value/Boolean.js.map +1 -0
- package/es/extensions/forms/Value/Currency.d.ts +7 -0
- package/es/extensions/forms/Value/Currency.js +16 -0
- package/es/extensions/forms/Value/Currency.js.map +1 -0
- package/es/extensions/forms/Value/Date.d.ts +7 -0
- package/es/extensions/forms/Value/Date.js +16 -0
- package/es/extensions/forms/Value/Date.js.map +1 -0
- package/es/extensions/forms/Value/Email.d.ts +7 -0
- package/es/extensions/forms/Value/Email.js +16 -0
- package/es/extensions/forms/Value/Email.js.map +1 -0
- package/es/extensions/forms/Value/FirstName.d.ts +7 -0
- package/es/extensions/forms/Value/FirstName.js +16 -0
- package/es/extensions/forms/Value/FirstName.js.map +1 -0
- package/es/extensions/forms/Value/LastName.d.ts +7 -0
- package/es/extensions/forms/Value/LastName.js +16 -0
- package/es/extensions/forms/Value/LastName.js.map +1 -0
- package/es/extensions/forms/Value/NationalIdentityNumber.d.ts +7 -0
- package/es/extensions/forms/Value/NationalIdentityNumber.js +20 -0
- package/es/extensions/forms/Value/NationalIdentityNumber.js.map +1 -0
- package/es/extensions/forms/Value/Number.d.ts +14 -0
- package/es/extensions/forms/Value/Number.js +36 -0
- package/es/extensions/forms/Value/Number.js.map +1 -0
- package/es/extensions/forms/Value/PhoneNumber.d.ts +7 -0
- package/es/extensions/forms/Value/PhoneNumber.js +20 -0
- package/es/extensions/forms/Value/PhoneNumber.js.map +1 -0
- package/es/extensions/forms/Value/String.d.ts +8 -0
- package/es/extensions/forms/Value/String.js +26 -0
- package/es/extensions/forms/Value/String.js.map +1 -0
- package/es/extensions/forms/Value/hooks/index.d.ts +1 -0
- package/es/extensions/forms/Value/hooks/index.js +1 -0
- package/es/extensions/forms/Value/hooks/index.js.map +1 -0
- package/es/extensions/forms/Value/hooks/useValue.d.ts +2 -0
- package/es/extensions/forms/Value/hooks/useValue.js +22 -0
- package/es/extensions/forms/Value/hooks/useValue.js.map +1 -0
- package/es/extensions/forms/Value/index.d.ts +25 -0
- package/es/extensions/forms/Value/index.js +26 -0
- package/es/extensions/forms/Value/index.js.map +1 -0
- package/es/extensions/forms/ValueBlock/ValueBlock.d.ts +11 -0
- package/es/extensions/forms/ValueBlock/ValueBlock.js +30 -0
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -0
- package/es/extensions/forms/ValueBlock/index.d.ts +1 -0
- package/es/extensions/forms/ValueBlock/index.js +1 -0
- package/es/extensions/forms/ValueBlock/index.js.map +1 -0
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +16 -0
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -0
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +19 -0
- package/es/extensions/forms/ValueBlock/style/index.d.ts +5 -0
- package/es/extensions/forms/ValueBlock/style/index.js +1 -0
- package/es/extensions/forms/ValueBlock/style/index.js.map +1 -0
- package/es/extensions/forms/ValueBlock/style/index.scss +1 -0
- package/es/extensions/forms/ValueBlock/style.d.ts +5 -0
- package/es/extensions/forms/ValueBlock/style.js +1 -0
- package/es/extensions/forms/ValueBlock/style.js.map +1 -0
- package/es/extensions/forms/Visibility/Visibility.d.ts +24 -0
- package/es/extensions/forms/Visibility/Visibility.js +44 -0
- package/es/extensions/forms/Visibility/Visibility.js.map +1 -0
- package/es/extensions/forms/Visibility/index.d.ts +1 -0
- package/es/extensions/forms/Visibility/index.js +1 -0
- package/es/extensions/forms/Visibility/index.js.map +1 -0
- package/es/extensions/forms/component-types.d.ts +4 -0
- package/es/extensions/forms/component-types.js +1 -0
- package/es/extensions/forms/component-types.js.map +1 -0
- package/es/extensions/forms/constants/countries.d.ts +6 -0
- package/es/extensions/forms/constants/countries.js +962 -0
- package/es/extensions/forms/constants/countries.js.map +1 -0
- package/es/extensions/forms/field-types.d.ts +52 -0
- package/es/extensions/forms/field-types.js +1 -0
- package/es/extensions/forms/field-types.js.map +1 -0
- package/es/extensions/forms/index.d.ts +13 -0
- package/es/extensions/forms/index.js +12 -0
- package/es/extensions/forms/index.js.map +1 -0
- package/es/extensions/forms/style/dnb-forms.css +237 -0
- package/es/extensions/forms/style/dnb-forms.min.css +1 -0
- package/es/extensions/forms/style/dnb-forms.scss +6 -0
- package/es/extensions/forms/style.d.ts +5 -0
- package/es/extensions/forms/style.js +1 -0
- package/es/extensions/forms/style.js.map +1 -0
- package/es/extensions/forms/types.d.ts +11 -0
- package/es/extensions/forms/types.js +11 -0
- package/es/extensions/forms/types.js.map +1 -0
- package/es/extensions/forms/utils/TestElement/TestElement.d.ts +6 -0
- package/es/extensions/forms/utils/TestElement/TestElement.js +9 -0
- package/es/extensions/forms/utils/TestElement/TestElement.js.map +1 -0
- package/es/extensions/forms/utils/TestElement/style/dnb-test-element.css +6 -0
- package/es/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -0
- package/es/extensions/forms/utils/TestElement/style/dnb-test-element.scss +6 -0
- package/es/extensions/forms/utils/TestElement/style/index.d.ts +5 -0
- package/es/extensions/forms/utils/TestElement/style/index.js +1 -0
- package/es/extensions/forms/utils/TestElement/style/index.js.map +1 -0
- package/es/extensions/forms/utils/TestElement/style.d.ts +5 -0
- package/es/extensions/forms/utils/TestElement/style.js +1 -0
- package/es/extensions/forms/utils/TestElement/style.js.map +1 -0
- package/es/extensions/forms/utils/ajv.d.ts +14 -0
- package/es/extensions/forms/utils/ajv.js +56 -0
- package/es/extensions/forms/utils/ajv.js.map +1 -0
- package/es/extensions/forms/utils/components.d.ts +3 -0
- package/es/extensions/forms/utils/components.js +23 -0
- package/es/extensions/forms/utils/components.js.map +1 -0
- package/es/extensions/forms/utils/index.d.ts +3 -0
- package/es/extensions/forms/utils/index.js +4 -0
- package/es/extensions/forms/utils/index.js.map +1 -0
- package/es/extensions/forms/utils/numbers.d.ts +17 -0
- package/es/extensions/forms/utils/numbers.js +35 -0
- package/es/extensions/forms/utils/numbers.js.map +1 -0
- package/es/extensions/forms/value-types.d.ts +15 -0
- package/es/extensions/forms/value-types.js +1 -0
- package/es/extensions/forms/value-types.js.map +1 -0
- package/es/extensions/index.d.ts +2 -1
- package/es/extensions/index.js +2 -1
- package/es/extensions/index.js.map +1 -1
- package/es/extensions/lib.d.ts +22 -1
- package/es/extensions/lib.js +3 -1
- package/es/extensions/lib.js.map +1 -1
- package/es/extensions/payment-card/utils/Types.js.map +1 -1
- package/es/fragments/drawer-list/DrawerList.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/es/shared/Context.d.ts +2 -0
- package/es/shared/Context.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/VisibilityByTheme.d.ts +1 -1
- package/es/shared/VisibilityByTheme.js.map +1 -1
- package/es/shared/helpers.d.ts +2 -2
- package/es/shared/helpers.js.map +1 -1
- package/es/shared/locales/en-GB.d.ts +39 -0
- package/es/shared/locales/en-GB.js +39 -0
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +39 -0
- package/es/shared/locales/index.d.ts +78 -0
- package/es/shared/locales/nb-NO.d.ts +39 -0
- package/es/shared/locales/nb-NO.js +39 -0
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/style/core/utilities.scss +40 -8
- package/es/style/dnb-ui-components.css +71 -24
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +238 -0
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-extensions.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +105 -82
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +238 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/properties.js +4 -4
- package/es/style/themes/theme-sbanken/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/properties.scss +4 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +4 -11
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +429 -333
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +238 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.css +17 -11
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +105 -82
- package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-elements.css +17 -11
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +238 -0
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +24 -12
- package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +7 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/At.d.ts +13 -0
- package/extensions/forms/DataContext/At.js +48 -0
- package/extensions/forms/DataContext/At.js.map +1 -0
- package/extensions/forms/DataContext/Context.d.ts +19 -0
- package/extensions/forms/DataContext/Context.js +16 -0
- package/extensions/forms/DataContext/Context.js.map +1 -0
- package/extensions/forms/DataContext/Provider.d.ts +19 -0
- package/extensions/forms/DataContext/Provider.js +103 -0
- package/extensions/forms/DataContext/Provider.js.map +1 -0
- package/extensions/forms/DataContext/SubmitButton.d.ts +9 -0
- package/extensions/forms/DataContext/SubmitButton.js +20 -0
- package/extensions/forms/DataContext/SubmitButton.js.map +1 -0
- package/extensions/forms/DataContext/index.d.ts +13 -0
- package/extensions/forms/DataContext/index.js +12 -0
- package/extensions/forms/DataContext/index.js.map +1 -0
- package/extensions/forms/Field/ArraySelection.d.ts +12 -0
- package/extensions/forms/Field/ArraySelection.js +60 -0
- package/extensions/forms/Field/ArraySelection.js.map +1 -0
- package/extensions/forms/Field/BankAccountNumber.d.ts +10 -0
- package/extensions/forms/Field/BankAccountNumber.js +28 -0
- package/extensions/forms/Field/BankAccountNumber.js.map +1 -0
- package/extensions/forms/Field/Boolean.d.ts +10 -0
- package/extensions/forms/Field/Boolean.js +23 -0
- package/extensions/forms/Field/Boolean.js.map +1 -0
- package/extensions/forms/Field/Currency.d.ts +10 -0
- package/extensions/forms/Field/Currency.js +51 -0
- package/extensions/forms/Field/Currency.js.map +1 -0
- package/extensions/forms/Field/Date.d.ts +8 -0
- package/extensions/forms/Field/Date.js +47 -0
- package/extensions/forms/Field/Date.js.map +1 -0
- package/extensions/forms/Field/Email.d.ts +7 -0
- package/extensions/forms/Field/Email.js +22 -0
- package/extensions/forms/Field/Email.js.map +1 -0
- package/extensions/forms/Field/FirstName.d.ts +7 -0
- package/extensions/forms/Field/FirstName.js +19 -0
- package/extensions/forms/Field/FirstName.js.map +1 -0
- package/extensions/forms/Field/LastName.d.ts +7 -0
- package/extensions/forms/Field/LastName.js +19 -0
- package/extensions/forms/Field/LastName.js.map +1 -0
- package/extensions/forms/Field/NationalIdentityNumber.d.ts +10 -0
- package/extensions/forms/Field/NationalIdentityNumber.js +27 -0
- package/extensions/forms/Field/NationalIdentityNumber.js.map +1 -0
- package/extensions/forms/Field/Number.d.ts +31 -0
- package/extensions/forms/Field/Number.js +101 -0
- package/extensions/forms/Field/Number.js.map +1 -0
- package/extensions/forms/Field/Option.d.ts +9 -0
- package/extensions/forms/Field/Option.js +15 -0
- package/extensions/forms/Field/Option.js.map +1 -0
- package/extensions/forms/Field/OrganizationNumber.d.ts +10 -0
- package/extensions/forms/Field/OrganizationNumber.js +28 -0
- package/extensions/forms/Field/OrganizationNumber.js.map +1 -0
- package/extensions/forms/Field/PhoneNumber.d.ts +12 -0
- package/extensions/forms/Field/PhoneNumber.js +89 -0
- package/extensions/forms/Field/PhoneNumber.js.map +1 -0
- package/extensions/forms/Field/PostalCodeAndCity.d.ts +10 -0
- package/extensions/forms/Field/PostalCodeAndCity.js +46 -0
- package/extensions/forms/Field/PostalCodeAndCity.js.map +1 -0
- package/extensions/forms/Field/SelectCountry.d.ts +7 -0
- package/extensions/forms/Field/SelectCountry.js +26 -0
- package/extensions/forms/Field/SelectCountry.js.map +1 -0
- package/extensions/forms/Field/Selection.d.ts +13 -0
- package/extensions/forms/Field/Selection.js +110 -0
- package/extensions/forms/Field/Selection.js.map +1 -0
- package/extensions/forms/Field/String.d.ts +32 -0
- package/extensions/forms/Field/String.js +123 -0
- package/extensions/forms/Field/String.js.map +1 -0
- package/extensions/forms/Field/Toggle.d.ts +14 -0
- package/extensions/forms/Field/Toggle.js +117 -0
- package/extensions/forms/Field/Toggle.js.map +1 -0
- package/extensions/forms/Field/fields.scss +2 -0
- package/extensions/forms/Field/hooks/index.d.ts +1 -0
- package/extensions/forms/Field/hooks/index.js +1 -0
- package/extensions/forms/Field/hooks/index.js.map +1 -0
- package/extensions/forms/Field/hooks/useField.d.ts +11 -0
- package/extensions/forms/Field/hooks/useField.js +152 -0
- package/extensions/forms/Field/hooks/useField.js.map +1 -0
- package/extensions/forms/Field/index.d.ts +39 -0
- package/extensions/forms/Field/index.js +40 -0
- package/extensions/forms/Field/index.js.map +1 -0
- package/extensions/forms/Field/style/dnb-number.css +11 -0
- package/extensions/forms/Field/style/dnb-number.min.css +1 -0
- package/extensions/forms/Field/style/dnb-number.scss +19 -0
- package/extensions/forms/Field/style/dnb-phone-number.css +23 -0
- package/extensions/forms/Field/style/dnb-phone-number.min.css +1 -0
- package/extensions/forms/Field/style/dnb-phone-number.scss +28 -0
- package/extensions/forms/Field/style/dnb-postal-code-and-city.css +19 -0
- package/extensions/forms/Field/style/dnb-postal-code-and-city.min.css +1 -0
- package/extensions/forms/Field/style/dnb-postal-code-and-city.scss +25 -0
- package/extensions/forms/Field/style/dnb-selection.css +6 -0
- package/extensions/forms/Field/style/dnb-selection.min.css +1 -0
- package/extensions/forms/Field/style/dnb-selection.scss +15 -0
- package/extensions/forms/Field/style/dnb-string.css +11 -0
- package/extensions/forms/Field/style/dnb-string.min.css +1 -0
- package/extensions/forms/Field/style/dnb-string.scss +19 -0
- package/extensions/forms/Field/style/index.d.ts +6 -0
- package/extensions/forms/Field/style/index.js +3 -0
- package/extensions/forms/Field/style/index.js.map +1 -0
- package/extensions/forms/Field/style/index.scss +5 -0
- package/extensions/forms/Field/style.d.ts +5 -0
- package/extensions/forms/Field/style.js +1 -0
- package/extensions/forms/Field/style.js.map +1 -0
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +12 -0
- package/extensions/forms/FieldBlock/FieldBlock.js +69 -0
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -0
- package/extensions/forms/FieldBlock/index.d.ts +1 -0
- package/extensions/forms/FieldBlock/index.js +1 -0
- package/extensions/forms/FieldBlock/index.js.map +1 -0
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -0
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +19 -0
- package/extensions/forms/FieldBlock/style/index.d.ts +5 -0
- package/extensions/forms/FieldBlock/style/index.js +1 -0
- package/extensions/forms/FieldBlock/style/index.js.map +1 -0
- package/extensions/forms/FieldBlock/style.d.ts +5 -0
- package/extensions/forms/FieldBlock/style.js +1 -0
- package/extensions/forms/FieldBlock/style.js.map +1 -0
- package/extensions/forms/FieldGroup/FieldGroup.d.ts +17 -0
- package/extensions/forms/FieldGroup/FieldGroup.js +83 -0
- package/extensions/forms/FieldGroup/FieldGroup.js.map +1 -0
- package/extensions/forms/FieldGroup/index.d.ts +2 -0
- package/extensions/forms/FieldGroup/index.js +3 -0
- package/extensions/forms/FieldGroup/index.js.map +1 -0
- package/extensions/forms/Forms.d.ts +3 -0
- package/extensions/forms/Forms.js +4 -0
- package/extensions/forms/Forms.js.map +1 -0
- package/extensions/forms/Layout/ButtonRow.d.ts +10 -0
- package/extensions/forms/Layout/ButtonRow.js +17 -0
- package/extensions/forms/Layout/ButtonRow.js.map +1 -0
- package/extensions/forms/Layout/Card.d.ts +14 -0
- package/extensions/forms/Layout/Card.js +37 -0
- package/extensions/forms/Layout/Card.js.map +1 -0
- package/extensions/forms/Layout/Column.d.ts +7 -0
- package/extensions/forms/Layout/Column.js +17 -0
- package/extensions/forms/Layout/Column.js.map +1 -0
- package/extensions/forms/Layout/FlexContainer.d.ts +23 -0
- package/extensions/forms/Layout/FlexContainer.js +91 -0
- package/extensions/forms/Layout/FlexContainer.js.map +1 -0
- package/extensions/forms/Layout/FlexItem.d.ts +12 -0
- package/extensions/forms/Layout/FlexItem.js +20 -0
- package/extensions/forms/Layout/FlexItem.js.map +1 -0
- package/extensions/forms/Layout/InfoCardSection.d.ts +8 -0
- package/extensions/forms/Layout/InfoCardSection.js +17 -0
- package/extensions/forms/Layout/InfoCardSection.js.map +1 -0
- package/extensions/forms/Layout/MainHeading.d.ts +10 -0
- package/extensions/forms/Layout/MainHeading.js +19 -0
- package/extensions/forms/Layout/MainHeading.js.map +1 -0
- package/extensions/forms/Layout/Row.d.ts +7 -0
- package/extensions/forms/Layout/Row.js +17 -0
- package/extensions/forms/Layout/Row.js.map +1 -0
- package/extensions/forms/Layout/Section.d.ts +13 -0
- package/extensions/forms/Layout/Section.js +21 -0
- package/extensions/forms/Layout/Section.js.map +1 -0
- package/extensions/forms/Layout/SubHeading.d.ts +10 -0
- package/extensions/forms/Layout/SubHeading.js +18 -0
- package/extensions/forms/Layout/SubHeading.js.map +1 -0
- package/extensions/forms/Layout/index.d.ts +23 -0
- package/extensions/forms/Layout/index.js +24 -0
- package/extensions/forms/Layout/index.js.map +1 -0
- package/extensions/forms/Layout/style/dnb-button-row.css +7 -0
- package/extensions/forms/Layout/style/dnb-button-row.min.css +1 -0
- package/extensions/forms/Layout/style/dnb-button-row.scss +5 -0
- package/extensions/forms/Layout/style/dnb-card.css +13 -0
- package/extensions/forms/Layout/style/dnb-card.min.css +1 -0
- package/extensions/forms/Layout/style/dnb-card.scss +15 -0
- package/extensions/forms/Layout/style/dnb-flex-container.css +63 -0
- package/extensions/forms/Layout/style/dnb-flex-container.min.css +1 -0
- package/extensions/forms/Layout/style/dnb-flex-container.scss +84 -0
- package/extensions/forms/Layout/style/dnb-flex-item.css +6 -0
- package/extensions/forms/Layout/style/dnb-flex-item.min.css +1 -0
- package/extensions/forms/Layout/style/dnb-flex-item.scss +9 -0
- package/extensions/forms/Layout/style/dnb-section.css +3 -0
- package/extensions/forms/Layout/style/dnb-section.min.css +1 -0
- package/extensions/forms/Layout/style/dnb-section.scss +3 -0
- package/extensions/forms/Layout/style/index.d.ts +9 -0
- package/extensions/forms/Layout/style/index.js +6 -0
- package/extensions/forms/Layout/style/index.js.map +1 -0
- package/extensions/forms/Layout/style/index.scss +5 -0
- package/extensions/forms/Layout/style.d.ts +5 -0
- package/extensions/forms/Layout/style.js +1 -0
- package/extensions/forms/Layout/style.js.map +1 -0
- package/extensions/forms/StepsLayout/Buttons.d.ts +9 -0
- package/extensions/forms/StepsLayout/Buttons.js +19 -0
- package/extensions/forms/StepsLayout/Buttons.js.map +1 -0
- package/extensions/forms/StepsLayout/NextButton.d.ts +10 -0
- package/extensions/forms/StepsLayout/NextButton.js +27 -0
- package/extensions/forms/StepsLayout/NextButton.js.map +1 -0
- package/extensions/forms/StepsLayout/PreviousButton.d.ts +10 -0
- package/extensions/forms/StepsLayout/PreviousButton.js +27 -0
- package/extensions/forms/StepsLayout/PreviousButton.js.map +1 -0
- package/extensions/forms/StepsLayout/Step.d.ts +15 -0
- package/extensions/forms/StepsLayout/Step.js +27 -0
- package/extensions/forms/StepsLayout/Step.js.map +1 -0
- package/extensions/forms/StepsLayout/StepsContext.d.ts +8 -0
- package/extensions/forms/StepsLayout/StepsContext.js +4 -0
- package/extensions/forms/StepsLayout/StepsContext.js.map +1 -0
- package/extensions/forms/StepsLayout/StepsLayout.d.ts +19 -0
- package/extensions/forms/StepsLayout/StepsLayout.js +106 -0
- package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -0
- package/extensions/forms/StepsLayout/index.d.ts +3 -0
- package/extensions/forms/StepsLayout/index.js +4 -0
- package/extensions/forms/StepsLayout/index.js.map +1 -0
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +25 -0
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -0
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +23 -0
- package/extensions/forms/StepsLayout/style/index.d.ts +5 -0
- package/extensions/forms/StepsLayout/style/index.js +1 -0
- package/extensions/forms/StepsLayout/style/index.js.map +1 -0
- package/extensions/forms/StepsLayout/style/index.scss +1 -0
- package/extensions/forms/StepsLayout/style.d.ts +5 -0
- package/extensions/forms/StepsLayout/style.js +1 -0
- package/extensions/forms/StepsLayout/style.js.map +1 -0
- package/extensions/forms/Value/BankAccountNumber.d.ts +7 -0
- package/extensions/forms/Value/BankAccountNumber.js +20 -0
- package/extensions/forms/Value/BankAccountNumber.js.map +1 -0
- package/extensions/forms/Value/Boolean.d.ts +8 -0
- package/extensions/forms/Value/Boolean.js +27 -0
- package/extensions/forms/Value/Boolean.js.map +1 -0
- package/extensions/forms/Value/Currency.d.ts +7 -0
- package/extensions/forms/Value/Currency.js +16 -0
- package/extensions/forms/Value/Currency.js.map +1 -0
- package/extensions/forms/Value/Date.d.ts +7 -0
- package/extensions/forms/Value/Date.js +16 -0
- package/extensions/forms/Value/Date.js.map +1 -0
- package/extensions/forms/Value/Email.d.ts +7 -0
- package/extensions/forms/Value/Email.js +16 -0
- package/extensions/forms/Value/Email.js.map +1 -0
- package/extensions/forms/Value/FirstName.d.ts +7 -0
- package/extensions/forms/Value/FirstName.js +16 -0
- package/extensions/forms/Value/FirstName.js.map +1 -0
- package/extensions/forms/Value/LastName.d.ts +7 -0
- package/extensions/forms/Value/LastName.js +16 -0
- package/extensions/forms/Value/LastName.js.map +1 -0
- package/extensions/forms/Value/NationalIdentityNumber.d.ts +7 -0
- package/extensions/forms/Value/NationalIdentityNumber.js +20 -0
- package/extensions/forms/Value/NationalIdentityNumber.js.map +1 -0
- package/extensions/forms/Value/Number.d.ts +14 -0
- package/extensions/forms/Value/Number.js +36 -0
- package/extensions/forms/Value/Number.js.map +1 -0
- package/extensions/forms/Value/PhoneNumber.d.ts +7 -0
- package/extensions/forms/Value/PhoneNumber.js +20 -0
- package/extensions/forms/Value/PhoneNumber.js.map +1 -0
- package/extensions/forms/Value/String.d.ts +8 -0
- package/extensions/forms/Value/String.js +26 -0
- package/extensions/forms/Value/String.js.map +1 -0
- package/extensions/forms/Value/hooks/index.d.ts +1 -0
- package/extensions/forms/Value/hooks/index.js +1 -0
- package/extensions/forms/Value/hooks/index.js.map +1 -0
- package/extensions/forms/Value/hooks/useValue.d.ts +2 -0
- package/extensions/forms/Value/hooks/useValue.js +22 -0
- package/extensions/forms/Value/hooks/useValue.js.map +1 -0
- package/extensions/forms/Value/index.d.ts +25 -0
- package/extensions/forms/Value/index.js +26 -0
- package/extensions/forms/Value/index.js.map +1 -0
- package/extensions/forms/ValueBlock/ValueBlock.d.ts +11 -0
- package/extensions/forms/ValueBlock/ValueBlock.js +30 -0
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -0
- package/extensions/forms/ValueBlock/index.d.ts +1 -0
- package/extensions/forms/ValueBlock/index.js +1 -0
- package/extensions/forms/ValueBlock/index.js.map +1 -0
- package/extensions/forms/ValueBlock/style/dnb-value-block.css +16 -0
- package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -0
- package/extensions/forms/ValueBlock/style/dnb-value-block.scss +19 -0
- package/extensions/forms/ValueBlock/style/index.d.ts +5 -0
- package/extensions/forms/ValueBlock/style/index.js +1 -0
- package/extensions/forms/ValueBlock/style/index.js.map +1 -0
- package/extensions/forms/ValueBlock/style/index.scss +1 -0
- package/extensions/forms/ValueBlock/style.d.ts +5 -0
- package/extensions/forms/ValueBlock/style.js +1 -0
- package/extensions/forms/ValueBlock/style.js.map +1 -0
- package/extensions/forms/Visibility/Visibility.d.ts +24 -0
- package/extensions/forms/Visibility/Visibility.js +45 -0
- package/extensions/forms/Visibility/Visibility.js.map +1 -0
- package/extensions/forms/Visibility/index.d.ts +1 -0
- package/extensions/forms/Visibility/index.js +1 -0
- package/extensions/forms/Visibility/index.js.map +1 -0
- package/extensions/forms/component-types.d.ts +4 -0
- package/extensions/forms/component-types.js +1 -0
- package/extensions/forms/component-types.js.map +1 -0
- package/extensions/forms/constants/countries.d.ts +6 -0
- package/extensions/forms/constants/countries.js +962 -0
- package/extensions/forms/constants/countries.js.map +1 -0
- package/extensions/forms/field-types.d.ts +52 -0
- package/extensions/forms/field-types.js +1 -0
- package/extensions/forms/field-types.js.map +1 -0
- package/extensions/forms/index.d.ts +13 -0
- package/extensions/forms/index.js +12 -0
- package/extensions/forms/index.js.map +1 -0
- package/extensions/forms/style/dnb-forms.css +237 -0
- package/extensions/forms/style/dnb-forms.min.css +1 -0
- package/extensions/forms/style/dnb-forms.scss +6 -0
- package/extensions/forms/style.d.ts +5 -0
- package/extensions/forms/style.js +1 -0
- package/extensions/forms/style.js.map +1 -0
- package/extensions/forms/types.d.ts +11 -0
- package/extensions/forms/types.js +11 -0
- package/extensions/forms/types.js.map +1 -0
- package/extensions/forms/utils/TestElement/TestElement.d.ts +6 -0
- package/extensions/forms/utils/TestElement/TestElement.js +10 -0
- package/extensions/forms/utils/TestElement/TestElement.js.map +1 -0
- package/extensions/forms/utils/TestElement/style/dnb-test-element.css +6 -0
- package/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -0
- package/extensions/forms/utils/TestElement/style/dnb-test-element.scss +6 -0
- package/extensions/forms/utils/TestElement/style/index.d.ts +5 -0
- package/extensions/forms/utils/TestElement/style/index.js +1 -0
- package/extensions/forms/utils/TestElement/style/index.js.map +1 -0
- package/extensions/forms/utils/TestElement/style.d.ts +5 -0
- package/extensions/forms/utils/TestElement/style.js +1 -0
- package/extensions/forms/utils/TestElement/style.js.map +1 -0
- package/extensions/forms/utils/ajv.d.ts +14 -0
- package/extensions/forms/utils/ajv.js +56 -0
- package/extensions/forms/utils/ajv.js.map +1 -0
- package/extensions/forms/utils/components.d.ts +3 -0
- package/extensions/forms/utils/components.js +23 -0
- package/extensions/forms/utils/components.js.map +1 -0
- package/extensions/forms/utils/index.d.ts +3 -0
- package/extensions/forms/utils/index.js +4 -0
- package/extensions/forms/utils/index.js.map +1 -0
- package/extensions/forms/utils/numbers.d.ts +17 -0
- package/extensions/forms/utils/numbers.js +35 -0
- package/extensions/forms/utils/numbers.js.map +1 -0
- package/extensions/forms/value-types.d.ts +15 -0
- package/extensions/forms/value-types.js +1 -0
- package/extensions/forms/value-types.js.map +1 -0
- package/extensions/index.d.ts +2 -1
- package/extensions/index.js +2 -1
- package/extensions/index.js.map +1 -1
- package/extensions/lib.d.ts +22 -1
- package/extensions/lib.js +3 -1
- package/extensions/lib.js.map +1 -1
- package/extensions/payment-card/utils/Types.js.map +1 -1
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/package.json +4 -1
- package/shared/Context.d.ts +2 -0
- package/shared/Context.js.map +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/VisibilityByTheme.d.ts +1 -1
- package/shared/VisibilityByTheme.js.map +1 -1
- package/shared/helpers.d.ts +2 -2
- package/shared/helpers.js.map +1 -1
- package/shared/locales/en-GB.d.ts +39 -0
- package/shared/locales/en-GB.js +39 -0
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +39 -0
- package/shared/locales/index.d.ts +78 -0
- package/shared/locales/nb-NO.d.ts +39 -0
- package/shared/locales/nb-NO.js +39 -0
- package/shared/locales/nb-NO.js.map +1 -1
- package/style/core/utilities.scss +40 -8
- package/style/dnb-ui-components.css +71 -24
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-extensions.css +238 -0
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-extensions.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +105 -82
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +238 -0
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/properties.js +4 -4
- package/style/themes/theme-sbanken/properties.js.map +1 -1
- package/style/themes/theme-sbanken/properties.scss +4 -4
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +4 -11
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +429 -333
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +238 -0
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.css +17 -11
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +105 -82
- package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-elements.css +17 -11
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +238 -0
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +24 -12
- package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +7 -1
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/components/accordion/AccordionPropTypes.d.ts +0 -79
- package/cjs/components/accordion/AccordionPropTypes.js +0 -85
- package/cjs/components/accordion/AccordionPropTypes.js.map +0 -1
- package/components/accordion/AccordionPropTypes.d.ts +0 -79
- package/components/accordion/AccordionPropTypes.js +0 -74
- package/components/accordion/AccordionPropTypes.js.map +0 -1
- package/es/components/accordion/AccordionPropTypes.d.ts +0 -79
- package/es/components/accordion/AccordionPropTypes.js +0 -74
- package/es/components/accordion/AccordionPropTypes.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bodyScrollLock.js","names":["_componentHelper","require","isServer","window","detectOS","ua","navigator","userAgent","ipad","test","iphone","android","ios","lockedNum","initialClientY","initialClientX","callbackUnlock","documentListenerAdded","lockedElements","eventListenerOptions","getEventListenerOptions","passive","options","isSupportOptions","capture","setOverflowHidden","htmlElement","document","documentElement","bodyElement","body","htmlStyle","Object","assign","style","bodyStyle","scrollBarWidth","innerWidth","clientWidth","overflow","height","setProperty","boxSizing","marginRight","forEach","x","removeProperty","e","warn","setOverflowHiddenIOS","targetElement","elementArray","Array","isArray","element","indexOf","ontouchstart","event","targetTouches","clientY","clientX","ontouchmove","length","handleScroll","push","addEventListener","preventDefault","index","splice","removeEventListener","setOverflowHiddenAndroid","unbind","scrollTop","position","top","left","right","scrollBehavior","getComputedStyle","found","find","isChildOfElement","target","cancelable","scrollLeft","scrollWidth","scrollHeight","clientHeight","isVertical","Math","abs","isOnTop","isOnLeft","isOnRight","isOnBottom","hasScrollbar","checkIfHasScrollbar","stopPropagation","checkTargetElement","disableBodyScroll","exports","enableBodyScroll","clearAllBodyScrollLocks","pop"],"sources":["../../../../src/components/modal/bodyScrollLock.js"],"sourcesContent":["import {\n warn,\n isChildOfElement,\n checkIfHasScrollbar,\n} from '../../shared/component-helper'\n\nconst isServer = () => typeof window === 'undefined'\nconst detectOS = (ua) => {\n ua = ua || navigator.userAgent\n const ipad = /(iPad).*OS\\s([\\d_]+)/.test(ua)\n const iphone = !ipad && /(iPhone\\sOS)\\s([\\d_]+)/.test(ua)\n const android = /(Android);?[\\s/]+([\\d.]+)?/.test(ua)\n const ios = iphone || ipad\n return { ios, android }\n}\n\nlet lockedNum = 0\nlet initialClientY = 0\nlet initialClientX = 0\nlet callbackUnlock = null\nlet documentListenerAdded = false\n\nconst lockedElements = []\nconst eventListenerOptions = getEventListenerOptions({ passive: false })\nfunction getEventListenerOptions(options) {\n if (isServer()) {\n return // stop here\n }\n\n let isSupportOptions = true\n const { capture } = options\n return isSupportOptions\n ? options\n : typeof capture !== 'undefined'\n ? capture\n : false\n}\n\nconst setOverflowHidden = () => {\n try {\n const htmlElement = document.documentElement\n const bodyElement = document.body\n const htmlStyle = Object.assign({}, htmlElement.style)\n const bodyStyle = Object.assign({}, bodyElement.style)\n const scrollBarWidth =\n window.innerWidth - (bodyElement.clientWidth || window.innerWidth)\n\n htmlElement.style.overflow = 'hidden'\n htmlElement.style.height = '100%'\n htmlElement.style.setProperty(\n '--scrollbar-width',\n `${scrollBarWidth}px`\n )\n\n bodyElement.style.overflow = 'hidden'\n bodyElement.style.height = 'auto'\n bodyElement.style.boxSizing = 'border-box'\n bodyElement.style.marginRight = `${scrollBarWidth}px`\n\n return () => {\n try {\n // eslint-disable-next-line\n ;['overflow', 'height'].forEach((x) => {\n htmlElement.style[x] = htmlStyle[x] || ''\n })\n ;['overflow', 'height', 'boxSizing', 'margin'].forEach((x) => {\n bodyElement.style[x] = bodyStyle[x] || ''\n })\n htmlElement.style.removeProperty('--scrollbar-width')\n } catch (e) {\n warn(e)\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n\nconst setOverflowHiddenIOS = (targetElement) => {\n if (targetElement) {\n const elementArray = Array.isArray(targetElement)\n ? targetElement\n : [targetElement]\n elementArray.forEach((element) => {\n if (element && lockedElements.indexOf(element) === -1) {\n element.ontouchstart = (event) => {\n initialClientY = event.targetTouches[0].clientY\n initialClientX = event.targetTouches[0].clientX\n }\n element.ontouchmove = (event) => {\n if (event.targetTouches.length !== 1) {\n return // stop here\n }\n handleScroll(event, element)\n }\n lockedElements.push(element)\n }\n })\n }\n\n if (!documentListenerAdded) {\n document.addEventListener(\n 'touchmove',\n preventDefault,\n eventListenerOptions\n )\n documentListenerAdded = true\n }\n\n return () => {\n if (targetElement) {\n const elementArray = Array.isArray(targetElement)\n ? targetElement\n : [targetElement]\n elementArray.forEach((element) => {\n const index = lockedElements.indexOf(element)\n if (index !== -1) {\n element.ontouchmove = null\n element.ontouchstart = null\n lockedElements.splice(index, 1)\n }\n })\n }\n\n if (documentListenerAdded) {\n document.removeEventListener(\n 'touchmove',\n preventDefault,\n eventListenerOptions\n )\n documentListenerAdded = false\n }\n }\n}\n\nconst setOverflowHiddenAndroid = () => {\n try {\n const unbind = setOverflowHidden()\n\n const htmlElement = document.documentElement\n const bodyElement = document.body\n const scrollTop = htmlElement.scrollTop || bodyElement.scrollTop\n const bodyStyle = Object.assign({}, bodyElement.style)\n\n bodyElement.style.position = 'fixed'\n bodyElement.style.top = `-${scrollTop}px`\n bodyElement.style.left = '0'\n bodyElement.style.right = '0'\n\n return () => {\n unbind()\n\n try {\n // eslint-disable-next-line\n ;['position', 'top', 'right', 'left'].forEach((x) => {\n bodyElement.style[x] = bodyStyle[x] || ''\n })\n\n const scrollBehavior =\n window.getComputedStyle(htmlElement).scrollBehavior\n htmlElement.style.scrollBehavior = 'auto'\n htmlElement.scrollTop = scrollTop\n htmlElement.style.scrollBehavior = scrollBehavior\n } catch (e) {\n warn(e)\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n\nconst preventDefault = (event) => {\n const found = lockedElements.find((targetElement) => {\n return isChildOfElement(event.target, targetElement)\n })\n\n if (found || !event.cancelable) {\n return // stop here\n }\n\n event.preventDefault()\n}\n\n// Depreciated – this function can be removed as soon as we do not need to support iOS < 14\nconst handleScroll = (event, targetElement) => {\n try {\n if (targetElement) {\n const {\n scrollTop,\n scrollLeft,\n scrollWidth,\n scrollHeight,\n clientWidth,\n clientHeight,\n } = targetElement\n const clientX = event.targetTouches[0].clientX - initialClientX\n const clientY = event.targetTouches[0].clientY - initialClientY\n const isVertical = Math.abs(clientY) > Math.abs(clientX)\n const isOnTop = clientY > 0 && scrollTop === 0\n const isOnLeft = clientX > 0 && scrollLeft === 0\n const isOnRight =\n clientX < 0 && scrollLeft + clientWidth + 1 >= scrollWidth\n const isOnBottom =\n clientY < 0 && scrollTop + clientHeight + 1 >= scrollHeight\n if (\n (isVertical && (isOnTop || isOnBottom)) ||\n (!isVertical && (isOnLeft || isOnRight))\n ) {\n const hasScrollbar = isChildOfElement(\n event.target,\n targetElement,\n checkIfHasScrollbar\n )\n\n if (hasScrollbar && hasScrollbar !== targetElement) {\n return true\n }\n\n return event.cancelable && event.preventDefault()\n }\n }\n\n event.stopPropagation()\n\n return true\n } catch (e) {\n warn(e)\n }\n}\n\nconst checkTargetElement = (targetElement) => {\n if (targetElement) return\n if (targetElement === null) return\n warn(\n `If scrolling is also required in the floating layer, ` +\n `the target element must be provided.`\n )\n}\n\nexport const disableBodyScroll = (targetElement) => {\n if (isServer()) {\n return // stop here\n }\n\n checkTargetElement(targetElement)\n\n try {\n // iOS\n if (detectOS().ios) {\n callbackUnlock = setOverflowHiddenIOS(targetElement)\n\n // Android or Desktop\n } else if (lockedNum <= 0) {\n if (detectOS().android) {\n callbackUnlock = setOverflowHiddenAndroid()\n } else {\n callbackUnlock = setOverflowHidden()\n }\n }\n\n lockedNum += 1\n } catch (e) {\n warn(e)\n }\n}\n\nexport const enableBodyScroll = (targetElement) => {\n if (isServer()) {\n return\n }\n\n checkTargetElement(targetElement)\n\n try {\n lockedNum -= 1\n\n if (lockedNum > 0) {\n return // stop here\n }\n\n if (typeof callbackUnlock === 'function') {\n callbackUnlock()\n }\n } catch (e) {\n warn(e)\n }\n}\n\nexport const clearAllBodyScrollLocks = () => {\n if (isServer()) {\n return // stop here\n }\n\n try {\n lockedNum = 0\n\n if (typeof callbackUnlock === 'function') {\n callbackUnlock()\n }\n\n // iOS\n if (detectOS().ios) {\n if (lockedElements && lockedElements.length) {\n // clear events\n let element = lockedElements.pop()\n while (element) {\n element.ontouchmove = null\n element.ontouchstart = null\n element = lockedElements.pop()\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAMA,MAAMC,QAAQ,GAAGA,CAAA,KAAM,OAAOC,MAAM,KAAK,WAAW;AACpD,MAAMC,QAAQ,GAAIC,EAAE,IAAK;EACvBA,EAAE,GAAGA,EAAE,IAAIC,SAAS,CAACC,SAAS;EAC9B,MAAMC,IAAI,GAAG,sBAAsB,CAACC,IAAI,CAACJ,EAAE,CAAC;EAC5C,MAAMK,MAAM,GAAG,CAACF,IAAI,IAAI,wBAAwB,CAACC,IAAI,CAACJ,EAAE,CAAC;EACzD,MAAMM,OAAO,GAAG,4BAA4B,CAACF,IAAI,CAACJ,EAAE,CAAC;EACrD,MAAMO,GAAG,GAAGF,MAAM,IAAIF,IAAI;EAC1B,OAAO;IAAEI,GAAG;IAAED;EAAQ,CAAC;AACzB,CAAC;AAED,IAAIE,SAAS,GAAG,CAAC;AACjB,IAAIC,cAAc,GAAG,CAAC;AACtB,IAAIC,cAAc,GAAG,CAAC;AACtB,IAAIC,cAAc,GAAG,IAAI;AACzB,IAAIC,qBAAqB,GAAG,KAAK;AAEjC,MAAMC,cAAc,GAAG,EAAE;AACzB,MAAMC,oBAAoB,GAAGC,uBAAuB,CAAC;EAAEC,OAAO,EAAE;AAAM,CAAC,CAAC;AACxE,SAASD,uBAAuBA,CAACE,OAAO,EAAE;EACxC,IAAIpB,QAAQ,CAAC,CAAC,EAAE;IACd;EACF;EAEA,IAAIqB,gBAAgB,GAAG,IAAI;EAC3B,MAAM;IAAEC;EAAQ,CAAC,GAAGF,OAAO;EAC3B,OAAOC,gBAAgB,GACnBD,OAAO,GACP,OAAOE,OAAO,KAAK,WAAW,GAC9BA,OAAO,GACP,KAAK;AACX;AAEA,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EAC9B,IAAI;IACF,MAAMC,WAAW,GAAGC,QAAQ,CAACC,eAAe;IAC5C,MAAMC,WAAW,GAAGF,QAAQ,CAACG,IAAI;IACjC,MAAMC,SAAS,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEP,WAAW,CAACQ,KAAK,CAAC;IACtD,MAAMC,SAAS,GAAGH,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEJ,WAAW,CAACK,KAAK,CAAC;IACtD,MAAME,cAAc,GAClBjC,MAAM,CAACkC,UAAU,IAAIR,WAAW,CAACS,WAAW,IAAInC,MAAM,CAACkC,UAAU,CAAC;IAEpEX,WAAW,CAACQ,KAAK,CAACK,QAAQ,GAAG,QAAQ;IACrCb,WAAW,CAACQ,KAAK,CAACM,MAAM,GAAG,MAAM;IACjCd,WAAW,CAACQ,KAAK,CAACO,WAAW,CAC3B,mBAAmB,EAClB,GAAEL,cAAe,IACpB,CAAC;IAEDP,WAAW,CAACK,KAAK,CAACK,QAAQ,GAAG,QAAQ;IACrCV,WAAW,CAACK,KAAK,CAACM,MAAM,GAAG,MAAM;IACjCX,WAAW,CAACK,KAAK,CAACQ,SAAS,GAAG,YAAY;IAC1Cb,WAAW,CAACK,KAAK,CAACS,WAAW,GAAI,GAAEP,cAAe,IAAG;IAErD,OAAO,MAAM;MACX,IAAI;QAEF;QAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAACQ,OAAO,CAAEC,CAAC,IAAK;UACrCnB,WAAW,CAACQ,KAAK,CAACW,CAAC,CAAC,GAAGd,SAAS,CAACc,CAAC,CAAC,IAAI,EAAE;QAC3C,CAAC,CAAC;QACD,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAACD,OAAO,CAAEC,CAAC,IAAK;UAC5DhB,WAAW,CAACK,KAAK,CAACW,CAAC,CAAC,GAAGV,SAAS,CAACU,CAAC,CAAC,IAAI,EAAE;QAC3C,CAAC,CAAC;QACFnB,WAAW,CAACQ,KAAK,CAACY,cAAc,CAAC,mBAAmB,CAAC;MACvD,CAAC,CAAC,OAAOC,CAAC,EAAE;QACV,IAAAC,qBAAI,EAACD,CAAC,CAAC;MACT;IACF,CAAC;EACH,CAAC,CAAC,OAAOA,CAAC,EAAE;IACV,IAAAC,qBAAI,EAACD,CAAC,CAAC;EACT;AACF,CAAC;AAED,MAAME,oBAAoB,GAAIC,aAAa,IAAK;EAC9C,IAAIA,aAAa,EAAE;IACjB,MAAMC,YAAY,GAAGC,KAAK,CAACC,OAAO,CAACH,aAAa,CAAC,GAC7CA,aAAa,GACb,CAACA,aAAa,CAAC;IACnBC,YAAY,CAACP,OAAO,CAAEU,OAAO,IAAK;MAChC,IAAIA,OAAO,IAAIpC,cAAc,CAACqC,OAAO,CAACD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;QACrDA,OAAO,CAACE,YAAY,GAAIC,KAAK,IAAK;UAChC3C,cAAc,GAAG2C,KAAK,CAACC,aAAa,CAAC,CAAC,CAAC,CAACC,OAAO;UAC/C5C,cAAc,GAAG0C,KAAK,CAACC,aAAa,CAAC,CAAC,CAAC,CAACE,OAAO;QACjD,CAAC;QACDN,OAAO,CAACO,WAAW,GAAIJ,KAAK,IAAK;UAC/B,IAAIA,KAAK,CAACC,aAAa,CAACI,MAAM,KAAK,CAAC,EAAE;YACpC;UACF;UACAC,YAAY,CAACN,KAAK,EAAEH,OAAO,CAAC;QAC9B,CAAC;QACDpC,cAAc,CAAC8C,IAAI,CAACV,OAAO,CAAC;MAC9B;IACF,CAAC,CAAC;EACJ;EAEA,IAAI,CAACrC,qBAAqB,EAAE;IAC1BU,QAAQ,CAACsC,gBAAgB,CACvB,WAAW,EACXC,cAAc,EACd/C,oBACF,CAAC;IACDF,qBAAqB,GAAG,IAAI;EAC9B;EAEA,OAAO,MAAM;IACX,IAAIiC,aAAa,EAAE;MACjB,MAAMC,YAAY,GAAGC,KAAK,CAACC,OAAO,CAACH,aAAa,CAAC,GAC7CA,aAAa,GACb,CAACA,aAAa,CAAC;MACnBC,YAAY,CAACP,OAAO,CAAEU,OAAO,IAAK;QAChC,MAAMa,KAAK,GAAGjD,cAAc,CAACqC,OAAO,CAACD,OAAO,CAAC;QAC7C,IAAIa,KAAK,KAAK,CAAC,CAAC,EAAE;UAChBb,OAAO,CAACO,WAAW,GAAG,IAAI;UAC1BP,OAAO,CAACE,YAAY,GAAG,IAAI;UAC3BtC,cAAc,CAACkD,MAAM,CAACD,KAAK,EAAE,CAAC,CAAC;QACjC;MACF,CAAC,CAAC;IACJ;IAEA,IAAIlD,qBAAqB,EAAE;MACzBU,QAAQ,CAAC0C,mBAAmB,CAC1B,WAAW,EACXH,cAAc,EACd/C,oBACF,CAAC;MACDF,qBAAqB,GAAG,KAAK;IAC/B;EACF,CAAC;AACH,CAAC;AAED,MAAMqD,wBAAwB,GAAGA,CAAA,KAAM;EACrC,IAAI;IACF,MAAMC,MAAM,GAAG9C,iBAAiB,CAAC,CAAC;IAElC,MAAMC,WAAW,GAAGC,QAAQ,CAACC,eAAe;IAC5C,MAAMC,WAAW,GAAGF,QAAQ,CAACG,IAAI;IACjC,MAAM0C,SAAS,GAAG9C,WAAW,CAAC8C,SAAS,IAAI3C,WAAW,CAAC2C,SAAS;IAChE,MAAMrC,SAAS,GAAGH,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEJ,WAAW,CAACK,KAAK,CAAC;IAEtDL,WAAW,CAACK,KAAK,CAACuC,QAAQ,GAAG,OAAO;IACpC5C,WAAW,CAACK,KAAK,CAACwC,GAAG,GAAI,IAAGF,SAAU,IAAG;IACzC3C,WAAW,CAACK,KAAK,CAACyC,IAAI,GAAG,GAAG;IAC5B9C,WAAW,CAACK,KAAK,CAAC0C,KAAK,GAAG,GAAG;IAE7B,OAAO,MAAM;MACXL,MAAM,CAAC,CAAC;MAER,IAAI;QAEF;QAAC,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC3B,OAAO,CAAEC,CAAC,IAAK;UACnDhB,WAAW,CAACK,KAAK,CAACW,CAAC,CAAC,GAAGV,SAAS,CAACU,CAAC,CAAC,IAAI,EAAE;QAC3C,CAAC,CAAC;QAEF,MAAMgC,cAAc,GAClB1E,MAAM,CAAC2E,gBAAgB,CAACpD,WAAW,CAAC,CAACmD,cAAc;QACrDnD,WAAW,CAACQ,KAAK,CAAC2C,cAAc,GAAG,MAAM;QACzCnD,WAAW,CAAC8C,SAAS,GAAGA,SAAS;QACjC9C,WAAW,CAACQ,KAAK,CAAC2C,cAAc,GAAGA,cAAc;MACnD,CAAC,CAAC,OAAO9B,CAAC,EAAE;QACV,IAAAC,qBAAI,EAACD,CAAC,CAAC;MACT;IACF,CAAC;EACH,CAAC,CAAC,OAAOA,CAAC,EAAE;IACV,IAAAC,qBAAI,EAACD,CAAC,CAAC;EACT;AACF,CAAC;AAED,MAAMmB,cAAc,GAAIT,KAAK,IAAK;EAChC,MAAMsB,KAAK,GAAG7D,cAAc,CAAC8D,IAAI,CAAE9B,aAAa,IAAK;IACnD,OAAO,IAAA+B,iCAAgB,EAACxB,KAAK,CAACyB,MAAM,EAAEhC,aAAa,CAAC;EACtD,CAAC,CAAC;EAEF,IAAI6B,KAAK,IAAI,CAACtB,KAAK,CAAC0B,UAAU,EAAE;IAC9B;EACF;EAEA1B,KAAK,CAACS,cAAc,CAAC,CAAC;AACxB,CAAC;AAGD,MAAMH,YAAY,GAAGA,CAACN,KAAK,EAAEP,aAAa,KAAK;EAC7C,IAAI;IACF,IAAIA,aAAa,EAAE;MACjB,MAAM;QACJsB,SAAS;QACTY,UAAU;QACVC,WAAW;QACXC,YAAY;QACZhD,WAAW;QACXiD;MACF,CAAC,GAAGrC,aAAa;MACjB,MAAMU,OAAO,GAAGH,KAAK,CAACC,aAAa,CAAC,CAAC,CAAC,CAACE,OAAO,GAAG7C,cAAc;MAC/D,MAAM4C,OAAO,GAAGF,KAAK,CAACC,aAAa,CAAC,CAAC,CAAC,CAACC,OAAO,GAAG7C,cAAc;MAC/D,MAAM0E,UAAU,GAAGC,IAAI,CAACC,GAAG,CAAC/B,OAAO,CAAC,GAAG8B,IAAI,CAACC,GAAG,CAAC9B,OAAO,CAAC;MACxD,MAAM+B,OAAO,GAAGhC,OAAO,GAAG,CAAC,IAAIa,SAAS,KAAK,CAAC;MAC9C,MAAMoB,QAAQ,GAAGhC,OAAO,GAAG,CAAC,IAAIwB,UAAU,KAAK,CAAC;MAChD,MAAMS,SAAS,GACbjC,OAAO,GAAG,CAAC,IAAIwB,UAAU,GAAG9C,WAAW,GAAG,CAAC,IAAI+C,WAAW;MAC5D,MAAMS,UAAU,GACdnC,OAAO,GAAG,CAAC,IAAIa,SAAS,GAAGe,YAAY,GAAG,CAAC,IAAID,YAAY;MAC7D,IACGE,UAAU,KAAKG,OAAO,IAAIG,UAAU,CAAC,IACrC,CAACN,UAAU,KAAKI,QAAQ,IAAIC,SAAS,CAAE,EACxC;QACA,MAAME,YAAY,GAAG,IAAAd,iCAAgB,EACnCxB,KAAK,CAACyB,MAAM,EACZhC,aAAa,EACb8C,oCACF,CAAC;QAED,IAAID,YAAY,IAAIA,YAAY,KAAK7C,aAAa,EAAE;UAClD,OAAO,IAAI;QACb;QAEA,OAAOO,KAAK,CAAC0B,UAAU,IAAI1B,KAAK,CAACS,cAAc,CAAC,CAAC;MACnD;IACF;IAEAT,KAAK,CAACwC,eAAe,CAAC,CAAC;IAEvB,OAAO,IAAI;EACb,CAAC,CAAC,OAAOlD,CAAC,EAAE;IACV,IAAAC,qBAAI,EAACD,CAAC,CAAC;EACT;AACF,CAAC;AAED,MAAMmD,kBAAkB,GAAIhD,aAAa,IAAK;EAC5C,IAAIA,aAAa,EAAE;EACnB,IAAIA,aAAa,KAAK,IAAI,EAAE;EAC5B,IAAAF,qBAAI,EACD,uDAAsD,GACpD,sCACL,CAAC;AACH,CAAC;AAEM,MAAMmD,iBAAiB,GAAIjD,aAAa,IAAK;EAClD,IAAIhD,QAAQ,CAAC,CAAC,EAAE;IACd;EACF;EAEAgG,kBAAkB,CAAChD,aAAa,CAAC;EAEjC,IAAI;IAEF,IAAI9C,QAAQ,CAAC,CAAC,CAACQ,GAAG,EAAE;MAClBI,cAAc,GAAGiC,oBAAoB,CAACC,aAAa,CAAC;IAGtD,CAAC,MAAM,IAAIrC,SAAS,IAAI,CAAC,EAAE;MACzB,IAAIT,QAAQ,CAAC,CAAC,CAACO,OAAO,EAAE;QACtBK,cAAc,GAAGsD,wBAAwB,CAAC,CAAC;MAC7C,CAAC,MAAM;QACLtD,cAAc,GAAGS,iBAAiB,CAAC,CAAC;MACtC;IACF;IAEAZ,SAAS,IAAI,CAAC;EAChB,CAAC,CAAC,OAAOkC,CAAC,EAAE;IACV,IAAAC,qBAAI,EAACD,CAAC,CAAC;EACT;AACF,CAAC;AAAAqD,OAAA,CAAAD,iBAAA,GAAAA,iBAAA;AAEM,MAAME,gBAAgB,GAAInD,aAAa,IAAK;EACjD,IAAIhD,QAAQ,CAAC,CAAC,EAAE;IACd;EACF;EAEAgG,kBAAkB,CAAChD,aAAa,CAAC;EAEjC,IAAI;IACFrC,SAAS,IAAI,CAAC;IAEd,IAAIA,SAAS,GAAG,CAAC,EAAE;MACjB;IACF;IAEA,IAAI,OAAOG,cAAc,KAAK,UAAU,EAAE;MACxCA,cAAc,CAAC,CAAC;IAClB;EACF,CAAC,CAAC,OAAO+B,CAAC,EAAE;IACV,IAAAC,qBAAI,EAACD,CAAC,CAAC;EACT;AACF,CAAC;AAAAqD,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAEM,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;EAC3C,IAAIpG,QAAQ,CAAC,CAAC,EAAE;IACd;EACF;EAEA,IAAI;IACFW,SAAS,GAAG,CAAC;IAEb,IAAI,OAAOG,cAAc,KAAK,UAAU,EAAE;MACxCA,cAAc,CAAC,CAAC;IAClB;IAGA,IAAIZ,QAAQ,CAAC,CAAC,CAACQ,GAAG,EAAE;MAClB,IAAIM,cAAc,IAAIA,cAAc,CAAC4C,MAAM,EAAE;QAE3C,IAAIR,OAAO,GAAGpC,cAAc,CAACqF,GAAG,CAAC,CAAC;QAClC,OAAOjD,OAAO,EAAE;UACdA,OAAO,CAACO,WAAW,GAAG,IAAI;UAC1BP,OAAO,CAACE,YAAY,GAAG,IAAI;UAC3BF,OAAO,GAAGpC,cAAc,CAACqF,GAAG,CAAC,CAAC;QAChC;MACF;IACF;EACF,CAAC,CAAC,OAAOxD,CAAC,EAAE;IACV,IAAAC,qBAAI,EAACD,CAAC,CAAC;EACT;AACF,CAAC;AAAAqD,OAAA,CAAAE,uBAAA,GAAAA,uBAAA"}
|
|
1
|
+
{"version":3,"file":"bodyScrollLock.js","names":["_componentHelper","require","isServer","window","detectOS","ua","navigator","userAgent","ipad","test","iphone","android","ios","lockedNum","initialClientY","initialClientX","callbackUnlock","documentListenerAdded","lockedElements","eventListenerOptions","getEventListenerOptions","passive","options","isSupportOptions","capture","setOverflowHidden","htmlElement","document","documentElement","bodyElement","body","htmlStyle","Object","assign","style","bodyStyle","scrollBarWidth","innerWidth","clientWidth","overflow","height","setProperty","boxSizing","marginRight","forEach","x","removeProperty","e","warn","setOverflowHiddenIOS","targetElement","elementArray","Array","isArray","element","indexOf","ontouchstart","event","targetTouches","clientY","clientX","ontouchmove","length","handleScroll","push","addEventListener","preventDefault","index","splice","removeEventListener","setOverflowHiddenAndroid","unbind","scrollTop","position","top","left","right","scrollBehavior","getComputedStyle","found","find","isChildOfElement","target","cancelable","scrollLeft","scrollWidth","scrollHeight","clientHeight","isVertical","Math","abs","isOnTop","isOnLeft","isOnRight","isOnBottom","hasScrollbar","checkIfHasScrollbar","stopPropagation","checkTargetElement","disableBodyScroll","exports","enableBodyScroll","clearAllBodyScrollLocks","pop"],"sources":["../../../../src/components/modal/bodyScrollLock.js"],"sourcesContent":["import {\n warn,\n isChildOfElement,\n checkIfHasScrollbar,\n} from '../../shared/component-helper'\n\nconst isServer = () => typeof window === 'undefined'\nconst detectOS = (ua) => {\n ua = ua || navigator.userAgent\n const ipad = /(iPad).*OS\\s([\\d_]+)/.test(ua)\n const iphone = !ipad && /(iPhone\\sOS)\\s([\\d_]+)/.test(ua)\n const android = /(Android);?[\\s/]+([\\d.]+)?/.test(ua)\n const ios = iphone || ipad\n return { ios, android }\n}\n\nlet lockedNum = 0\nlet initialClientY = 0\nlet initialClientX = 0\nlet callbackUnlock = null\nlet documentListenerAdded = false\n\nconst lockedElements = []\nconst eventListenerOptions = getEventListenerOptions({ passive: false })\nfunction getEventListenerOptions(options) {\n if (isServer()) {\n return // stop here\n }\n\n let isSupportOptions = true\n const { capture } = options\n return isSupportOptions\n ? options\n : typeof capture !== 'undefined'\n ? capture\n : false\n}\n\nconst setOverflowHidden = () => {\n try {\n const htmlElement = document.documentElement\n const bodyElement = document.body\n const htmlStyle = Object.assign({}, htmlElement.style)\n const bodyStyle = Object.assign({}, bodyElement.style)\n const scrollBarWidth =\n window.innerWidth - (bodyElement.clientWidth || window.innerWidth)\n\n htmlElement.style.overflow = 'hidden'\n htmlElement.style.height = '100%'\n htmlElement.style.setProperty(\n '--scrollbar-width',\n `${scrollBarWidth}px`\n )\n\n bodyElement.style.overflow = 'hidden'\n bodyElement.style.height = 'auto'\n bodyElement.style.boxSizing = 'border-box'\n bodyElement.style.marginRight = `${scrollBarWidth}px`\n\n return () => {\n try {\n // eslint-disable-next-line\n ;['overflow', 'height'].forEach((x) => {\n htmlElement.style[x] = htmlStyle[x] || ''\n })\n ;['overflow', 'height', 'boxSizing', 'margin'].forEach((x) => {\n bodyElement.style[x] = bodyStyle[x] || ''\n })\n htmlElement.style.removeProperty('--scrollbar-width')\n } catch (e) {\n warn(e)\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n\nconst setOverflowHiddenIOS = (targetElement) => {\n if (targetElement) {\n const elementArray = Array.isArray(targetElement)\n ? targetElement\n : [targetElement]\n elementArray.forEach((element) => {\n if (element && lockedElements.indexOf(element) === -1) {\n element.ontouchstart = (event) => {\n initialClientY = event.targetTouches[0].clientY\n initialClientX = event.targetTouches[0].clientX\n }\n element.ontouchmove = (event) => {\n if (event.targetTouches.length !== 1) {\n return // stop here\n }\n handleScroll(event, element)\n }\n lockedElements.push(element)\n }\n })\n }\n\n if (!documentListenerAdded) {\n document.addEventListener(\n 'touchmove',\n preventDefault,\n eventListenerOptions\n )\n documentListenerAdded = true\n }\n\n return () => {\n if (targetElement) {\n const elementArray = Array.isArray(targetElement)\n ? targetElement\n : [targetElement]\n elementArray.forEach((element) => {\n const index = lockedElements.indexOf(element)\n if (index !== -1) {\n element.ontouchmove = null\n element.ontouchstart = null\n lockedElements.splice(index, 1)\n }\n })\n }\n\n if (documentListenerAdded) {\n document.removeEventListener(\n 'touchmove',\n preventDefault,\n eventListenerOptions\n )\n documentListenerAdded = false\n }\n }\n}\n\nconst setOverflowHiddenAndroid = () => {\n try {\n const unbind = setOverflowHidden()\n\n const htmlElement = document.documentElement\n const bodyElement = document.body\n const scrollTop = htmlElement.scrollTop || bodyElement.scrollTop\n const bodyStyle = Object.assign({}, bodyElement.style)\n\n bodyElement.style.position = 'fixed'\n bodyElement.style.top = `-${scrollTop}px`\n bodyElement.style.left = '0'\n bodyElement.style.right = '0'\n\n return () => {\n unbind()\n\n try {\n // eslint-disable-next-line\n ;['position', 'top', 'right', 'left'].forEach((x) => {\n bodyElement.style[x] = bodyStyle[x] || ''\n })\n\n const scrollBehavior =\n window.getComputedStyle(htmlElement).scrollBehavior\n htmlElement.style.scrollBehavior = 'auto'\n htmlElement.scrollTop = scrollTop\n htmlElement.style.scrollBehavior = scrollBehavior\n } catch (e) {\n warn(e)\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n\nconst preventDefault = (event) => {\n const found = lockedElements.find((targetElement) => {\n return isChildOfElement(event.target, targetElement)\n })\n\n if (found || !event.cancelable) {\n return // stop here\n }\n\n event.preventDefault()\n}\n\n// Deprecated – this function can be removed as soon as we do not need to support iOS < 14\nconst handleScroll = (event, targetElement) => {\n try {\n if (targetElement) {\n const {\n scrollTop,\n scrollLeft,\n scrollWidth,\n scrollHeight,\n clientWidth,\n clientHeight,\n } = targetElement\n const clientX = event.targetTouches[0].clientX - initialClientX\n const clientY = event.targetTouches[0].clientY - initialClientY\n const isVertical = Math.abs(clientY) > Math.abs(clientX)\n const isOnTop = clientY > 0 && scrollTop === 0\n const isOnLeft = clientX > 0 && scrollLeft === 0\n const isOnRight =\n clientX < 0 && scrollLeft + clientWidth + 1 >= scrollWidth\n const isOnBottom =\n clientY < 0 && scrollTop + clientHeight + 1 >= scrollHeight\n if (\n (isVertical && (isOnTop || isOnBottom)) ||\n (!isVertical && (isOnLeft || isOnRight))\n ) {\n const hasScrollbar = isChildOfElement(\n event.target,\n targetElement,\n checkIfHasScrollbar\n )\n\n if (hasScrollbar && hasScrollbar !== targetElement) {\n return true\n }\n\n return event.cancelable && event.preventDefault()\n }\n }\n\n event.stopPropagation()\n\n return true\n } catch (e) {\n warn(e)\n }\n}\n\nconst checkTargetElement = (targetElement) => {\n if (targetElement) return\n if (targetElement === null) return\n warn(\n `If scrolling is also required in the floating layer, ` +\n `the target element must be provided.`\n )\n}\n\nexport const disableBodyScroll = (targetElement) => {\n if (isServer()) {\n return // stop here\n }\n\n checkTargetElement(targetElement)\n\n try {\n // iOS\n if (detectOS().ios) {\n callbackUnlock = setOverflowHiddenIOS(targetElement)\n\n // Android or Desktop\n } else if (lockedNum <= 0) {\n if (detectOS().android) {\n callbackUnlock = setOverflowHiddenAndroid()\n } else {\n callbackUnlock = setOverflowHidden()\n }\n }\n\n lockedNum += 1\n } catch (e) {\n warn(e)\n }\n}\n\nexport const enableBodyScroll = (targetElement) => {\n if (isServer()) {\n return\n }\n\n checkTargetElement(targetElement)\n\n try {\n lockedNum -= 1\n\n if (lockedNum > 0) {\n return // stop here\n }\n\n if (typeof callbackUnlock === 'function') {\n callbackUnlock()\n }\n } catch (e) {\n warn(e)\n }\n}\n\nexport const clearAllBodyScrollLocks = () => {\n if (isServer()) {\n return // stop here\n }\n\n try {\n lockedNum = 0\n\n if (typeof callbackUnlock === 'function') {\n callbackUnlock()\n }\n\n // iOS\n if (detectOS().ios) {\n if (lockedElements && lockedElements.length) {\n // clear events\n let element = lockedElements.pop()\n while (element) {\n element.ontouchmove = null\n element.ontouchstart = null\n element = lockedElements.pop()\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n"],"mappings":"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"}
|
|
@@ -63,7 +63,7 @@ const format = function (value) {
|
|
|
63
63
|
const opts = (typeof options === 'string' && options[0] === '{' ? JSON.parse(options) : options) || {};
|
|
64
64
|
if (parseFloat(decimals) >= 0) {
|
|
65
65
|
value = formatDecimals(value, decimals, omit_rounding, opts);
|
|
66
|
-
} else if (typeof opts.maximumFractionDigits === 'undefined') {
|
|
66
|
+
} else if (typeof opts.maximumFractionDigits === 'undefined' && !(0, _componentHelper.isTrue)(percent) && !(0, _componentHelper.isTrue)(currency)) {
|
|
67
67
|
opts.maximumFractionDigits = 20;
|
|
68
68
|
}
|
|
69
69
|
if ((0, _componentHelper.isTrue)(phone)) {
|
|
@@ -103,7 +103,9 @@ const format = function (value) {
|
|
|
103
103
|
aria = _aria;
|
|
104
104
|
} else if ((0, _componentHelper.isTrue)(percent)) {
|
|
105
105
|
if (decimals === null) {
|
|
106
|
-
|
|
106
|
+
if (typeof opts.maximumFractionDigits === 'undefined') {
|
|
107
|
+
decimals = countDecimals(value);
|
|
108
|
+
}
|
|
107
109
|
value = formatDecimals(value, decimals, omit_rounding, opts);
|
|
108
110
|
}
|
|
109
111
|
if (!opts.style) {
|
|
@@ -240,10 +242,10 @@ const formatDecimals = function (value, decimals) {
|
|
|
240
242
|
if (decimals >= 0) {
|
|
241
243
|
opts.minimumFractionDigits = decimals;
|
|
242
244
|
opts.maximumFractionDigits = decimals;
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
245
|
+
}
|
|
246
|
+
const pos = String(value).indexOf('.');
|
|
247
|
+
if (pos > 0 && omit_rounding === true) {
|
|
248
|
+
value = String(value).substring(0, pos + 1 + (decimals || opts.maximumFractionDigits));
|
|
247
249
|
}
|
|
248
250
|
return value;
|
|
249
251
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberUtils.js","names":["_react","_interopRequireDefault","require","_Context","_defaults","_componentHelper","_helpers","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","exports","pos","substr","_String$split$","decimalSeparator","Math","floor","valueOf","split","existingFormatter","callback","position","count","countCurrency","reg","first","second","IS_MAC","abs","getGroupFormatter","formatToParts","map","reduce","acc","_ref2","toLocaleString","stringify","code","s","join","IS_WIN","num","prefix","suffix","startsWith","substring","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","NumberFormat","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'\n\nconst NUMBER_CHARS = '\\\\-0-9,.'\n\n/**\n * Format a number to a streamlined format based on the given locale\n *\n * @param {string|number} value any number\n * @type {object} string or object { when: { min: 'small' } } that describes the media query\n * @property {string} locale - media queries\n * @property {boolean} clean - if true, clean the number for unwanted decimal separators\n * @property {string|boolean} compact - shortens any number or currency including an abbreviation. You can combine `compact` with `currency`. It gives you zero decimal by default `decimals={0}`. Use either a boolean, or a string with \"short\" or \"long\"\n * @property {boolean} phone - if true, it formats to a phone number\n * @property {boolean} org - if true, it formats to a Organization Number\n * @property {boolean} ban - if true, it formats to a Bank Account Number\n * @property {boolean} nin - if true, it formats to a National Identification Number\n * @property {boolean} percent - if true, it formats with a percent\n * @property {string|boolean} currency - currency code (ISO 4217) or `true` to use the default, `NOK`\n * @property {string} currency_display - use false or empty string to hide the sign or \"code\", \"name\", \"symbol\" or \"narrowSymbol\" – supports the API from number.toLocaleString\n * @property {string} currency_position - can be \"before\" or \"after\"\n * @property {string} omit_currency_sign - hides currency sign if true is given\n * @property {number} decimals - defines how many decimals should be added\n * @property {boolean} omit_rounding - if true, the decimal will NOT be rounded. Normally, by using `toFixed` or by using `maximumFractionDigits`, decimals get rounded.\n * @property {object} options - accepts all number.toLocaleString API options\n * @property {boolean} returnAria - if true, this function returns an object that includes an aria property with a special aria formatting\n * @returns a formatted number as a string or as an object if \"returnAria\" is true\n */\nexport const format = (\n value,\n {\n locale = null, // can be \"auto\"\n clean = false,\n compact = null,\n phone = null,\n org = null,\n ban = null,\n nin = null,\n percent = null,\n currency = null,\n currency_display = null,\n currency_position = null,\n omit_currency_sign = null,\n clean_copy_value = null,\n decimals = null,\n omit_rounding = null,\n options = null,\n returnAria = false,\n } = {}\n) => {\n let display = value\n let aria = null\n let type = 'number'\n\n // because we are using context comparison\n if (!locale) {\n locale = LOCALE\n } else if (locale === 'auto') {\n try {\n locale = window.navigator.language\n } catch (e) {\n warn(e)\n }\n }\n\n if (isTrue(clean)) {\n value = cleanNumber(value)\n }\n\n const opts =\n (typeof options === 'string' && options[0] === '{'\n ? JSON.parse(options)\n : options) || {}\n\n if (parseFloat(decimals) >= 0) {\n value = formatDecimals(value, decimals, omit_rounding, opts)\n } else if (typeof opts.maximumFractionDigits === 'undefined') {\n // if no decimals are set, opts.maximumFractionDigits is set\n // why do we this? because the \".toLotoLocaleString\" will else use 3 as the default\n opts.maximumFractionDigits = 20\n }\n\n if (isTrue(phone)) {\n type = 'phone'\n const { number: _number, aria: _aria } = formatPhone(value, locale)\n\n if (clean === null) {\n value = cleanNumber(value) // clean, because of +47 and ++47\n }\n display = _number\n aria = _aria\n } else if (isTrue(ban)) {\n type = 'ban' // Bank Account Number\n const { number: _number, aria: _aria } = formatBAN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(nin)) {\n type = 'nin' // National Identification Number\n const { number: _number, aria: _aria } = formatNIN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(org)) {\n type = 'org' // organization number\n\n const { number: _number, aria: _aria } = formatORG(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(percent)) {\n if (decimals === null) {\n decimals = countDecimals(value)\n value = formatDecimals(value, decimals, omit_rounding, opts)\n }\n\n if (!opts.style) {\n opts.style = 'percent'\n }\n\n display = formatNumber(value / 100, locale, opts)\n } else if (isTrue(currency) || typeof currency === 'string') {\n type = 'currency'\n\n opts.currency =\n opts.currency || (isTrue(currency) ? CURRENCY : currency)\n\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n if (decimals === null) {\n decimals = 2\n value = formatDecimals(value, decimals, omit_rounding, opts)\n }\n\n // cleanup, but only if it not got cleaned up already\n let cleanedNumber =\n decimals >= 0 ? value : clean ? cleanNumber(value) : value\n\n if (currency_display === false || currency_display === '') {\n omit_currency_sign = true\n }\n\n opts.style = 'currency'\n opts.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n opts.currencyDisplay || currency_display\n )\n\n // if currency has no decimal, then go ahead and remove it\n if (\n typeof opts.minimumFractionDigits === 'undefined' &&\n String(value).indexOf('.') === -1 &&\n cleanedNumber % 1 === 0\n ) {\n opts.minimumFractionDigits = 0 // to enforce Norwegian style\n }\n\n let formatter = undefined\n\n if (isTrue(omit_currency_sign)) {\n formatter = (item) => {\n switch (item.type) {\n case 'literal':\n item.value = item.value === ' ' ? '' : item.value\n return item\n\n case 'currency':\n item.value = ''\n return item\n\n default:\n return item\n }\n }\n }\n\n /**\n * Make exception – if locale is Norwegian, and position is not defined, then use position \"after\"\n */\n if (!currency_position && locale && /(no|nb|nn)$/i.test(locale)) {\n currency_position = 'after'\n }\n\n let currencySuffix = null\n if (currency_position) {\n formatter = currencyPositionFormatter(\n formatter,\n ({ value }) => (currencySuffix = value.trim()),\n currency_position\n )\n }\n\n display = formatNumber(cleanedNumber, locale, opts, formatter)\n display = prepareMinus(display, locale)\n\n if (currency_position && currencySuffix) {\n if (currency_position === 'after') {\n display = `${display.trim()} ${currencySuffix}`\n } else if (currency_position === 'before') {\n display = `${currencySuffix} ${display.trim()}`\n }\n }\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // aria options\n aria = formatNumber(cleanedNumber, locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n ...opts,\n currencyDisplay: 'name',\n })\n aria = enhanceSR(cleanedNumber, aria, locale) // also calls prepareMinus\n\n // get only the currency name\n // const num = aria.replace(/([^0-9])+$/g, '')\n // const name = aria.replace(num, '')\n // aria = cleanedNumber + name\n } else {\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n display = formatNumber(value, locale, opts)\n display = prepareMinus(display, locale)\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // fix for NDVA to make sure we read the number, we add a minimum fraction digit (decimal)\n // NVDA fix\n aria = formatNumber(value, locale, opts)\n aria = enhanceSR(value, aria, locale) // also calls prepareMinus\n }\n\n if (aria === null) {\n aria = display\n }\n\n if (returnAria) {\n let cleanedValue\n\n if (clean_copy_value) {\n cleanedValue = formatNumber(\n opts.style === 'percent' ? value / 100 : value,\n locale,\n opts,\n (item) => {\n switch (item.type) {\n case 'group':\n case 'literal':\n case 'currency':\n case 'percentSign':\n item.value = ''\n return item\n default:\n return item\n }\n }\n )\n } else {\n const thousandsSeparator = getThousandsSeparator(locale)\n cleanedValue = String(display).replace(\n new RegExp(`${thousandsSeparator}(?=\\\\d{3})`, 'g'),\n ''\n )\n }\n\n // return \"locale\" as well value,l, since we have to \"auto\" option\n return { value, cleanedValue, number: display, aria, locale, type }\n }\n\n return display\n}\n\n/**\n * Fill format decimals\n *\n * @param {number|string} value\n * @param {number} decimals how many decimals\n * @param {boolean} omit_rounding if decimals should be rounded or cut off\n * @param {boolean} clean whether the value should be cleaned or not\n * @param {object} opts immutable object\n * @returns a decimal prepared number\n */\nexport const formatDecimals = (\n value,\n decimals,\n omit_rounding = false,\n opts = {}\n) => {\n decimals = parseFloat(decimals)\n\n if (decimals >= 0) {\n opts.minimumFractionDigits = decimals\n opts.maximumFractionDigits = decimals\n\n const pos = String(value).indexOf('.')\n if (pos > 0 && omit_rounding === true) {\n value = String(value).substr(0, pos + 1 + decimals)\n }\n }\n\n return value\n}\n\n/**\n * Find the amount of decimals\n *\n * @param {number|string} value any number\n * @param {string} decimalSeparator a dot or coma\n * @returns amount of decimals\n */\nexport const countDecimals = (value, decimalSeparator = '.') => {\n if (Math.floor(value.valueOf()) === value.valueOf()) {\n return 0\n }\n return String(value).split(decimalSeparator)[1]?.length || 0\n}\n\n/**\n * Changes the currency sign position\n *\n * For Norway, the position defaults to \"after\"\n *\n * @param {function} existingFormatter an existing number formatter or undefined\n * @param {function} callback function that will emitted with the currency\n * @param {string} position blank, before or after\n * @returns {function} number formatter\n */\nconst currencyPositionFormatter = (\n existingFormatter,\n callback,\n position = null\n) => {\n let count = 0\n let countCurrency = -1\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n count++\n\n switch (item.type) {\n case 'currency': {\n if (position === 'after' || (position === 'before' && count > 2)) {\n countCurrency = count\n callback(item)\n item.value = ''\n }\n return item\n }\n\n case 'literal': {\n // Remove the literal after currency\n if (count === countCurrency + 1) {\n item.value = ''\n }\n return item\n }\n\n default:\n return item\n }\n }\n}\n\n/**\n * When e.g. a currency number is given with a minus,\n * this function transforms the minus to be moved before the number\n * instead of the symbol.\n *\n * It only cleans if locale is Norwegian\n *\n * form -NOK 1 234 to NOK -1 234\n *\n * @param {string} display currency number that includes either a minus or not\n * @param {string} locale locale as a string\n * @returns {string} number\n */\nconst prepareMinus = (display, locale) => {\n /**\n * Make exception – if locale is NOT Norwegian,\n * we skip the cleanup\n */\n if (!(locale && /(no|nb|nn)$/i.test(locale))) {\n return display\n }\n\n // change the position of minus if it's first\n // check for two minus - −\n // check also for hyphen ‐\n // check also for dashes ‒ – — ―\n\n const reg = '^(-|−|‐|‒|–|—|―)'\n\n // check for first and second char\n const first = display[0]\n const second = display[1]\n\n if (new RegExp(reg).test(first)) {\n // if second is number\n if (parseFloat(second) > 0) {\n // then do not swap\n display = display.replace(new RegExp(reg + '(.*)'), '-$2')\n } else {\n // then first has to be currency\n display = display.replace(new RegExp(reg + '([^0-9]+)(.*)'), '$2-$3')\n }\n }\n\n return display\n}\n\n/**\n * Enhance VoiceOver support on mobile devices\n * Numbers under 99.999 are read out correctly, but only if we remove the spaces\n * Potential we could also check for locale: && /no|nb|nn/.test(locale)\n * but leave it for now without this extra check\n *\n * @param {string|number} value any number\n * @param {string} aria aria formatted number\n * @param {string} locale locale as a string\n * @returns aria number\n */\nconst enhanceSR = (value, aria, locale) => {\n if (IS_MAC && Math.abs(parseFloat(value)) <= 99999) {\n aria = String(aria).replace(/\\s([0-9])/g, '$1')\n }\n\n aria = prepareMinus(aria, locale)\n\n return aria\n}\n\n/**\n * The main number formatter function\n * This function is used to call the browsers/Node.js \"Intl.NumberFormat\" or \"Number.toLocaleString\" APIs\n *\n * @param {string|number} number any number\n * @param {string} locale locale as a string\n * @param {string} options formatting options based on the toLocaleString API\n * @param {string} formatter optional, a custom formatter can be given\n * @returns formatted number\n */\nexport const formatNumber = (\n number,\n locale,\n options = {},\n formatter = null\n) => {\n try {\n if (options.currencyDisplay) {\n options.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n options.currencyDisplay\n )\n }\n\n // remove unsupported decimals\n delete options.decimals\n\n if (locale && /(en|gb)$/i.test(locale)) {\n formatter = getGroupFormatter(locale, null, formatter)\n }\n\n if (formatter) {\n return formatToParts({ number, locale, options })\n .map(formatter)\n .reduce((acc, { value }) => acc + value, '')\n } else if (\n typeof Number !== 'undefined' &&\n typeof Number.toLocaleString === 'function'\n ) {\n return parseFloat(number).toLocaleString(locale, options)\n }\n } catch (e) {\n warn(\n `Number could not be formatted: ${JSON.stringify([\n number,\n locale,\n options,\n ])}`,\n e\n )\n }\n return number\n}\n\n/**\n * Use this function to format phone numbers\n *\n * @param {string|number} number a phone number\n * @param {string} locale locale as a string\n * @returns a formatted phone number\n */\nexport const formatPhone = (number, locale = null) => {\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // cleanup\n number = String(number).replace(/[^+0-9]/g, '')\n\n let code = ''\n if (number.length > 8 && number.substr(0, 2) !== '00') {\n number = '+' + number\n number = number.replace(/^\\+{2,}/, '+')\n }\n if (number[0] === '+') {\n code = number.substr(0, 3) + ' '\n number = number.substr(3)\n } else if (number.substr(0, 2) === '00') {\n code = number.substr(0, 4) + ' '\n number = number.substr(4)\n }\n code = code.replace('+', '00')\n const length = number.length\n\n // get 800 22 222\n if (length === 8 && number[0] === '8') {\n display =\n code +\n number\n .split(/([0-9]{3})([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n } else {\n // get 02000\n if (length < 6) {\n display = code + number\n } else {\n // get 6 or 8 formatting\n display =\n code +\n number\n .split(\n length === 6\n ? /^(\\+[0-9]{2})|([0-9]{3})/\n : /^(\\+[0-9]{2})|([0-9]{2})/\n )\n .filter((s) => s)\n .join(' ')\n }\n }\n\n aria =\n code +\n number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Bank Account Numbers\n *\n * @param {string|number} number a Bank Account Number\n * @param {string} locale locale as a string\n * @returns a formatted Bank Account Number\n */\nexport const formatBAN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 2000 12 34567\n display = number\n .split(/([0-9]{4})([0-9]{2})([0-9]{1,})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Organization Numbers\n *\n * @param {string|number} number a Organization Number\n * @param {string} locale locale as a string\n * @returns a formatted Organization Number\n */\nexport const formatORG = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 123 456 789\n display = number\n .split(/([0-9]{3})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{1})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format National Identification Numbers\n *\n * @param {string|number} number a National Identification Number\n * @param {string} locale locale as a string\n * @returns a formatted National Identification Number\n */\nexport const formatNIN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 180892 12345\n display = number\n .split(/([0-9]{6})/)\n .filter((s) => s)\n .join(' ')\n\n // correct nin for screen readers\n aria = display\n .split(\n /([0-9]{2})([0-9]{2})([0-9]{2}) ([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})/\n )\n .filter((s) => s)\n .join(IS_WIN ? '. ' : ' ') // NVDA fix with a dot to not read date on FF\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * This function cleans numbers for separators\n * https://en.wikipedia.org/wiki/Decimal_separator\n *\n * @param {string|number} num any number\n * @returns a number that contains valid number separators\n */\nexport function cleanNumber(\n num,\n {\n decimalSeparator = null,\n thousandsSeparator = null,\n prefix = null,\n suffix = null,\n } = {}\n) {\n if (typeof num === 'number') {\n return num\n }\n\n num = String(num).trim()\n\n if (typeof prefix === 'string' && num.startsWith(prefix)) {\n num = num.substring(prefix.length, num.length)\n }\n if (typeof suffix === 'string' && num.endsWith(suffix)) {\n num = num.substring(0, num.length - suffix.length)\n }\n\n // 1. Remove invalid chars on the beginning (not a number)\n if (/^[^0-9-]/.test(num)) {\n num = num.replace(/^(^[^0-9-]+)/, '')\n }\n\n let decimal = decimalSeparator\n let thousands = thousandsSeparator\n\n // -12 345,678\n if (/(\\s)([0-9]{3})/.test(num)) {\n thousands = thousands || '\\\\s'\n decimal = decimal || ','\n }\n\n // -12.345,678\n else if (\n /(\\.)([0-9]{3})/.test(num) &&\n !/([,'][0-9]{3})(\\.)([0-9]{3})/.test(num) // just an additional check, for support with more\n ) {\n thousands = thousands || '\\\\.'\n decimal = decimal || \",|·|'\" // also support Spain and CH\n }\n\n // -1,234,567.891\n else if (/(,)([0-9]{3})/.test(num)) {\n thousands = thousands || ','\n decimal = decimal || '\\\\.|·' // also support Spain\n }\n\n // -1'234'567.891, only used in CH\n else if (/(')([0-9]{3})/.test(num)) {\n thousands = thousands || \"'\"\n decimal = decimal || '\\\\.|,'\n } else {\n thousands = ','\n decimal = '\\\\.'\n }\n\n // 3. Remove invalid thousand separators\n const thousandReg = thousandsSeparator\n ? new RegExp(\n `([0-9]|)(${escapeRegexChars(thousandsSeparator)})([0-9]{3})`,\n 'g'\n )\n : new RegExp(`([0-9]|)(${thousands})([0-9]{3})`, 'g')\n if (thousandReg.test(num)) {\n num = num.replace(thousandReg, '$1$3')\n }\n\n // 2. Rename invalid decimal separator\n // Make sure that there are only two digits after the coma, then we clean that up.\n // else we don't, because it can be a US number\n // therefore, check first, is there a chance of being a decimal?\n // const decimalReg = new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n const decimalReg = decimalSeparator\n ? new RegExp(`(${escapeRegexChars(decimalSeparator)})([0-9]{0,})`, 'g')\n : new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n if (decimalReg.test(num)) {\n num = num.replace(decimalReg, '.$2')\n }\n\n // Edge case, if we have more than 2 decimals, replace these decimals\n if (!decimalSeparator) {\n const decimalBackup = new RegExp(`(${decimal})([0-9]{3,})`, 'g')\n if (decimalBackup.test(num)) {\n num = num.replace(decimalBackup, '.$2')\n }\n }\n\n // Remove all invalid chars\n return num.replace(new RegExp(`([^${NUMBER_CHARS}])`, 'g'), '')\n}\n\n/**\n * So iOS v13 can select something on the first try, we run this add range trick.\n * NB: This hack may be removed in future iOS versions.\n */\nexport function runIOSSelectionFix() {\n try {\n const selection = window.getSelection()\n const range = document.createRange()\n selection.removeAllRanges()\n selection.addRange(range)\n } catch (e) {\n //\n }\n}\n\n/**\n * A function that tries to copy to the clipboard\n * at the same time it shows the copy result in a tooltip\n *\n * NB: This function is not documented.\n * It should not be used!\n *\n * @param {string} value any number\n * @param {*} label\n * @param {*} positionElement\n * @returns\n */\nexport async function copyWithEffect(\n value,\n label,\n positionElement = null\n) {\n let success = null\n\n if (value) {\n try {\n const fx = showSelectionNotice({ value, label })\n success = await copyToClipboard(value)\n if (success === true) {\n fx.run(positionElement)\n }\n } catch (e) {\n warn(e)\n success = e\n }\n }\n\n return success\n}\n\n/**\n * This function add a tooltip looking\n *\n * @type {object} object with property\n * @property {string} value any value\n * @property {string} label any additional label that gets added as a suffix\n * @property {number} timeout how long the tooltip should be visible (3 sec)\n * @returns {object} { run, hide, remove } call the \"run\" function when the effect should be shown\n */\nexport function showSelectionNotice({ value, label, timeout = 3e3 }) {\n const id = 'id-' + slugify(value)\n if (typeof document !== 'undefined' && document.getElementById(id)) {\n return { run: () => {} }\n }\n\n let elem, content, root\n\n try {\n root = document.querySelector('.dnb-tooltip__portal, body')\n\n // create that portal element\n elem = document.createElement('span')\n elem.setAttribute('id', id)\n elem.setAttribute('class', 'dnb-tooltip')\n elem.setAttribute('role', 'tooltip')\n\n const arrow = document.createElement('span')\n arrow.setAttribute(\n 'class',\n 'dnb-tooltip__arrow dnb-tooltip__arrow__position--top'\n )\n content = document.createElement('span')\n content.setAttribute('class', 'dnb-tooltip__content')\n content.setAttribute('aria-live', 'assertive')\n elem.appendChild(arrow)\n elem.appendChild(content)\n } catch (e) {\n warn(e)\n }\n\n return new (class SelectionFx {\n remove() {\n try {\n root.removeChild(elem)\n elem = null\n content = null\n } catch (e) {\n //\n }\n }\n hide() {\n try {\n elem.classList.add('dnb-tooltip--hide')\n } catch (e) {\n //\n }\n }\n run(pE = getSelectedElement()) {\n try {\n root.appendChild(elem)\n\n const top = getOffsetTop(pE)\n const left = getOffsetLeft(pE)\n\n content.innerHTML =\n String(label) +\n (pE instanceof HTMLElement\n ? `<span class=\"dnb-sr-only\">: ${\n (\n (pE &&\n pE.querySelector('.dnb-number-format__selection')) ||\n pE\n ).innerHTML\n }</span>`\n : '')\n\n const width =\n (\n (pE && pE.querySelector('.dnb-number-format__visible')) ||\n pE ||\n {}\n ).offsetWidth || 0\n\n elem.style.top = `${top - elem.offsetHeight}px`\n elem.style.left = `${left + width / 2 - elem.offsetWidth / 2}px`\n elem.classList.add('dnb-tooltip--active')\n\n setTimeout(this.hide, timeout)\n setTimeout(this.remove, timeout + 600)\n } catch (e) {\n warn(e)\n }\n }\n })()\n}\n\n/**\n * React Hook\n * It returns \"copyWithEffect\" but with a translated string\n *\n * @returns copyWithEffect function inside object { copy }\n */\nexport function useCopyWithNotice() {\n const {\n translation: {\n NumberFormat: { clipboard_copy },\n },\n } = React.useContext(Context)\n\n const copy = (value, positionElement) => {\n copyWithEffect(value, clipboard_copy, positionElement)\n }\n\n return { copy }\n}\n\n/**\n * Will return currency display value based on navigator/browser and locale\n *\n * @property {string} currency_display (optional) code, name, symbol or narrowSymbol\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getFallbackCurrencyDisplay(\n locale = null,\n currency_display = null\n) {\n // If currencyDisplay is not defined and locale is \"no\", use narrowSymbol\n if (!currency_display && (!locale || /(no|nb|nn)$/i.test(locale))) {\n currency_display = 'narrowSymbol'\n }\n\n return currency_display || CURRENCY_DISPLAY // code, name, symbol\n}\n\n/**\n * This function returns a decimal separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getDecimalSeparator(locale = null) {\n const separator =\n formatToParts({\n number: 1.1,\n locale,\n }).find(({ type }) => type === 'decimal')?.value || ',' // defaults to nb-NO\n\n return separator\n}\n\n/**\n * This function returns a thousands separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getThousandsSeparator(locale = null) {\n const formatter = getGroupFormatter(locale)\n\n return (\n formatToParts({\n number: 1000,\n locale,\n })\n .map(formatter)\n .find(({ type }) => type === 'group')?.value || ' '\n ) // defaults to nb-NO\n}\n\n/**\n * This function returns a currency symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @property {string} currency (optional) a given currency\n * @property {currencyDisplay} currencyDisplay (optional) what currency display\n * @returns {string} a currency symbol\n */\nexport function getCurrencySymbol(\n locale = null,\n currency = null,\n currencyDisplay = null\n) {\n if (!currency) {\n currency = CURRENCY\n }\n return (\n formatToParts({\n number: 1,\n locale,\n options: {\n style: 'currency',\n currency,\n currencyDisplay: getFallbackCurrencyDisplay(\n locale,\n currencyDisplay\n ),\n },\n }).find(({ type }) => type === 'currency')?.value || currency\n )\n}\n\nfunction getGroupFormatter(\n locale = null,\n separatorSymbol = null,\n existingFormatter = null\n) {\n /**\n * We change the thousand separator to be a non-breaking space\n *\n * Effected locales:\n * - en-GB\n * - en\n */\n if (locale && /(en|gb)$/i.test(locale)) {\n separatorSymbol = ' ' // non-breaking space\n }\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n if (item.type === 'group') {\n item.value = separatorSymbol || item.value\n }\n\n return item\n }\n}\n\n/**\n * For internal usage\n *\n * @type {object}\n * @property {string} number - a number\n * @property {string} locale - locale as a string. Defaults to the global LOCALE constant\n * @property {object} options - NumberFormat options\n * @returns {array} that contains all the parts of the given number [{ value: x, type: 'type' }]\n */\nfunction formatToParts({ number, locale = null, options = null }) {\n if (\n typeof Intl !== 'undefined' &&\n typeof Intl.NumberFormat === 'function'\n ) {\n try {\n const inst = Intl.NumberFormat(locale || LOCALE, options || {})\n if (typeof inst.formatToParts === 'function') {\n return inst.formatToParts(number)\n } else {\n return [{ value: inst.format(number) }]\n }\n } catch (e) {\n warn(e)\n }\n }\n\n return [{ value: number }]\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string} value any number\n * @property {string} locale a given locale\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {number} decimals the amount of decimals\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeDisplay({\n value,\n locale,\n compact,\n decimals = 0,\n opts,\n} = {}) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n value = parseInt(Math.abs(value))\n opts.notation = 'compact'\n\n // For numbers under 1M we do\n if (isTrue(compact) && locale && /(no|nb|nn)$/i.test(locale)) {\n opts.compactDisplay = Math.abs(value) < 1000000 ? 'long' : 'short'\n } else {\n opts.compactDisplay = !isTrue(compact) ? compact : 'short'\n }\n\n if (typeof opts.maximumSignificantDigits === 'undefined') {\n if (isNaN(parseFloat(decimals))) {\n decimals = 0\n } else {\n decimals = parseFloat(decimals)\n }\n\n // This formula ensures we always get the same amount deciamls\n const ref = String(value).length % 3\n if (ref === 2) {\n decimals += 1\n } else if (ref === 0) {\n decimals += 2\n }\n\n // The result of this formula would be equal to this:\n // if (value >= 100000000000000) {\n // decimals += 2\n // } else if (value >= 10000000000000) {\n // decimals += 1\n // } else if (value >= 1000000000000) {\n // decimals += 0\n // } else if (value >= 100000000000) {\n // decimals += 2\n // } else if (value >= 10000000000) {\n // decimals += 1\n // } else if (value >= 1000000000) {\n // decimals += 0\n // } else if (value >= 100000000) {\n // decimals += 2\n // } else if (value >= 10000000) {\n // decimals += 1\n // } else if (value >= 1000000) {\n // decimals += 0\n // } else if (value >= 100000) {\n // decimals += 2\n // } else if (value >= 10000) {\n // decimals += 1\n // }\n\n // Firefox issue?\n // If we do not define \"maximumSignificantDigits\" Firefox does not show any decimals at all\n opts.maximumSignificantDigits = decimals + 1\n }\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeAria({ value, compact, opts }) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n opts.compactDisplay = 'long'\n}\n\n/**\n * Checks if we should/can handle the compact format\n *\n * @param {object}\n * @property {string|number} value any number\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n */\nfunction canHandleCompact({ value, compact }) {\n if (compact && Math.abs(value) >= 1000) {\n return true\n }\n\n return false\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NumberUtils.js","names":["_react","_interopRequireDefault","require","_Context","_defaults","_componentHelper","_helpers","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","exports","pos","substring","_String$split$","decimalSeparator","Math","floor","valueOf","split","existingFormatter","callback","position","count","countCurrency","reg","first","second","IS_MAC","abs","getGroupFormatter","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","NumberFormat","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'\n\nconst NUMBER_CHARS = '\\\\-0-9,.'\n\n/**\n * Format a number to a streamlined format based on the given locale\n *\n * @param {string|number} value any number\n * @type {object} string or object { when: { min: 'small' } } that describes the media query\n * @property {string} locale - media queries\n * @property {boolean} clean - if true, clean the number for unwanted decimal separators\n * @property {string|boolean} compact - shortens any number or currency including an abbreviation. You can combine `compact` with `currency`. It gives you zero decimal by default `decimals={0}`. Use either a boolean, or a string with \"short\" or \"long\"\n * @property {boolean} phone - if true, it formats to a phone number\n * @property {boolean} org - if true, it formats to a Organization Number\n * @property {boolean} ban - if true, it formats to a Bank Account Number\n * @property {boolean} nin - if true, it formats to a National Identification Number\n * @property {boolean} percent - if true, it formats with a percent\n * @property {string|boolean} currency - currency code (ISO 4217) or `true` to use the default, `NOK`\n * @property {string} currency_display - use false or empty string to hide the sign or \"code\", \"name\", \"symbol\" or \"narrowSymbol\" – supports the API from number.toLocaleString\n * @property {string} currency_position - can be \"before\" or \"after\"\n * @property {string} omit_currency_sign - hides currency sign if true is given\n * @property {number} decimals - defines how many decimals should be added\n * @property {boolean} omit_rounding - if true, the decimal will NOT be rounded. Normally, by using `toFixed` or by using `maximumFractionDigits`, decimals get rounded.\n * @property {object} options - accepts all number.toLocaleString API options\n * @property {boolean} returnAria - if true, this function returns an object that includes an aria property with a special aria formatting\n * @returns a formatted number as a string or as an object if \"returnAria\" is true\n */\nexport const format = (\n value,\n {\n locale = null, // can be \"auto\"\n clean = false,\n compact = null,\n phone = null,\n org = null,\n ban = null,\n nin = null,\n percent = null,\n currency = null,\n currency_display = null,\n currency_position = null,\n omit_currency_sign = null,\n clean_copy_value = null,\n decimals = null,\n omit_rounding = null,\n options = null,\n returnAria = false,\n } = {}\n) => {\n let display = value\n let aria = null\n let type = 'number'\n\n // because we are using context comparison\n if (!locale) {\n locale = LOCALE\n } else if (locale === 'auto') {\n try {\n locale = window.navigator.language\n } catch (e) {\n warn(e)\n }\n }\n\n if (isTrue(clean)) {\n value = cleanNumber(value)\n }\n\n const opts =\n (typeof options === 'string' && options[0] === '{'\n ? JSON.parse(options)\n : options) || {}\n\n if (parseFloat(decimals) >= 0) {\n value = formatDecimals(value, decimals, omit_rounding, opts)\n } else if (\n typeof opts.maximumFractionDigits === 'undefined' &&\n !isTrue(percent) &&\n !isTrue(currency)\n ) {\n // if no decimals are set, opts.maximumFractionDigits is set\n // why do we this? because the \".toLocaleString\" will else use 3 as the default\n opts.maximumFractionDigits = 20\n }\n\n if (isTrue(phone)) {\n type = 'phone'\n const { number: _number, aria: _aria } = formatPhone(value, locale)\n\n if (clean === null) {\n value = cleanNumber(value) // clean, because of +47 and ++47\n }\n display = _number\n aria = _aria\n } else if (isTrue(ban)) {\n type = 'ban' // Bank Account Number\n const { number: _number, aria: _aria } = formatBAN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(nin)) {\n type = 'nin' // National Identification Number\n const { number: _number, aria: _aria } = formatNIN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(org)) {\n type = 'org' // organization number\n\n const { number: _number, aria: _aria } = formatORG(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(percent)) {\n if (decimals === null) {\n if (typeof opts.maximumFractionDigits === 'undefined') {\n decimals = countDecimals(value)\n }\n value = formatDecimals(value, decimals, omit_rounding, opts)\n }\n\n if (!opts.style) {\n opts.style = 'percent'\n }\n\n display = formatNumber(value / 100, locale, opts)\n } else if (isTrue(currency) || typeof currency === 'string') {\n type = 'currency'\n\n opts.currency =\n opts.currency || (isTrue(currency) ? CURRENCY : currency)\n\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n if (decimals === null) {\n decimals = 2\n value = formatDecimals(value, decimals, omit_rounding, opts)\n }\n\n // cleanup, but only if it not got cleaned up already\n let cleanedNumber =\n decimals >= 0 ? value : clean ? cleanNumber(value) : value\n\n if (currency_display === false || currency_display === '') {\n omit_currency_sign = true\n }\n\n opts.style = 'currency'\n opts.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n opts.currencyDisplay || currency_display\n )\n\n // if currency has no decimal, then go ahead and remove it\n if (\n typeof opts.minimumFractionDigits === 'undefined' &&\n String(value).indexOf('.') === -1 &&\n cleanedNumber % 1 === 0\n ) {\n opts.minimumFractionDigits = 0 // to enforce Norwegian style\n }\n\n let formatter = undefined\n\n if (isTrue(omit_currency_sign)) {\n formatter = (item) => {\n switch (item.type) {\n case 'literal':\n item.value = item.value === ' ' ? '' : item.value\n return item\n\n case 'currency':\n item.value = ''\n return item\n\n default:\n return item\n }\n }\n }\n\n /**\n * Make exception – if locale is Norwegian, and position is not defined, then use position \"after\"\n */\n if (!currency_position && locale && /(no|nb|nn)$/i.test(locale)) {\n currency_position = 'after'\n }\n\n let currencySuffix = null\n if (currency_position) {\n formatter = currencyPositionFormatter(\n formatter,\n ({ value }) => (currencySuffix = value.trim()),\n currency_position\n )\n }\n\n display = formatNumber(cleanedNumber, locale, opts, formatter)\n display = prepareMinus(display, locale)\n\n if (currency_position && currencySuffix) {\n if (currency_position === 'after') {\n display = `${display.trim()} ${currencySuffix}`\n } else if (currency_position === 'before') {\n display = `${currencySuffix} ${display.trim()}`\n }\n }\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // aria options\n aria = formatNumber(cleanedNumber, locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n ...opts,\n currencyDisplay: 'name',\n })\n aria = enhanceSR(cleanedNumber, aria, locale) // also calls prepareMinus\n\n // get only the currency name\n // const num = aria.replace(/([^0-9])+$/g, '')\n // const name = aria.replace(num, '')\n // aria = cleanedNumber + name\n } else {\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n display = formatNumber(value, locale, opts)\n display = prepareMinus(display, locale)\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // fix for NDVA to make sure we read the number, we add a minimum fraction digit (decimal)\n // NVDA fix\n aria = formatNumber(value, locale, opts)\n aria = enhanceSR(value, aria, locale) // also calls prepareMinus\n }\n\n if (aria === null) {\n aria = display\n }\n\n if (returnAria) {\n let cleanedValue\n\n if (clean_copy_value) {\n cleanedValue = formatNumber(\n opts.style === 'percent' ? value / 100 : value,\n locale,\n opts,\n (item) => {\n switch (item.type) {\n case 'group':\n case 'literal':\n case 'currency':\n case 'percentSign':\n item.value = ''\n return item\n default:\n return item\n }\n }\n )\n } else {\n const thousandsSeparator = getThousandsSeparator(locale)\n cleanedValue = String(display).replace(\n new RegExp(`${thousandsSeparator}(?=\\\\d{3})`, 'g'),\n ''\n )\n }\n\n // return \"locale\" as well value,l, since we have to \"auto\" option\n return { value, cleanedValue, number: display, aria, locale, type }\n }\n\n return display\n}\n\n/**\n * Fill format decimals\n *\n * @param {number|string} value\n * @param {number} decimals how many decimals\n * @param {boolean} omit_rounding if decimals should be rounded or cut off\n * @param {boolean} clean whether the value should be cleaned or not\n * @param {object} opts immutable object\n * @returns a decimal prepared number\n */\nexport const formatDecimals = (\n value,\n decimals,\n omit_rounding = false,\n opts = {}\n) => {\n decimals = parseFloat(decimals)\n\n if (decimals >= 0) {\n opts.minimumFractionDigits = decimals\n opts.maximumFractionDigits = decimals\n }\n\n const pos = String(value).indexOf('.')\n if (pos > 0 && omit_rounding === true) {\n value = String(value).substring(\n 0,\n pos + 1 + (decimals || opts.maximumFractionDigits)\n )\n }\n\n return value\n}\n\n/**\n * Find the amount of decimals\n *\n * @param {number|string} value any number\n * @param {string} decimalSeparator a dot or coma\n * @returns amount of decimals\n */\nexport const countDecimals = (value, decimalSeparator = '.') => {\n if (Math.floor(value.valueOf()) === value.valueOf()) {\n return 0\n }\n return String(value).split(decimalSeparator)[1]?.length || 0\n}\n\n/**\n * Changes the currency sign position\n *\n * For Norway, the position defaults to \"after\"\n *\n * @param {function} existingFormatter an existing number formatter or undefined\n * @param {function} callback function that will emitted with the currency\n * @param {string} position blank, before or after\n * @returns {function} number formatter\n */\nconst currencyPositionFormatter = (\n existingFormatter,\n callback,\n position = null\n) => {\n let count = 0\n let countCurrency = -1\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n count++\n\n switch (item.type) {\n case 'currency': {\n if (position === 'after' || (position === 'before' && count > 2)) {\n countCurrency = count\n callback(item)\n item.value = ''\n }\n return item\n }\n\n case 'literal': {\n // Remove the literal after currency\n if (count === countCurrency + 1) {\n item.value = ''\n }\n return item\n }\n\n default:\n return item\n }\n }\n}\n\n/**\n * When e.g. a currency number is given with a minus,\n * this function transforms the minus to be moved before the number\n * instead of the symbol.\n *\n * It only cleans if locale is Norwegian\n *\n * form -NOK 1 234 to NOK -1 234\n *\n * @param {string} display currency number that includes either a minus or not\n * @param {string} locale locale as a string\n * @returns {string} number\n */\nconst prepareMinus = (display, locale) => {\n /**\n * Make exception – if locale is NOT Norwegian,\n * we skip the cleanup\n */\n if (!(locale && /(no|nb|nn)$/i.test(locale))) {\n return display\n }\n\n // change the position of minus if it's first\n // check for two minus - −\n // check also for hyphen ‐\n // check also for dashes ‒ – — ―\n\n const reg = '^(-|−|‐|‒|–|—|―)'\n\n // check for first and second char\n const first = display[0]\n const second = display[1]\n\n if (new RegExp(reg).test(first)) {\n // if second is number\n if (parseFloat(second) > 0) {\n // then do not swap\n display = display.replace(new RegExp(reg + '(.*)'), '-$2')\n } else {\n // then first has to be currency\n display = display.replace(new RegExp(reg + '([^0-9]+)(.*)'), '$2-$3')\n }\n }\n\n return display\n}\n\n/**\n * Enhance VoiceOver support on mobile devices\n * Numbers under 99.999 are read out correctly, but only if we remove the spaces\n * Potential we could also check for locale: && /no|nb|nn/.test(locale)\n * but leave it for now without this extra check\n *\n * @param {string|number} value any number\n * @param {string} aria aria formatted number\n * @param {string} locale locale as a string\n * @returns aria number\n */\nconst enhanceSR = (value, aria, locale) => {\n if (IS_MAC && Math.abs(parseFloat(value)) <= 99999) {\n aria = String(aria).replace(/\\s([0-9])/g, '$1')\n }\n\n aria = prepareMinus(aria, locale)\n\n return aria\n}\n\n/**\n * The main number formatter function\n * This function is used to call the browsers/Node.js \"Intl.NumberFormat\" or \"Number.toLocaleString\" APIs\n *\n * @param {string|number} number any number\n * @param {string} locale locale as a string\n * @param {string} options formatting options based on the toLocaleString API\n * @param {string} formatter optional, a custom formatter can be given\n * @returns formatted number\n */\nexport const formatNumber = (\n number,\n locale,\n options = {},\n formatter = null\n) => {\n try {\n if (options.currencyDisplay) {\n options.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n options.currencyDisplay\n )\n }\n\n // remove unsupported decimals\n delete options.decimals\n\n if (locale && /(en|gb)$/i.test(locale)) {\n formatter = getGroupFormatter(locale, null, formatter)\n }\n\n if (formatter) {\n return formatToParts({ number, locale, options })\n .map(formatter)\n .reduce((acc, { value }) => acc + value, '')\n } else if (\n typeof Number !== 'undefined' &&\n typeof Number.toLocaleString === 'function'\n ) {\n return parseFloat(number).toLocaleString(locale, options)\n }\n } catch (e) {\n warn(\n `Number could not be formatted: ${JSON.stringify([\n number,\n locale,\n options,\n ])}`,\n e\n )\n }\n return number\n}\n\n/**\n * Use this function to format phone numbers\n *\n * @param {string|number} number a phone number\n * @param {string} locale locale as a string\n * @returns a formatted phone number\n */\nexport const formatPhone = (number, locale = null) => {\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // cleanup\n number = String(number).replace(/[^+0-9]/g, '')\n\n let code = ''\n if (number.length > 8 && number.substr(0, 2) !== '00') {\n number = '+' + number\n number = number.replace(/^\\+{2,}/, '+')\n }\n if (number[0] === '+') {\n code = number.substr(0, 3) + ' '\n number = number.substr(3)\n } else if (number.substr(0, 2) === '00') {\n code = number.substr(0, 4) + ' '\n number = number.substr(4)\n }\n code = code.replace('+', '00')\n const length = number.length\n\n // get 800 22 222\n if (length === 8 && number[0] === '8') {\n display =\n code +\n number\n .split(/([0-9]{3})([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n } else {\n // get 02000\n if (length < 6) {\n display = code + number\n } else {\n // get 6 or 8 formatting\n display =\n code +\n number\n .split(\n length === 6\n ? /^(\\+[0-9]{2})|([0-9]{3})/\n : /^(\\+[0-9]{2})|([0-9]{2})/\n )\n .filter((s) => s)\n .join(' ')\n }\n }\n\n aria =\n code +\n number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Bank Account Numbers\n *\n * @param {string|number} number a Bank Account Number\n * @param {string} locale locale as a string\n * @returns a formatted Bank Account Number\n */\nexport const formatBAN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 2000 12 34567\n display = number\n .split(/([0-9]{4})([0-9]{2})([0-9]{1,})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Organization Numbers\n *\n * @param {string|number} number a Organization Number\n * @param {string} locale locale as a string\n * @returns a formatted Organization Number\n */\nexport const formatORG = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 123 456 789\n display = number\n .split(/([0-9]{3})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{1})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format National Identification Numbers\n *\n * @param {string|number} number a National Identification Number\n * @param {string} locale locale as a string\n * @returns a formatted National Identification Number\n */\nexport const formatNIN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 180892 12345\n display = number\n .split(/([0-9]{6})/)\n .filter((s) => s)\n .join(' ')\n\n // correct nin for screen readers\n aria = display\n .split(\n /([0-9]{2})([0-9]{2})([0-9]{2}) ([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})/\n )\n .filter((s) => s)\n .join(IS_WIN ? '. ' : ' ') // NVDA fix with a dot to not read date on FF\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * This function cleans numbers for separators\n * https://en.wikipedia.org/wiki/Decimal_separator\n *\n * @param {string|number} num any number\n * @returns a number that contains valid number separators\n */\nexport function cleanNumber(\n num,\n {\n decimalSeparator = null,\n thousandsSeparator = null,\n prefix = null,\n suffix = null,\n } = {}\n) {\n if (typeof num === 'number') {\n return num\n }\n\n num = String(num).trim()\n\n if (typeof prefix === 'string' && num.startsWith(prefix)) {\n num = num.substring(prefix.length, num.length)\n }\n if (typeof suffix === 'string' && num.endsWith(suffix)) {\n num = num.substring(0, num.length - suffix.length)\n }\n\n // 1. Remove invalid chars on the beginning (not a number)\n if (/^[^0-9-]/.test(num)) {\n num = num.replace(/^(^[^0-9-]+)/, '')\n }\n\n let decimal = decimalSeparator\n let thousands = thousandsSeparator\n\n // -12 345,678\n if (/(\\s)([0-9]{3})/.test(num)) {\n thousands = thousands || '\\\\s'\n decimal = decimal || ','\n }\n\n // -12.345,678\n else if (\n /(\\.)([0-9]{3})/.test(num) &&\n !/([,'][0-9]{3})(\\.)([0-9]{3})/.test(num) // just an additional check, for support with more\n ) {\n thousands = thousands || '\\\\.'\n decimal = decimal || \",|·|'\" // also support Spain and CH\n }\n\n // -1,234,567.891\n else if (/(,)([0-9]{3})/.test(num)) {\n thousands = thousands || ','\n decimal = decimal || '\\\\.|·' // also support Spain\n }\n\n // -1'234'567.891, only used in CH\n else if (/(')([0-9]{3})/.test(num)) {\n thousands = thousands || \"'\"\n decimal = decimal || '\\\\.|,'\n } else {\n thousands = ','\n decimal = '\\\\.'\n }\n\n // 3. Remove invalid thousand separators\n const thousandReg = thousandsSeparator\n ? new RegExp(\n `([0-9]|)(${escapeRegexChars(thousandsSeparator)})([0-9]{3})`,\n 'g'\n )\n : new RegExp(`([0-9]|)(${thousands})([0-9]{3})`, 'g')\n if (thousandReg.test(num)) {\n num = num.replace(thousandReg, '$1$3')\n }\n\n // 2. Rename invalid decimal separator\n // Make sure that there are only two digits after the coma, then we clean that up.\n // else we don't, because it can be a US number\n // therefore, check first, is there a chance of being a decimal?\n // const decimalReg = new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n const decimalReg = decimalSeparator\n ? new RegExp(`(${escapeRegexChars(decimalSeparator)})([0-9]{0,})`, 'g')\n : new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n if (decimalReg.test(num)) {\n num = num.replace(decimalReg, '.$2')\n }\n\n // Edge case, if we have more than 2 decimals, replace these decimals\n if (!decimalSeparator) {\n const decimalBackup = new RegExp(`(${decimal})([0-9]{3,})`, 'g')\n if (decimalBackup.test(num)) {\n num = num.replace(decimalBackup, '.$2')\n }\n }\n\n // Remove all invalid chars\n return num.replace(new RegExp(`([^${NUMBER_CHARS}])`, 'g'), '')\n}\n\n/**\n * So iOS v13 can select something on the first try, we run this add range trick.\n * NB: This hack may be removed in future iOS versions.\n */\nexport function runIOSSelectionFix() {\n try {\n const selection = window.getSelection()\n const range = document.createRange()\n selection.removeAllRanges()\n selection.addRange(range)\n } catch (e) {\n //\n }\n}\n\n/**\n * A function that tries to copy to the clipboard\n * at the same time it shows the copy result in a tooltip\n *\n * NB: This function is not documented.\n * It should not be used!\n *\n * @param {string} value any number\n * @param {*} label\n * @param {*} positionElement\n * @returns\n */\nexport async function copyWithEffect(\n value,\n label,\n positionElement = null\n) {\n let success = null\n\n if (value) {\n try {\n const fx = showSelectionNotice({ value, label })\n success = await copyToClipboard(value)\n if (success === true) {\n fx.run(positionElement)\n }\n } catch (e) {\n warn(e)\n success = e\n }\n }\n\n return success\n}\n\n/**\n * This function add a tooltip looking\n *\n * @type {object} object with property\n * @property {string} value any value\n * @property {string} label any additional label that gets added as a suffix\n * @property {number} timeout how long the tooltip should be visible (3 sec)\n * @returns {object} { run, hide, remove } call the \"run\" function when the effect should be shown\n */\nexport function showSelectionNotice({ value, label, timeout = 3e3 }) {\n const id = 'id-' + slugify(value)\n if (typeof document !== 'undefined' && document.getElementById(id)) {\n return { run: () => {} }\n }\n\n let elem, content, root\n\n try {\n root = document.querySelector('.dnb-tooltip__portal, body')\n\n // create that portal element\n elem = document.createElement('span')\n elem.setAttribute('id', id)\n elem.setAttribute('class', 'dnb-tooltip')\n elem.setAttribute('role', 'tooltip')\n\n const arrow = document.createElement('span')\n arrow.setAttribute(\n 'class',\n 'dnb-tooltip__arrow dnb-tooltip__arrow__position--top'\n )\n content = document.createElement('span')\n content.setAttribute('class', 'dnb-tooltip__content')\n content.setAttribute('aria-live', 'assertive')\n elem.appendChild(arrow)\n elem.appendChild(content)\n } catch (e) {\n warn(e)\n }\n\n return new (class SelectionFx {\n remove() {\n try {\n root.removeChild(elem)\n elem = null\n content = null\n } catch (e) {\n //\n }\n }\n hide() {\n try {\n elem.classList.add('dnb-tooltip--hide')\n } catch (e) {\n //\n }\n }\n run(pE = getSelectedElement()) {\n try {\n root.appendChild(elem)\n\n const top = getOffsetTop(pE)\n const left = getOffsetLeft(pE)\n\n content.innerHTML =\n String(label) +\n (pE instanceof HTMLElement\n ? `<span class=\"dnb-sr-only\">: ${\n (\n (pE &&\n pE.querySelector('.dnb-number-format__selection')) ||\n pE\n ).innerHTML\n }</span>`\n : '')\n\n const width =\n (\n (pE && pE.querySelector('.dnb-number-format__visible')) ||\n pE ||\n {}\n ).offsetWidth || 0\n\n elem.style.top = `${top - elem.offsetHeight}px`\n elem.style.left = `${left + width / 2 - elem.offsetWidth / 2}px`\n elem.classList.add('dnb-tooltip--active')\n\n setTimeout(this.hide, timeout)\n setTimeout(this.remove, timeout + 600)\n } catch (e) {\n warn(e)\n }\n }\n })()\n}\n\n/**\n * React Hook\n * It returns \"copyWithEffect\" but with a translated string\n *\n * @returns copyWithEffect function inside object { copy }\n */\nexport function useCopyWithNotice() {\n const {\n translation: {\n NumberFormat: { clipboard_copy },\n },\n } = React.useContext(Context)\n\n const copy = (value, positionElement) => {\n copyWithEffect(value, clipboard_copy, positionElement)\n }\n\n return { copy }\n}\n\n/**\n * Will return currency display value based on navigator/browser and locale\n *\n * @property {string} currency_display (optional) code, name, symbol or narrowSymbol\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getFallbackCurrencyDisplay(\n locale = null,\n currency_display = null\n) {\n // If currencyDisplay is not defined and locale is \"no\", use narrowSymbol\n if (!currency_display && (!locale || /(no|nb|nn)$/i.test(locale))) {\n currency_display = 'narrowSymbol'\n }\n\n return currency_display || CURRENCY_DISPLAY // code, name, symbol\n}\n\n/**\n * This function returns a decimal separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getDecimalSeparator(locale = null) {\n const separator =\n formatToParts({\n number: 1.1,\n locale,\n }).find(({ type }) => type === 'decimal')?.value || ',' // defaults to nb-NO\n\n return separator\n}\n\n/**\n * This function returns a thousands separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getThousandsSeparator(locale = null) {\n const formatter = getGroupFormatter(locale)\n\n return (\n formatToParts({\n number: 1000,\n locale,\n })\n .map(formatter)\n .find(({ type }) => type === 'group')?.value || ' '\n ) // defaults to nb-NO\n}\n\n/**\n * This function returns a currency symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @property {string} currency (optional) a given currency\n * @property {currencyDisplay} currencyDisplay (optional) what currency display\n * @returns {string} a currency symbol\n */\nexport function getCurrencySymbol(\n locale = null,\n currency = null,\n currencyDisplay = null\n) {\n if (!currency) {\n currency = CURRENCY\n }\n return (\n formatToParts({\n number: 1,\n locale,\n options: {\n style: 'currency',\n currency,\n currencyDisplay: getFallbackCurrencyDisplay(\n locale,\n currencyDisplay\n ),\n },\n }).find(({ type }) => type === 'currency')?.value || currency\n )\n}\n\nfunction getGroupFormatter(\n locale = null,\n separatorSymbol = null,\n existingFormatter = null\n) {\n /**\n * We change the thousand separator to be a non-breaking space\n *\n * Effected locales:\n * - en-GB\n * - en\n */\n if (locale && /(en|gb)$/i.test(locale)) {\n separatorSymbol = ' ' // non-breaking space\n }\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n if (item.type === 'group') {\n item.value = separatorSymbol || item.value\n }\n\n return item\n }\n}\n\n/**\n * For internal usage\n *\n * @type {object}\n * @property {string} number - a number\n * @property {string} locale - locale as a string. Defaults to the global LOCALE constant\n * @property {object} options - NumberFormat options\n * @returns {array} that contains all the parts of the given number [{ value: x, type: 'type' }]\n */\nfunction formatToParts({ number, locale = null, options = null }) {\n if (\n typeof Intl !== 'undefined' &&\n typeof Intl.NumberFormat === 'function'\n ) {\n try {\n const inst = Intl.NumberFormat(locale || LOCALE, options || {})\n if (typeof inst.formatToParts === 'function') {\n return inst.formatToParts(number)\n } else {\n return [{ value: inst.format(number) }]\n }\n } catch (e) {\n warn(e)\n }\n }\n\n return [{ value: number }]\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string} value any number\n * @property {string} locale a given locale\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {number} decimals the amount of decimals\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeDisplay({\n value,\n locale,\n compact,\n decimals = 0,\n opts,\n} = {}) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n value = parseInt(Math.abs(value))\n opts.notation = 'compact'\n\n // For numbers under 1M we do\n if (isTrue(compact) && locale && /(no|nb|nn)$/i.test(locale)) {\n opts.compactDisplay = Math.abs(value) < 1000000 ? 'long' : 'short'\n } else {\n opts.compactDisplay = !isTrue(compact) ? compact : 'short'\n }\n\n if (typeof opts.maximumSignificantDigits === 'undefined') {\n if (isNaN(parseFloat(decimals))) {\n decimals = 0\n } else {\n decimals = parseFloat(decimals)\n }\n\n // This formula ensures we always get the same amount decimals\n const ref = String(value).length % 3\n if (ref === 2) {\n decimals += 1\n } else if (ref === 0) {\n decimals += 2\n }\n\n // The result of this formula would be equal to this:\n // if (value >= 100000000000000) {\n // decimals += 2\n // } else if (value >= 10000000000000) {\n // decimals += 1\n // } else if (value >= 1000000000000) {\n // decimals += 0\n // } else if (value >= 100000000000) {\n // decimals += 2\n // } else if (value >= 10000000000) {\n // decimals += 1\n // } else if (value >= 1000000000) {\n // decimals += 0\n // } else if (value >= 100000000) {\n // decimals += 2\n // } else if (value >= 10000000) {\n // decimals += 1\n // } else if (value >= 1000000) {\n // decimals += 0\n // } else if (value >= 100000) {\n // decimals += 2\n // } else if (value >= 10000) {\n // decimals += 1\n // }\n\n // Firefox issue?\n // If we do not define \"maximumSignificantDigits\" Firefox does not show any decimals at all\n opts.maximumSignificantDigits = decimals + 1\n }\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeAria({ value, compact, opts }) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n opts.compactDisplay = 'long'\n}\n\n/**\n * Checks if we should/can handle the compact format\n *\n * @param {object}\n * @property {string|number} value any number\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n */\nfunction canHandleCompact({ value, compact }) {\n if (compact && Math.abs(value) >= 1000) {\n return true\n }\n\n return false\n}\n"],"mappings":"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"}
|