@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
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Input theme
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@import '../../../../style/core/utilities.scss';
|
|
7
|
+
|
|
8
|
+
.dnb-input {
|
|
9
|
+
--input-height: 2.5rem;
|
|
10
|
+
--input-button-border-color: var(--input-border-color);
|
|
11
|
+
--input-button-border-width: var(--input-border-width);
|
|
12
|
+
--input-border-radius: 0.5rem;
|
|
13
|
+
--input-border-width: 0.0625rem;
|
|
14
|
+
|
|
15
|
+
// Text
|
|
16
|
+
--input-color: var(--input-color--default);
|
|
17
|
+
--input-color--default: var(--sb-color-text);
|
|
18
|
+
--input-color--active: var(--sb-color-text);
|
|
19
|
+
|
|
20
|
+
// Border
|
|
21
|
+
--input-border-color: var(--sb-color-gray-dark-2);
|
|
22
|
+
--input-border-color--hover: var(--sb-color-violet);
|
|
23
|
+
--input-border-color--active: var(--sb-color-violet);
|
|
24
|
+
--input-border-color--focus: var(--focus-ring-color);
|
|
25
|
+
|
|
26
|
+
&__shell {
|
|
27
|
+
background-color: var(--color-white);
|
|
28
|
+
transition: border-radius 0.25s ease-out;
|
|
29
|
+
border: none;
|
|
30
|
+
color: var(--input-color);
|
|
31
|
+
@include fakeBorder(
|
|
32
|
+
var(--input-border-color),
|
|
33
|
+
var(--input-border-width),
|
|
34
|
+
inset
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&__submit-button__button {
|
|
39
|
+
--button-secondary-color: var(--sb-color-violet);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&__placeholder {
|
|
43
|
+
color: var(--sb-color-gray-dark-3);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&[data-input-state='disabled'] {
|
|
47
|
+
--input-border-color: var(--sb-color-gray);
|
|
48
|
+
|
|
49
|
+
.dnb-input__shell {
|
|
50
|
+
&,
|
|
51
|
+
.dnb-icon,
|
|
52
|
+
.dnb-input__placeholder {
|
|
53
|
+
color: var(--sb-color-gray-dark-2);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
-webkit-text-fill-color: currentcolor;
|
|
57
|
+
|
|
58
|
+
background-color: var(--sb-color-gray-light);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&:not([data-input-state='disabled']) {
|
|
63
|
+
// Focus
|
|
64
|
+
&[data-input-state='focus'] {
|
|
65
|
+
--input-color: var(--input-color--active);
|
|
66
|
+
--input-border-radius: 1.5rem;
|
|
67
|
+
--input-border-color: var(--input-border-color--active);
|
|
68
|
+
|
|
69
|
+
html[data-whatinput='keyboard'] & {
|
|
70
|
+
--input-button-border-color: var(--input-border-color--focus);
|
|
71
|
+
--input-button-border-width: var(--focus-ring-width);
|
|
72
|
+
}
|
|
73
|
+
.dnb-input__shell {
|
|
74
|
+
@include focusRing(
|
|
75
|
+
null,
|
|
76
|
+
var(--input-border-color--focus),
|
|
77
|
+
inset
|
|
78
|
+
); // keyboard only
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Hover
|
|
83
|
+
.dnb-input__shell:hover,
|
|
84
|
+
.dnb-form-label:hover + .dnb-input__inner .dnb-input__shell {
|
|
85
|
+
--input-border-color: var(--input-border-color--hover);
|
|
86
|
+
--input-border-width: 0.125rem;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Button
|
|
90
|
+
.dnb-input__submit-button__button {
|
|
91
|
+
transition: border-radius 0.25s ease-out;
|
|
92
|
+
background-color: transparent;
|
|
93
|
+
box-shadow: none;
|
|
94
|
+
|
|
95
|
+
&:hover,
|
|
96
|
+
&:active {
|
|
97
|
+
border: var(--input-button-border-width) solid
|
|
98
|
+
var(--input-button-border-color);
|
|
99
|
+
border-left: none;
|
|
100
|
+
padding-left: var(--input-button-border-width);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
&:focus-visible {
|
|
104
|
+
border: none;
|
|
105
|
+
padding-left: none;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
&.dnb-input__status--error {
|
|
110
|
+
--input-border-color: var(--sb-color-red);
|
|
111
|
+
--input-color--default: var(--sb-color-red);
|
|
112
|
+
--input-color--active: var(--sb-color-text);
|
|
113
|
+
--input-border-color--hover: var(--sb-color-red);
|
|
114
|
+
--input-border-color--active: var(--sb-color-red);
|
|
115
|
+
--input-border-color--focus: var(--sb-color-red);
|
|
116
|
+
|
|
117
|
+
.dnb-input__submit-button__button {
|
|
118
|
+
--button-secondary-background--hover: var(--sb-color-red);
|
|
119
|
+
|
|
120
|
+
&:hover:not(:active) {
|
|
121
|
+
--button-secondary-color: var(--sb-color-white);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputMaskedUtils.js","names":["format","getDecimalSeparator","getThousandsSeparator","warn","IS_ANDROID","IS_IOS","safeSetSelection","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","isRequestingLocaleSupport","props","Object","entries","some","k","v","includes","isRequestingNumberMask","correctNumberValue","localValue","locale","maskParams","value","String","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","length","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","_objectSpread","decimalSymbol","replace","localNumberValue","numberValue","endsWithDecimal","endsWith","endsWithZeroAndDecimal","startsWith","test","correctCaretPosition","element","correction","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","undefined","placeholderChar","prefixStart","prefixEnd","char","mask","chars","l","i","RegExp","n","_mask$test","call","e","window","requestAnimationFrame","handlePercentMask","_String","_String$match","percent","match","handleCurrencyMask","mask_options","currency_mask","showMask","fix","currency","handleNumberMask","number_mask","getInputModeFromMask","allowNegative","instanceOf","handleThousandsSeparator","handleDecimalSeparator","fromJSON","str","fallback","JSON","parse"],"sources":["../../../../src/components/input-masked/InputMaskedUtils.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport {\n format,\n getDecimalSeparator,\n getThousandsSeparator,\n} from '../number-format/NumberUtils'\nimport { warn } from '../../shared/component-helper'\nimport { IS_ANDROID, IS_IOS } from '../../shared/helpers'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nconst enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency']\nconst enableNumberMaskWhen = [\n 'as_number',\n 'as_percent',\n 'as_currency',\n 'number_mask',\n 'currency_mask',\n]\n\nexport const invisibleSpace = '\\u200B'\n\n/**\n * Will return true if a prop needs Locale support\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingLocaleSupport = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableLocaleSupportWhen.includes(k)\n )\n}\n\n/**\n * Will return true if a prop will enable the internal NumberMask\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingNumberMask = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableNumberMaskWhen.includes(k)\n )\n}\n\n/**\n * Probably the most complex part of this component\n * It will modify a given value based on certain criteria's\n *\n * @param {object} param0 object with properties\n * @property {string} localValue optional – if given, it will uses its ending to determine of what to return\n * @property {number|string} value component property value\n * @property {object} context Eufemia Context\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns string Value\n */\nexport const correctNumberValue = ({\n localValue = null,\n props,\n locale,\n maskParams,\n}) => {\n let value = String(props.value)\n\n if (isNaN(parseFloat(value))) {\n return value\n }\n\n const decimalPos = value.indexOf('.')\n\n if (\n maskParams.integerLimit &&\n typeof maskParams.integerLimit === 'number'\n ) {\n const limit = maskParams.integerLimit\n const integers = value.split('.')[0]\n const isNegative = parseFloat(integers) < 0\n if (integers.length - (isNegative ? 1 : 0) > limit) {\n const decimals = decimalPos > 0 ? value.slice(decimalPos) : ''\n value = integers.slice(0, limit + (isNegative ? 1 : 0)) + decimals\n }\n }\n\n const shouldHaveDecimals =\n maskParams.allowDecimal ||\n (maskParams.decimalLimit > 0 && maskParams.allowDecimal !== false)\n\n if (!shouldHaveDecimals) {\n if (decimalPos > -1) {\n value = value.slice(0, decimalPos)\n }\n }\n\n /**\n * This only runs IF \"number_format\" is set – we do not use it else\n */\n if (props.number_format) {\n const options = {\n locale,\n decimals: 0,\n ...props.number_format,\n }\n if (shouldHaveDecimals) {\n options.decimals = maskParams.decimalLimit\n }\n value = format(value, options)\n }\n\n const decimalSymbol = maskParams.decimalSymbol\n value = value.replace('.', decimalSymbol)\n\n if (localValue !== null) {\n const localNumberValue = localValue.replace(/[^\\d,.-]/g, '')\n const numberValue = value.replace(/[^\\d,.-]/g, '')\n\n const endsWithDecimal = localNumberValue.endsWith(decimalSymbol)\n const endsWithZeroAndDecimal = localNumberValue.endsWith(\n `${decimalSymbol}0`\n )\n\n if (endsWithDecimal) {\n value = `${value}${decimalSymbol}`\n } else if (\n endsWithZeroAndDecimal &&\n !numberValue.endsWith(`${decimalSymbol}0`)\n ) {\n /**\n * When the users has 20,02, then hits \"backspace\",\n * the returned {numberValue} in the onChange event would then be \"20\",\n * but we want it to be 20,0\n */\n value = `${value}${decimalSymbol}0`\n }\n\n /**\n * If the user removes a leading digit and we have left a leading zero.\n *\n * The users enters these steps:\n * Step 1. 1012\n * Step 2. 012 -> user removes 1, now use \"localValue\"\n * Step 3. 2012\n *\n * If a dev listens on_change and sends the number value back in,\n * for this, we also ensure that \"numberValue\" and \"localNumberValue\" is the same.\n */\n if (\n localNumberValue !== '0' &&\n localNumberValue.startsWith('0') &&\n parseFloat(numberValue.replace(decimalSymbol, '.')) ===\n parseFloat(localNumberValue.replace(decimalSymbol, '.'))\n ) {\n value = localValue\n }\n\n /**\n * While typing;\n * If the local value is - or -0 we use it.\n * Also, because of invisible whitespace we remove everyting else\n */\n if (/^(-|-0)$/.test(localValue.replace(/[^\\d-0]/g, ''))) {\n value = localValue\n } else if (localNumberValue === '' && numberValue === '0') {\n value = ''\n }\n }\n\n return value\n}\n\n/**\n * This is a helper for setting the cursor position,\n * when it is on a not allowed position\n *\n * @param {Element} element Input Element\n * @param {Object} maskParams Mask parameters, containing eventually suffix or prefix\n */\nexport const correctCaretPosition = (element, maskParams, props) => {\n const correction = () => {\n try {\n const suffix = maskParams?.suffix\n const prefix = maskParams?.prefix\n\n const start = element.selectionStart\n const end = element.selectionEnd\n\n if (start !== end) {\n return // stop here\n }\n\n if (suffix || prefix) {\n const suffixStart = element.value.indexOf(suffix)\n const suffixEnd = suffixStart + suffix?.length\n let pos = undefined\n\n if (start >= suffixStart && start <= suffixEnd) {\n pos = suffixStart\n\n // If there is a placeholder,\n // and the user clicks after the suffix\n // we want the position to be \"before\" the placeholderChar\n if (\n maskParams.placeholderChar !== invisibleSpace &&\n element.value.length - 1 === String(suffix + prefix).length\n ) {\n pos = pos - 1\n }\n } else {\n const prefixStart = element.value.indexOf(prefix)\n const prefixEnd = prefixStart + prefix?.length || 0\n\n if (start >= prefixStart && start <= prefixEnd) {\n pos = prefixEnd\n }\n }\n\n const char = element.value.slice(pos - 1, pos)\n if (char === invisibleSpace) {\n pos = suffixStart - 1\n }\n\n if (!isNaN(parseFloat(pos))) {\n safeSetSelection(element, pos)\n }\n } else if (props?.mask && element.value.length === end) {\n const chars = element.value.split('')\n\n for (let l = chars.length, i = l - 1; i >= 0; i--) {\n const char = chars[i]\n const mask = props.mask[i]\n if (\n char &&\n char !== invisibleSpace &&\n mask instanceof RegExp &&\n mask.test(char)\n ) {\n for (let n = i + 1; n < l; n++) {\n const mask = props.mask[n]\n if (mask?.test?.(mask) === false) {\n safeSetSelection(element, n)\n break\n }\n }\n\n break\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(correction)\n }\n}\n\n/**\n * Manipulate needed mask for handle: percent\n *\n * @param {object} param0 object with properties\n * @property {object} props Component property\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns object maskParams\n */\nexport const handlePercentMask = ({ props, locale, maskParams }) => {\n const value = format(props.value, { locale, percent: true })\n maskParams.suffix = String(value)?.match(/((\\s|)%)$/g, '$1')?.[0] || ' %'\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: currency\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} currency_mask Component property for change the currency parameters\n * @returns object maskParams\n */\nexport const handleCurrencyMask = ({ mask_options, currency_mask }) => {\n const maskParams = {\n showMask: true,\n placeholderChar: null,\n allowDecimal: true,\n decimalLimit: 2,\n decimalSymbol: ',',\n ...mask_options,\n ...currency_mask,\n }\n\n const fix =\n typeof currency_mask === 'string'\n ? currency_mask\n : typeof maskParams.currency === 'string'\n ? maskParams.currency\n : 'kr'\n\n maskParams.suffix = ` ${fix}`\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: number\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} number_mask Component property for change the number parameters\n * @returns object maskParams\n */\nexport const handleNumberMask = ({ mask_options, number_mask }) => {\n const maskParams = {\n decimalSymbol: ',',\n ...mask_options,\n ...number_mask,\n }\n\n if (typeof maskParams.allowDecimal === 'undefined') {\n maskParams.allowDecimal = maskParams.decimalLimit > 0\n }\n\n return maskParams\n}\n\n/**\n * Returns the type of what inputMode should be used\n *\n * @param {function} mask mask function\n * @returns undefined|decimal|numeric\n */\nexport function getInputModeFromMask(mask) {\n const maskParams = mask?.maskParams\n\n // because of the missing minus key, we still have to use text on Android and iOS\n if ((IS_ANDROID || IS_IOS) && maskParams?.allowNegative !== false) {\n return undefined\n }\n\n if (maskParams && mask?.instanceOf === 'createNumberMask') {\n return maskParams.allowDecimal && maskParams.decimalLimit !== 0\n ? 'decimal'\n : 'numeric'\n }\n return undefined\n}\n\n/**\n * Returns the thousands separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleThousandsSeparator(locale) {\n return getThousandsSeparator(locale).replace(' ', ' ') // replace non-breaking space with a regular space\n}\n\n/**\n * Returns the decimal separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleDecimalSeparator(locale) {\n let decimalSymbol = getDecimalSeparator(locale)\n\n return decimalSymbol\n}\n\n/**\n * Will take a JSON and return it parsed\n *\n * @param {string} str\n * @param {*} fallback optional fallback\n * @returns parsed json\n */\nexport function fromJSON(str, fallback = null) {\n if (typeof str === 'string' && str[0] === '{') {\n return JSON.parse(str)\n }\n\n return str || fallback\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InputMaskedUtils.js","names":["format","getDecimalSeparator","getThousandsSeparator","warn","IS_ANDROID","IS_IOS","safeSetSelection","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","isRequestingLocaleSupport","props","Object","entries","some","k","v","includes","isRequestingNumberMask","correctNumberValue","localValue","locale","maskParams","value","String","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","length","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","_objectSpread","decimalSymbol","replace","localNumberValue","numberValue","endsWithDecimal","endsWith","endsWithZeroAndDecimal","startsWith","test","correctCaretPosition","element","correction","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","undefined","placeholderChar","prefixStart","prefixEnd","char","mask","chars","l","i","RegExp","n","_mask$test","call","e","window","requestAnimationFrame","handlePercentMask","_String","_String$match","percent","match","handleCurrencyMask","mask_options","currency_mask","showMask","fix","currency","handleNumberMask","number_mask","getInputModeFromMask","allowNegative","instanceOf","handleThousandsSeparator","handleDecimalSeparator","fromJSON","str","fallback","JSON","parse"],"sources":["../../../../src/components/input-masked/InputMaskedUtils.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport {\n format,\n getDecimalSeparator,\n getThousandsSeparator,\n} from '../number-format/NumberUtils'\nimport { warn } from '../../shared/component-helper'\nimport { IS_ANDROID, IS_IOS } from '../../shared/helpers'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nconst enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency']\nconst enableNumberMaskWhen = [\n 'as_number',\n 'as_percent',\n 'as_currency',\n 'number_mask',\n 'currency_mask',\n]\n\nexport const invisibleSpace = '\\u200B'\n\n/**\n * Will return true if a prop needs Locale support\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingLocaleSupport = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableLocaleSupportWhen.includes(k)\n )\n}\n\n/**\n * Will return true if a prop will enable the internal NumberMask\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingNumberMask = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableNumberMaskWhen.includes(k)\n )\n}\n\n/**\n * Probably the most complex part of this component\n * It will modify a given value based on certain criteria's\n *\n * @param {object} param0 object with properties\n * @property {string} localValue optional – if given, it will uses its ending to determine of what to return\n * @property {number|string} value component property value\n * @property {object} context Eufemia Context\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns string Value\n */\nexport const correctNumberValue = ({\n localValue = null,\n props,\n locale,\n maskParams,\n}) => {\n let value = String(props.value)\n\n if (isNaN(parseFloat(value))) {\n return value\n }\n\n const decimalPos = value.indexOf('.')\n\n if (\n maskParams.integerLimit &&\n typeof maskParams.integerLimit === 'number'\n ) {\n const limit = maskParams.integerLimit\n const integers = value.split('.')[0]\n const isNegative = parseFloat(integers) < 0\n if (integers.length - (isNegative ? 1 : 0) > limit) {\n const decimals = decimalPos > 0 ? value.slice(decimalPos) : ''\n value = integers.slice(0, limit + (isNegative ? 1 : 0)) + decimals\n }\n }\n\n const shouldHaveDecimals =\n maskParams.allowDecimal ||\n (maskParams.decimalLimit > 0 && maskParams.allowDecimal !== false)\n\n if (!shouldHaveDecimals) {\n if (decimalPos > -1) {\n value = value.slice(0, decimalPos)\n }\n }\n\n /**\n * This only runs IF \"number_format\" is set – we do not use it else\n */\n if (props.number_format) {\n const options = {\n locale,\n decimals: 0,\n ...props.number_format,\n }\n if (shouldHaveDecimals) {\n options.decimals = maskParams.decimalLimit\n }\n value = format(value, options)\n }\n\n const decimalSymbol = maskParams.decimalSymbol\n value = value.replace('.', decimalSymbol)\n\n if (localValue !== null) {\n const localNumberValue = localValue.replace(/[^\\d,.-]/g, '')\n const numberValue = value.replace(/[^\\d,.-]/g, '')\n\n const endsWithDecimal = localNumberValue.endsWith(decimalSymbol)\n const endsWithZeroAndDecimal = localNumberValue.endsWith(\n `${decimalSymbol}0`\n )\n\n if (endsWithDecimal) {\n value = `${value}${decimalSymbol}`\n } else if (\n endsWithZeroAndDecimal &&\n !numberValue.endsWith(`${decimalSymbol}0`)\n ) {\n /**\n * When the users has 20,02, then hits \"backspace\",\n * the returned {numberValue} in the onChange event would then be \"20\",\n * but we want it to be 20,0\n */\n value = `${value}${decimalSymbol}0`\n }\n\n /**\n * If the user removes a leading digit and we have left a leading zero.\n *\n * The users enters these steps:\n * Step 1. 1012\n * Step 2. 012 -> user removes 1, now use \"localValue\"\n * Step 3. 2012\n *\n * If a dev listens on_change and sends the number value back in,\n * for this, we also ensure that \"numberValue\" and \"localNumberValue\" is the same.\n */\n if (\n localNumberValue !== '0' &&\n localNumberValue.startsWith('0') &&\n parseFloat(numberValue.replace(decimalSymbol, '.')) ===\n parseFloat(localNumberValue.replace(decimalSymbol, '.'))\n ) {\n value = localValue\n }\n\n /**\n * While typing;\n * If the local value is - or -0 we use it.\n * Also, because of invisible whitespace we remove everything else\n */\n if (/^(-|-0)$/.test(localValue.replace(/[^\\d-0]/g, ''))) {\n value = localValue\n } else if (localNumberValue === '' && numberValue === '0') {\n value = ''\n }\n }\n\n return value\n}\n\n/**\n * This is a helper for setting the cursor position,\n * when it is on a not allowed position\n *\n * @param {Element} element Input Element\n * @param {Object} maskParams Mask parameters, containing eventually suffix or prefix\n */\nexport const correctCaretPosition = (element, maskParams, props) => {\n const correction = () => {\n try {\n const suffix = maskParams?.suffix\n const prefix = maskParams?.prefix\n\n const start = element.selectionStart\n const end = element.selectionEnd\n\n if (start !== end) {\n return // stop here\n }\n\n if (suffix || prefix) {\n const suffixStart = element.value.indexOf(suffix)\n const suffixEnd = suffixStart + suffix?.length\n let pos = undefined\n\n if (start >= suffixStart && start <= suffixEnd) {\n pos = suffixStart\n\n // If there is a placeholder,\n // and the user clicks after the suffix\n // we want the position to be \"before\" the placeholderChar\n if (\n maskParams.placeholderChar !== invisibleSpace &&\n element.value.length - 1 === String(suffix + prefix).length\n ) {\n pos = pos - 1\n }\n } else {\n const prefixStart = element.value.indexOf(prefix)\n const prefixEnd = prefixStart + prefix?.length || 0\n\n if (start >= prefixStart && start <= prefixEnd) {\n pos = prefixEnd\n }\n }\n\n const char = element.value.slice(pos - 1, pos)\n if (char === invisibleSpace) {\n pos = suffixStart - 1\n }\n\n if (!isNaN(parseFloat(pos))) {\n safeSetSelection(element, pos)\n }\n } else if (props?.mask && element.value.length === end) {\n const chars = element.value.split('')\n\n for (let l = chars.length, i = l - 1; i >= 0; i--) {\n const char = chars[i]\n const mask = props.mask[i]\n if (\n char &&\n char !== invisibleSpace &&\n mask instanceof RegExp &&\n mask.test(char)\n ) {\n for (let n = i + 1; n < l; n++) {\n const mask = props.mask[n]\n if (mask?.test?.(mask) === false) {\n safeSetSelection(element, n)\n break\n }\n }\n\n break\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(correction)\n }\n}\n\n/**\n * Manipulate needed mask for handle: percent\n *\n * @param {object} param0 object with properties\n * @property {object} props Component property\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns object maskParams\n */\nexport const handlePercentMask = ({ props, locale, maskParams }) => {\n const value = format(props.value, { locale, percent: true })\n maskParams.suffix = String(value)?.match(/((\\s|)%)$/g, '$1')?.[0] || ' %'\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: currency\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} currency_mask Component property for change the currency parameters\n * @returns object maskParams\n */\nexport const handleCurrencyMask = ({ mask_options, currency_mask }) => {\n const maskParams = {\n showMask: true,\n placeholderChar: null,\n allowDecimal: true,\n decimalLimit: 2,\n decimalSymbol: ',',\n ...mask_options,\n ...currency_mask,\n }\n\n const fix =\n typeof currency_mask === 'string'\n ? currency_mask\n : typeof maskParams.currency === 'string'\n ? maskParams.currency\n : 'kr'\n\n maskParams.suffix = ` ${fix}`\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: number\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} number_mask Component property for change the number parameters\n * @returns object maskParams\n */\nexport const handleNumberMask = ({ mask_options, number_mask }) => {\n const maskParams = {\n decimalSymbol: ',',\n ...mask_options,\n ...number_mask,\n }\n\n if (typeof maskParams.allowDecimal === 'undefined') {\n maskParams.allowDecimal = maskParams.decimalLimit > 0\n }\n\n return maskParams\n}\n\n/**\n * Returns the type of what inputMode should be used\n *\n * @param {function} mask mask function\n * @returns undefined|decimal|numeric\n */\nexport function getInputModeFromMask(mask) {\n const maskParams = mask?.maskParams\n\n // because of the missing minus key, we still have to use text on Android and iOS\n if ((IS_ANDROID || IS_IOS) && maskParams?.allowNegative !== false) {\n return undefined\n }\n\n if (maskParams && mask?.instanceOf === 'createNumberMask') {\n return maskParams.allowDecimal && maskParams.decimalLimit !== 0\n ? 'decimal'\n : 'numeric'\n }\n return undefined\n}\n\n/**\n * Returns the thousands separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleThousandsSeparator(locale) {\n return getThousandsSeparator(locale).replace(' ', ' ') // replace non-breaking space with a regular space\n}\n\n/**\n * Returns the decimal separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleDecimalSeparator(locale) {\n let decimalSymbol = getDecimalSeparator(locale)\n\n return decimalSymbol\n}\n\n/**\n * Will take a JSON and return it parsed\n *\n * @param {string} str\n * @param {*} fallback optional fallback\n * @returns parsed json\n */\nexport function fromJSON(str, fallback = null) {\n if (typeof str === 'string' && str[0] === '{') {\n return JSON.parse(str)\n }\n\n return str || fallback\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextMask.js","names":["React","PropTypes","createTextMaskInputElement","isNil","TextMask","PureComponent","constructor","props","_defineProperty","event","textMaskInputElement","update","onChange","inputRef","createRef","componentDidMount","initTextMask","value","_objectSpread","inputElement","current","componentDidUpdate","prevProps","pipe","mask","guide","placeholderChar","showMask","settings","isPipeChanged","toString","isMaskChanged","isSettingChanged","Object","keys","some","prop","isValueChanged","render","_this$props","keepCharPositions","_objectWithoutProperties","_excluded","params","defaultValue","cloneElement","createElement","_extends","ref","process","env","NODE_ENV","propTypes","oneOfType","array","func","bool","shape","isRequired","object","node","string","number"],"sources":["../../../../src/components/input-masked/TextMask.js"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport createTextMaskInputElement from './text-mask/createTextMaskInputElement'\nimport { isNil } from './text-mask/utilities'\n\nexport default class TextMask extends React.PureComponent {\n static propTypes = {\n mask: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.func,\n PropTypes.bool,\n PropTypes.shape({\n mask: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n pipe: PropTypes.func,\n }),\n ]).isRequired,\n inputRef: PropTypes.object,\n inputElement: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n onChange: PropTypes.func,\n guide: PropTypes.bool,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n pipe: PropTypes.func,\n placeholderChar: PropTypes.string,\n keepCharPositions: PropTypes.bool,\n showMask: PropTypes.bool,\n }\n\n static defaultProps = {\n inputElement: null,\n inputRef: null,\n onChange: null,\n guide: null,\n value: null,\n pipe: null,\n placeholderChar: null,\n keepCharPositions: null,\n showMask: null,\n }\n\n constructor(props) {\n super(props)\n\n this.inputRef = props.inputRef || React.createRef()\n }\n\n componentDidMount() {\n this.initTextMask()\n }\n\n initTextMask() {\n const {\n props,\n props: { value },\n } = this\n\n this.textMaskInputElement = createTextMaskInputElement({\n ...props,\n inputElement: this.inputRef.current,\n })\n this.textMaskInputElement.update(value)\n }\n\n onChange = (event) => {\n this.textMaskInputElement.update()\n\n if (typeof this.props.onChange === 'function') {\n return this.props.onChange(event)\n }\n }\n\n componentDidUpdate(prevProps) {\n // Getting props affecting value\n const { value, pipe, mask, guide, placeholderChar, showMask } =\n this.props\n\n // Сalculate that settings was changed:\n // - `pipe` converting to string, to compare function content\n // - `mask` converting to string, to compare values or function content\n // - `keepCharPositions`
|
|
1
|
+
{"version":3,"file":"TextMask.js","names":["React","PropTypes","createTextMaskInputElement","isNil","TextMask","PureComponent","constructor","props","_defineProperty","event","textMaskInputElement","update","onChange","inputRef","createRef","componentDidMount","initTextMask","value","_objectSpread","inputElement","current","componentDidUpdate","prevProps","pipe","mask","guide","placeholderChar","showMask","settings","isPipeChanged","toString","isMaskChanged","isSettingChanged","Object","keys","some","prop","isValueChanged","render","_this$props","keepCharPositions","_objectWithoutProperties","_excluded","params","defaultValue","cloneElement","createElement","_extends","ref","process","env","NODE_ENV","propTypes","oneOfType","array","func","bool","shape","isRequired","object","node","string","number"],"sources":["../../../../src/components/input-masked/TextMask.js"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport createTextMaskInputElement from './text-mask/createTextMaskInputElement'\nimport { isNil } from './text-mask/utilities'\n\nexport default class TextMask extends React.PureComponent {\n static propTypes = {\n mask: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.func,\n PropTypes.bool,\n PropTypes.shape({\n mask: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n pipe: PropTypes.func,\n }),\n ]).isRequired,\n inputRef: PropTypes.object,\n inputElement: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n onChange: PropTypes.func,\n guide: PropTypes.bool,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n pipe: PropTypes.func,\n placeholderChar: PropTypes.string,\n keepCharPositions: PropTypes.bool,\n showMask: PropTypes.bool,\n }\n\n static defaultProps = {\n inputElement: null,\n inputRef: null,\n onChange: null,\n guide: null,\n value: null,\n pipe: null,\n placeholderChar: null,\n keepCharPositions: null,\n showMask: null,\n }\n\n constructor(props) {\n super(props)\n\n this.inputRef = props.inputRef || React.createRef()\n }\n\n componentDidMount() {\n this.initTextMask()\n }\n\n initTextMask() {\n const {\n props,\n props: { value },\n } = this\n\n this.textMaskInputElement = createTextMaskInputElement({\n ...props,\n inputElement: this.inputRef.current,\n })\n this.textMaskInputElement.update(value)\n }\n\n onChange = (event) => {\n this.textMaskInputElement.update()\n\n if (typeof this.props.onChange === 'function') {\n return this.props.onChange(event)\n }\n }\n\n componentDidUpdate(prevProps) {\n // Getting props affecting value\n const { value, pipe, mask, guide, placeholderChar, showMask } =\n this.props\n\n // Сalculate that settings was changed:\n // - `pipe` converting to string, to compare function content\n // - `mask` converting to string, to compare values or function content\n // - `keepCharPositions` excludes, because it affect only cursor position\n const settings = { guide, placeholderChar, showMask }\n const isPipeChanged =\n typeof pipe === 'function' && typeof prevProps.pipe === 'function'\n ? pipe.toString() !== prevProps.pipe.toString()\n : (isNil(pipe) && !isNil(prevProps.pipe)) ||\n (!isNil(pipe) && isNil(prevProps.pipe))\n const isMaskChanged = mask.toString() !== prevProps.mask.toString()\n const isSettingChanged =\n Object.keys(settings).some(\n (prop) => settings[prop] !== prevProps[prop]\n ) ||\n isMaskChanged ||\n isPipeChanged\n\n // Сalculate that value was changed\n const isValueChanged =\n value !== this.inputRef.current.value || prevProps.value !== value\n\n // Check value and settings to prevent duplicating update() call\n if (isValueChanged || isSettingChanged) {\n this.initTextMask()\n }\n }\n\n render() {\n const {\n inputElement,\n inputRef, // eslint-disable-line\n mask, // eslint-disable-line\n guide, // eslint-disable-line\n pipe, // eslint-disable-line\n placeholderChar, // eslint-disable-line\n keepCharPositions, // eslint-disable-line\n value, // eslint-disable-line\n onChange, // eslint-disable-line\n showMask, // eslint-disable-line\n\n ...props\n } = this.props\n\n const params = {\n onChange: this.onChange,\n defaultValue: this.props.value,\n ...props,\n }\n\n return inputElement ? (\n React.cloneElement(inputElement, params)\n ) : (\n <input ref={this.inputRef} {...params} />\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -248,7 +248,6 @@ class Modal extends React.PureComponent {
|
|
|
248
248
|
}
|
|
249
249
|
try {
|
|
250
250
|
document.documentElement.removeAttribute('data-dnb-modal-active');
|
|
251
|
-
document.body.setAttribute('data-dnb-modal-active', 'false');
|
|
252
251
|
} catch (e) {
|
|
253
252
|
warn('Modal: Error on remove "data-dnb-modal-active"', e);
|
|
254
253
|
}
|
|
@@ -260,7 +259,6 @@ class Modal extends React.PureComponent {
|
|
|
260
259
|
if (typeof document !== 'undefined') {
|
|
261
260
|
try {
|
|
262
261
|
document.documentElement.setAttribute('data-dnb-modal-active', modalId);
|
|
263
|
-
document.body.setAttribute('data-dnb-modal-active', 'true');
|
|
264
262
|
} catch (e) {
|
|
265
263
|
warn('Modal: Error on set "data-dnb-modal-active"', e);
|
|
266
264
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["React","classnames","SuffixContext","Context","warn","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","processChildren","dispatchCustomElementEvent","createSpacingClasses","HelpButtonInstance","getListOfModalRoots","getModalRoot","ModalInner","ModalHeader","ModalHeaderBar","CloseButton","ModalRoot","classWithCamelCaseProps","ANIMATION_DURATION","Modal","PureComponent","getContent","props","modal_content","getDerivedStateFromProps","state","open_state","_open_state","hide","no_animation","modalActive","constructor","_defineProperty","event","showModal","preventDefault","toggleNow","animation_duration","timeoutDuration","parseFloat","isInTransition","doItNow","setState","handleSideEffects","_closeTimeout","setTimeout","waitBeforeOpen","open_delay","delay","_openTimeout","clearTimeout","open_modal","fn","_onUnmount","push","close_modal","toggleOpenClose","setActiveState","_id","_this$_triggerRef","focus","elem","setAttribute","preventScroll","Promise","resolve","removeAttribute","String","_triggerRef","current","activeElement","HTMLElement","then","e","removeActiveState","ifIsLatest","triggeredBy","prevent_close","id","close","list","length","last","createRef","componentDidMount","openBasedOnStateUpdate","componentWillUnmount","forEach","componentDidUpdate","prevProps","document","documentElement","body","modalId","render","defaultProps","context","getTranslation","root_id","content_id","disabled","labelled_by","focus_selector","header_content","bar_content","bypass_invalidation_selectors","omit_trigger_button","trigger","trigger_attributes","rest","_objectWithoutProperties","_excluded","children","Object","freeze","_objectSpread","suffixProps","triggerAttributes","hidden","variant","icon_position","fallbackTitle","title","translation","HelpButton","TriggerButton","text","createElement","Fragment","_extends","onClick","innerRef","className","class","Consumer","spacing","dialog_title","close_title","hide_close_button","close_button_attributes","prevent_core_style","no_animation_on_mobile","fullscreen","min_width","max_width","align_content","container_placement","direct_dom_return","on_open","on_close","on_close_prevent","overlay_class","content_class","OriginalComponent"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SuffixContext } from '../../shared/helpers/Suffix'\nimport Context, { ContextProps } from '../../shared/Context'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n processChildren,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport HelpButtonInstance from '../help-button/HelpButtonInstance'\nimport { getListOfModalRoots, getModalRoot } from './helpers'\nimport ModalInner from './parts/ModalInner'\nimport { ModalProps } from './types'\n\nimport ModalHeader from './parts/ModalHeader'\nimport ModalHeaderBar from './parts/ModalHeaderBar'\nimport { ScrollViewAllProps } from '../../fragments/scroll-view/ScrollView'\nimport CloseButton from './parts/CloseButton'\nimport ModalRoot from './ModalRoot'\nimport type { SpacingProps } from '../../shared/types'\nimport {\n classWithCamelCaseProps,\n ToCamelCasePartial,\n} from '../../shared/helpers/withCamelCaseProps'\nimport type { ButtonProps } from '../button/Button'\n\nexport const ANIMATION_DURATION = 300\n\ninterface ModalState {\n hide: boolean\n modalActive: boolean\n}\n\nexport type ModalPropTypes = ModalProps &\n SpacingProps &\n Omit<ScrollViewAllProps, 'children'>\n\nclass Modal extends React.PureComponent<\n ModalPropTypes & ToCamelCasePartial<ModalPropTypes>,\n ModalState\n> {\n static contextType = Context\n\n context!: ContextProps\n\n static Bar = ModalHeaderBar\n static Header = ModalHeader\n static Content = ModalInner\n\n static getContent(props) {\n if (typeof props.modal_content === 'string') {\n return props.modal_content\n } else if (typeof props.modal_content === 'function') {\n return props.modal_content(props)\n }\n return processChildren(props)\n }\n\n _id: string\n _triggerRef: React.RefObject<any>\n _onUnmount: Array<() => void>\n _openTimeout: NodeJS.Timeout\n _closeTimeout: NodeJS.Timeout\n _sideEffectsTimeout: NodeJS.Timeout\n _tryToOpenTimeout: NodeJS.Timeout\n activeElement: Element\n isInTransition: boolean\n\n state = {\n hide: false,\n modalActive: false,\n }\n\n static defaultProps = {\n id: null,\n focus_selector: null,\n labelled_by: null,\n title: null,\n disabled: null,\n spacing: true,\n open_delay: null,\n content_id: null,\n dialog_title: 'Vindu',\n close_title: 'Lukk', // Close Modal Window\n hide_close_button: false,\n close_button_attributes: null,\n prevent_close: false,\n prevent_core_style: false,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n no_animation_on_mobile: false,\n fullscreen: 'auto',\n min_width: null,\n max_width: null,\n align_content: 'left',\n container_placement: null,\n open_state: null,\n direct_dom_return: false,\n class: null,\n root_id: 'root',\n omit_trigger_button: false,\n\n className: null,\n children: null,\n\n on_open: null,\n on_close: null,\n on_close_prevent: null,\n open_modal: null,\n close_modal: null,\n\n trigger: null,\n trigger_attributes: null,\n\n overlay_class: null,\n content_class: null,\n\n modal_content: null,\n header_content: null,\n bar_content: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.open_state !== state._open_state) {\n switch (props.open_state) {\n case 'opened':\n case true:\n state.hide = false\n if (isTrue(props.no_animation)) {\n state.modalActive = true\n }\n break\n case 'closed':\n case false:\n state.hide = true\n if (isTrue(props.no_animation)) {\n state.modalActive = false\n }\n break\n }\n }\n state._open_state = props.open_state\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._id = props.id || makeUniqueId('modal-')\n\n this._triggerRef = React.createRef()\n\n this._onUnmount = []\n }\n\n componentDidMount() {\n this.openBasedOnStateUpdate()\n }\n\n componentWillUnmount() {\n clearTimeout(this._openTimeout)\n clearTimeout(this._closeTimeout)\n\n this.removeActiveState()\n\n this._onUnmount.forEach((fn) => {\n if (typeof fn === 'function') {\n fn()\n }\n })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props) {\n this.openBasedOnStateUpdate()\n }\n }\n\n openBasedOnStateUpdate() {\n const { hide } = this.state\n const { open_state } = this.props\n\n if (!this.activeElement && typeof document !== 'undefined') {\n this.activeElement = document.activeElement\n }\n\n if (!hide && (open_state === 'opened' || open_state === true)) {\n this.toggleOpenClose(null, true)\n } else if (hide && (open_state === 'closed' || open_state === false)) {\n this.toggleOpenClose(null, false)\n }\n }\n\n toggleOpenClose = (event = null, showModal = null) => {\n if (event && event.preventDefault) {\n event.preventDefault()\n }\n\n const toggleNow = () => {\n const {\n animation_duration = ANIMATION_DURATION,\n no_animation = false,\n } = this.props\n const timeoutDuration =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n const modalActive =\n typeof showModal === 'boolean'\n ? showModal\n : !this.state.modalActive\n\n this.isInTransition = true\n\n const doItNow = () => {\n this.setState(\n {\n hide: false,\n modalActive,\n },\n () => {\n this.isInTransition = false\n this.handleSideEffects()\n }\n )\n }\n\n if (modalActive === false && !isTrue(no_animation)) {\n this.setState({\n hide: true,\n })\n\n this._closeTimeout = setTimeout(doItNow, timeoutDuration) // delay because of the animation\n } else {\n doItNow()\n }\n }\n\n const waitBeforeOpen = () => {\n const { open_delay, no_animation } = this.props\n const delay =\n typeof open_delay === 'string'\n ? parseFloat(open_delay)\n : open_delay\n if (delay > 0 && !isTrue(no_animation)) {\n this._openTimeout = setTimeout(toggleNow, delay) // custom delay\n } else {\n toggleNow()\n }\n }\n\n clearTimeout(this._closeTimeout)\n clearTimeout(this._openTimeout)\n\n const { open_modal } = this.props\n if (typeof open_modal === 'function') {\n const fn = open_modal(waitBeforeOpen, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n } else {\n waitBeforeOpen()\n }\n }\n\n handleSideEffects = () => {\n const { modalActive } = this.state\n const { close_modal, open_state, animation_duration } = this.props\n\n if (modalActive) {\n if (typeof close_modal === 'function') {\n const fn = close_modal(() => {\n this.toggleOpenClose(null, false)\n }, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n }\n\n this.setActiveState(this._id)\n } else if (modalActive === false) {\n const focus = (elem: HTMLElement) => {\n // So we can omit showing a Tooltip on the trigger button\n elem.setAttribute('data-autofocus', 'true')\n\n elem.focus({ preventScroll: true })\n\n return new Promise<void>((resolve) => {\n setTimeout(() => {\n elem?.removeAttribute('data-autofocus')\n resolve()\n }, parseFloat(String(animation_duration)) / 3)\n })\n }\n\n if (this._triggerRef?.current) {\n focus(this._triggerRef.current)\n }\n\n // because the open_state was set to opened, we force\n if (\n (open_state === 'opened' || open_state === true) &&\n this.activeElement instanceof HTMLElement\n ) {\n try {\n focus(this.activeElement).then(() => {\n this.activeElement = null\n })\n } catch (e) {\n //\n }\n }\n\n this.removeActiveState()\n }\n }\n\n open = (e: Event) => {\n this.toggleOpenClose(e, true)\n }\n\n close = (\n event: Event,\n { ifIsLatest, triggeredBy = null } = { ifIsLatest: true }\n ) => {\n const { prevent_close = false } = this.props\n\n if (isTrue(prevent_close)) {\n const id = this._id\n dispatchCustomElementEvent(this, 'on_close_prevent', {\n id,\n event,\n triggeredBy,\n close: (e) => {\n this.toggleOpenClose(e, false)\n },\n })\n } else {\n if (ifIsLatest) {\n const list = getListOfModalRoots()\n if (list.length > 1) {\n const last = getModalRoot(-1)\n if (last !== this) {\n return // stop here\n }\n }\n }\n\n this.toggleOpenClose(event, false)\n }\n }\n\n removeActiveState() {\n const last = getModalRoot(-1)\n\n // If this instance is not the last one,\n // make the current one to as the active one\n if (last?._id && last._id !== this._id) {\n return this.setActiveState(last._id)\n }\n\n try {\n document.documentElement.removeAttribute('data-dnb-modal-active')\n\n // Deprecated\n document.body.setAttribute('data-dnb-modal-active', 'false')\n } catch (e) {\n warn('Modal: Error on remove \"data-dnb-modal-active\"', e)\n }\n }\n\n /**\n * Prevent scrolling on the background\n * But checks if this instance was the last one or not\n *\n * @param {string} modalId Will remove the attribute if false is given\n */\n setActiveState(modalId: string) {\n if (!modalId) {\n warn('Modal: A valid modalId is required')\n }\n // prevent scrolling on the background\n if (typeof document !== 'undefined') {\n try {\n document.documentElement.setAttribute(\n 'data-dnb-modal-active',\n modalId\n )\n\n // Deprecated\n document.body.setAttribute('data-dnb-modal-active', 'true')\n } catch (e) {\n warn('Modal: Error on set \"data-dnb-modal-active\"', e)\n }\n }\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Modal.defaultProps,\n this.context.getTranslation(this.props).Modal,\n this.context.Modal\n )\n\n const {\n root_id = 'root',\n content_id = null,\n disabled = null,\n labelled_by = null,\n focus_selector = null,\n header_content = null,\n bar_content = null,\n bypass_invalidation_selectors = null,\n\n id, // eslint-disable-line\n open_state, // eslint-disable-line\n open_delay, // eslint-disable-line\n\n omit_trigger_button = false,\n trigger = null,\n trigger_attributes = null,\n ...rest\n } = props\n\n const { hide, modalActive } = this.state\n const modal_content = Modal.getContent(\n typeof this.props.children === 'function'\n ? Object.freeze({ ...this.props, close: this.close })\n : this.props\n )\n\n const render = (suffixProps) => {\n const triggerAttributes = {\n hidden: false,\n variant: 'secondary',\n icon_position: 'left',\n ...trigger_attributes,\n } as ButtonProps\n\n if (isTrue(disabled)) {\n triggerAttributes.disabled = true\n }\n\n if (triggerAttributes.id) {\n this._id = triggerAttributes.id\n }\n\n let fallbackTitle: string\n if (triggerAttributes.title) {\n fallbackTitle = triggerAttributes.title\n }\n // in case the modal is used in suffix and no title is given\n // suffixProps.label is also available, so we could use that too\n else if (suffixProps) {\n fallbackTitle = this.context.translation.HelpButton.title\n }\n\n const TriggerButton = trigger\n ? (trigger as React.FC)\n : HelpButtonInstance\n\n const title = (\n !triggerAttributes.text ? rest.title || fallbackTitle : null\n ) as string\n\n return (\n <>\n {TriggerButton && !isTrue(omit_trigger_button) && (\n <TriggerButton\n {...triggerAttributes}\n id={this._id}\n title={title}\n onClick={this.toggleOpenClose}\n innerRef={this._triggerRef}\n className={classnames(\n 'dnb-modal__trigger',\n createSpacingClasses(props),\n triggerAttributes.class,\n triggerAttributes.className\n )}\n />\n )}\n\n {modalActive && modal_content && (\n <ModalRoot\n {...rest}\n id={this._id}\n root_id={root_id}\n content_id={content_id || `dnb-modal-${this._id}`}\n labelled_by={labelled_by}\n focus_selector={focus_selector}\n modal_content={modal_content}\n header_content={header_content}\n bar_content={bar_content}\n bypass_invalidation_selectors={bypass_invalidation_selectors}\n close={this.close}\n hide={hide}\n title={rest.title || fallbackTitle}\n />\n )}\n </>\n )\n }\n\n return <SuffixContext.Consumer>{render}</SuffixContext.Consumer>\n }\n}\n\nexport { CloseButton, Modal as OriginalComponent }\n\nexport default classWithCamelCaseProps(Modal)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["React","classnames","SuffixContext","Context","warn","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","processChildren","dispatchCustomElementEvent","createSpacingClasses","HelpButtonInstance","getListOfModalRoots","getModalRoot","ModalInner","ModalHeader","ModalHeaderBar","CloseButton","ModalRoot","classWithCamelCaseProps","ANIMATION_DURATION","Modal","PureComponent","getContent","props","modal_content","getDerivedStateFromProps","state","open_state","_open_state","hide","no_animation","modalActive","constructor","_defineProperty","event","showModal","preventDefault","toggleNow","animation_duration","timeoutDuration","parseFloat","isInTransition","doItNow","setState","handleSideEffects","_closeTimeout","setTimeout","waitBeforeOpen","open_delay","delay","_openTimeout","clearTimeout","open_modal","fn","_onUnmount","push","close_modal","toggleOpenClose","setActiveState","_id","_this$_triggerRef","focus","elem","setAttribute","preventScroll","Promise","resolve","removeAttribute","String","_triggerRef","current","activeElement","HTMLElement","then","e","removeActiveState","ifIsLatest","triggeredBy","prevent_close","id","close","list","length","last","createRef","componentDidMount","openBasedOnStateUpdate","componentWillUnmount","forEach","componentDidUpdate","prevProps","document","documentElement","modalId","render","defaultProps","context","getTranslation","root_id","content_id","disabled","labelled_by","focus_selector","header_content","bar_content","bypass_invalidation_selectors","omit_trigger_button","trigger","trigger_attributes","rest","_objectWithoutProperties","_excluded","children","Object","freeze","_objectSpread","suffixProps","triggerAttributes","hidden","variant","icon_position","fallbackTitle","title","translation","HelpButton","TriggerButton","text","createElement","Fragment","_extends","onClick","innerRef","className","class","Consumer","spacing","dialog_title","close_title","hide_close_button","close_button_attributes","prevent_core_style","no_animation_on_mobile","fullscreen","min_width","max_width","align_content","container_placement","direct_dom_return","on_open","on_close","on_close_prevent","overlay_class","content_class","OriginalComponent"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SuffixContext } from '../../shared/helpers/Suffix'\nimport Context, { ContextProps } from '../../shared/Context'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n processChildren,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport HelpButtonInstance from '../help-button/HelpButtonInstance'\nimport { getListOfModalRoots, getModalRoot } from './helpers'\nimport ModalInner from './parts/ModalInner'\nimport { ModalProps } from './types'\n\nimport ModalHeader from './parts/ModalHeader'\nimport ModalHeaderBar from './parts/ModalHeaderBar'\nimport { ScrollViewAllProps } from '../../fragments/scroll-view/ScrollView'\nimport CloseButton from './parts/CloseButton'\nimport ModalRoot from './ModalRoot'\nimport type { SpacingProps } from '../../shared/types'\nimport {\n classWithCamelCaseProps,\n ToCamelCasePartial,\n} from '../../shared/helpers/withCamelCaseProps'\nimport type { ButtonProps } from '../button/Button'\n\nexport const ANIMATION_DURATION = 300\n\ninterface ModalState {\n hide: boolean\n modalActive: boolean\n}\n\nexport type ModalPropTypes = ModalProps &\n SpacingProps &\n Omit<ScrollViewAllProps, 'children'>\n\nclass Modal extends React.PureComponent<\n ModalPropTypes & ToCamelCasePartial<ModalPropTypes>,\n ModalState\n> {\n static contextType = Context\n\n context!: ContextProps\n\n static Bar = ModalHeaderBar\n static Header = ModalHeader\n static Content = ModalInner\n\n static getContent(props) {\n if (typeof props.modal_content === 'string') {\n return props.modal_content\n } else if (typeof props.modal_content === 'function') {\n return props.modal_content(props)\n }\n return processChildren(props)\n }\n\n _id: string\n _triggerRef: React.RefObject<any>\n _onUnmount: Array<() => void>\n _openTimeout: NodeJS.Timeout\n _closeTimeout: NodeJS.Timeout\n _sideEffectsTimeout: NodeJS.Timeout\n _tryToOpenTimeout: NodeJS.Timeout\n activeElement: Element\n isInTransition: boolean\n\n state = {\n hide: false,\n modalActive: false,\n }\n\n static defaultProps = {\n id: null,\n focus_selector: null,\n labelled_by: null,\n title: null,\n disabled: null,\n spacing: true,\n open_delay: null,\n content_id: null,\n dialog_title: 'Vindu',\n close_title: 'Lukk', // Close Modal Window\n hide_close_button: false,\n close_button_attributes: null,\n prevent_close: false,\n prevent_core_style: false,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n no_animation_on_mobile: false,\n fullscreen: 'auto',\n min_width: null,\n max_width: null,\n align_content: 'left',\n container_placement: null,\n open_state: null,\n direct_dom_return: false,\n class: null,\n root_id: 'root',\n omit_trigger_button: false,\n\n className: null,\n children: null,\n\n on_open: null,\n on_close: null,\n on_close_prevent: null,\n open_modal: null,\n close_modal: null,\n\n trigger: null,\n trigger_attributes: null,\n\n overlay_class: null,\n content_class: null,\n\n modal_content: null,\n header_content: null,\n bar_content: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.open_state !== state._open_state) {\n switch (props.open_state) {\n case 'opened':\n case true:\n state.hide = false\n if (isTrue(props.no_animation)) {\n state.modalActive = true\n }\n break\n case 'closed':\n case false:\n state.hide = true\n if (isTrue(props.no_animation)) {\n state.modalActive = false\n }\n break\n }\n }\n state._open_state = props.open_state\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._id = props.id || makeUniqueId('modal-')\n\n this._triggerRef = React.createRef()\n\n this._onUnmount = []\n }\n\n componentDidMount() {\n this.openBasedOnStateUpdate()\n }\n\n componentWillUnmount() {\n clearTimeout(this._openTimeout)\n clearTimeout(this._closeTimeout)\n\n this.removeActiveState()\n\n this._onUnmount.forEach((fn) => {\n if (typeof fn === 'function') {\n fn()\n }\n })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props) {\n this.openBasedOnStateUpdate()\n }\n }\n\n openBasedOnStateUpdate() {\n const { hide } = this.state\n const { open_state } = this.props\n\n if (!this.activeElement && typeof document !== 'undefined') {\n this.activeElement = document.activeElement\n }\n\n if (!hide && (open_state === 'opened' || open_state === true)) {\n this.toggleOpenClose(null, true)\n } else if (hide && (open_state === 'closed' || open_state === false)) {\n this.toggleOpenClose(null, false)\n }\n }\n\n toggleOpenClose = (event = null, showModal = null) => {\n if (event && event.preventDefault) {\n event.preventDefault()\n }\n\n const toggleNow = () => {\n const {\n animation_duration = ANIMATION_DURATION,\n no_animation = false,\n } = this.props\n const timeoutDuration =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n const modalActive =\n typeof showModal === 'boolean'\n ? showModal\n : !this.state.modalActive\n\n this.isInTransition = true\n\n const doItNow = () => {\n this.setState(\n {\n hide: false,\n modalActive,\n },\n () => {\n this.isInTransition = false\n this.handleSideEffects()\n }\n )\n }\n\n if (modalActive === false && !isTrue(no_animation)) {\n this.setState({\n hide: true,\n })\n\n this._closeTimeout = setTimeout(doItNow, timeoutDuration) // delay because of the animation\n } else {\n doItNow()\n }\n }\n\n const waitBeforeOpen = () => {\n const { open_delay, no_animation } = this.props\n const delay =\n typeof open_delay === 'string'\n ? parseFloat(open_delay)\n : open_delay\n if (delay > 0 && !isTrue(no_animation)) {\n this._openTimeout = setTimeout(toggleNow, delay) // custom delay\n } else {\n toggleNow()\n }\n }\n\n clearTimeout(this._closeTimeout)\n clearTimeout(this._openTimeout)\n\n const { open_modal } = this.props\n if (typeof open_modal === 'function') {\n const fn = open_modal(waitBeforeOpen, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n } else {\n waitBeforeOpen()\n }\n }\n\n handleSideEffects = () => {\n const { modalActive } = this.state\n const { close_modal, open_state, animation_duration } = this.props\n\n if (modalActive) {\n if (typeof close_modal === 'function') {\n const fn = close_modal(() => {\n this.toggleOpenClose(null, false)\n }, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n }\n\n this.setActiveState(this._id)\n } else if (modalActive === false) {\n const focus = (elem: HTMLElement) => {\n // So we can omit showing a Tooltip on the trigger button\n elem.setAttribute('data-autofocus', 'true')\n\n elem.focus({ preventScroll: true })\n\n return new Promise<void>((resolve) => {\n setTimeout(() => {\n elem?.removeAttribute('data-autofocus')\n resolve()\n }, parseFloat(String(animation_duration)) / 3)\n })\n }\n\n if (this._triggerRef?.current) {\n focus(this._triggerRef.current)\n }\n\n // because the open_state was set to opened, we force\n if (\n (open_state === 'opened' || open_state === true) &&\n this.activeElement instanceof HTMLElement\n ) {\n try {\n focus(this.activeElement).then(() => {\n this.activeElement = null\n })\n } catch (e) {\n //\n }\n }\n\n this.removeActiveState()\n }\n }\n\n open = (e: Event) => {\n this.toggleOpenClose(e, true)\n }\n\n close = (\n event: Event,\n { ifIsLatest, triggeredBy = null } = { ifIsLatest: true }\n ) => {\n const { prevent_close = false } = this.props\n\n if (isTrue(prevent_close)) {\n const id = this._id\n dispatchCustomElementEvent(this, 'on_close_prevent', {\n id,\n event,\n triggeredBy,\n close: (e) => {\n this.toggleOpenClose(e, false)\n },\n })\n } else {\n if (ifIsLatest) {\n const list = getListOfModalRoots()\n if (list.length > 1) {\n const last = getModalRoot(-1)\n if (last !== this) {\n return // stop here\n }\n }\n }\n\n this.toggleOpenClose(event, false)\n }\n }\n\n removeActiveState() {\n const last = getModalRoot(-1)\n\n // If this instance is not the last one,\n // make the current one to as the active one\n if (last?._id && last._id !== this._id) {\n return this.setActiveState(last._id)\n }\n\n try {\n document.documentElement.removeAttribute('data-dnb-modal-active')\n } catch (e) {\n warn('Modal: Error on remove \"data-dnb-modal-active\"', e)\n }\n }\n\n /**\n * Prevent scrolling on the background\n * But checks if this instance was the last one or not\n *\n * @param {string} modalId Will remove the attribute if false is given\n */\n setActiveState(modalId: string) {\n if (!modalId) {\n warn('Modal: A valid modalId is required')\n }\n // prevent scrolling on the background\n if (typeof document !== 'undefined') {\n try {\n document.documentElement.setAttribute(\n 'data-dnb-modal-active',\n modalId\n )\n } catch (e) {\n warn('Modal: Error on set \"data-dnb-modal-active\"', e)\n }\n }\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Modal.defaultProps,\n this.context.getTranslation(this.props).Modal,\n this.context.Modal\n )\n\n const {\n root_id = 'root',\n content_id = null,\n disabled = null,\n labelled_by = null,\n focus_selector = null,\n header_content = null,\n bar_content = null,\n bypass_invalidation_selectors = null,\n\n id, // eslint-disable-line\n open_state, // eslint-disable-line\n open_delay, // eslint-disable-line\n\n omit_trigger_button = false,\n trigger = null,\n trigger_attributes = null,\n ...rest\n } = props\n\n const { hide, modalActive } = this.state\n const modal_content = Modal.getContent(\n typeof this.props.children === 'function'\n ? Object.freeze({ ...this.props, close: this.close })\n : this.props\n )\n\n const render = (suffixProps) => {\n const triggerAttributes = {\n hidden: false,\n variant: 'secondary',\n icon_position: 'left',\n ...trigger_attributes,\n } as ButtonProps\n\n if (isTrue(disabled)) {\n triggerAttributes.disabled = true\n }\n\n if (triggerAttributes.id) {\n this._id = triggerAttributes.id\n }\n\n let fallbackTitle: string\n if (triggerAttributes.title) {\n fallbackTitle = triggerAttributes.title\n }\n // in case the modal is used in suffix and no title is given\n // suffixProps.label is also available, so we could use that too\n else if (suffixProps) {\n fallbackTitle = this.context.translation.HelpButton.title\n }\n\n const TriggerButton = trigger\n ? (trigger as React.FC)\n : HelpButtonInstance\n\n const title = (\n !triggerAttributes.text ? rest.title || fallbackTitle : null\n ) as string\n\n return (\n <>\n {TriggerButton && !isTrue(omit_trigger_button) && (\n <TriggerButton\n {...triggerAttributes}\n id={this._id}\n title={title}\n onClick={this.toggleOpenClose}\n innerRef={this._triggerRef}\n className={classnames(\n 'dnb-modal__trigger',\n createSpacingClasses(props),\n triggerAttributes.class,\n triggerAttributes.className\n )}\n />\n )}\n\n {modalActive && modal_content && (\n <ModalRoot\n {...rest}\n id={this._id}\n root_id={root_id}\n content_id={content_id || `dnb-modal-${this._id}`}\n labelled_by={labelled_by}\n focus_selector={focus_selector}\n modal_content={modal_content}\n header_content={header_content}\n bar_content={bar_content}\n bypass_invalidation_selectors={bypass_invalidation_selectors}\n close={this.close}\n hide={hide}\n title={rest.title || fallbackTitle}\n />\n )}\n </>\n )\n }\n\n return <SuffixContext.Consumer>{render}</SuffixContext.Consumer>\n }\n}\n\nexport { CloseButton, Modal as OriginalComponent }\n\nexport default classWithCamelCaseProps(Modal)\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bodyScrollLock.js","names":["warn","isChildOfElement","checkIfHasScrollbar","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","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","target","cancelable","scrollLeft","scrollWidth","scrollHeight","clientHeight","isVertical","Math","abs","isOnTop","isOnLeft","isOnRight","isOnBottom","hasScrollbar","stopPropagation","checkTargetElement","disableBodyScroll","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":"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"}
|
|
1
|
+
{"version":3,"file":"bodyScrollLock.js","names":["warn","isChildOfElement","checkIfHasScrollbar","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","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","target","cancelable","scrollLeft","scrollWidth","scrollHeight","clientHeight","isVertical","Math","abs","isOnTop","isOnLeft","isOnRight","isOnBottom","hasScrollbar","stopPropagation","checkTargetElement","disableBodyScroll","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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"}
|
|
@@ -44,7 +44,7 @@ export const format = (value, {
|
|
|
44
44
|
const opts = (typeof options === 'string' && options[0] === '{' ? JSON.parse(options) : options) || {};
|
|
45
45
|
if (parseFloat(decimals) >= 0) {
|
|
46
46
|
value = formatDecimals(value, decimals, omit_rounding, opts);
|
|
47
|
-
} else if (typeof opts.maximumFractionDigits === 'undefined') {
|
|
47
|
+
} else if (typeof opts.maximumFractionDigits === 'undefined' && !isTrue(percent) && !isTrue(currency)) {
|
|
48
48
|
opts.maximumFractionDigits = 20;
|
|
49
49
|
}
|
|
50
50
|
if (isTrue(phone)) {
|
|
@@ -84,7 +84,9 @@ export const format = (value, {
|
|
|
84
84
|
aria = _aria;
|
|
85
85
|
} else if (isTrue(percent)) {
|
|
86
86
|
if (decimals === null) {
|
|
87
|
-
|
|
87
|
+
if (typeof opts.maximumFractionDigits === 'undefined') {
|
|
88
|
+
decimals = countDecimals(value);
|
|
89
|
+
}
|
|
88
90
|
value = formatDecimals(value, decimals, omit_rounding, opts);
|
|
89
91
|
}
|
|
90
92
|
if (!opts.style) {
|
|
@@ -215,10 +217,10 @@ export const formatDecimals = (value, decimals, omit_rounding = false, opts = {}
|
|
|
215
217
|
if (decimals >= 0) {
|
|
216
218
|
opts.minimumFractionDigits = decimals;
|
|
217
219
|
opts.maximumFractionDigits = decimals;
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
}
|
|
221
|
+
const pos = String(value).indexOf('.');
|
|
222
|
+
if (pos > 0 && omit_rounding === true) {
|
|
223
|
+
value = String(value).substring(0, pos + 1 + (decimals || opts.maximumFractionDigits));
|
|
222
224
|
}
|
|
223
225
|
return value;
|
|
224
226
|
};
|