@dnb/eufemia 10.15.0 → 10.16.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 +53 -0
- package/assets/icons/dnb/browser.svg +1 -0
- package/assets/icons/dnb/browser_medium.svg +1 -0
- package/assets/icons/dnb/coins_1.svg +1 -1
- package/assets/icons/dnb/coins_1_medium.svg +1 -1
- package/assets/icons/dnb/digipass_corporate.svg +1 -0
- package/assets/icons/dnb/digipass_corporate_medium.svg +1 -0
- package/assets/icons/dnb/digipass_private.svg +1 -0
- package/assets/icons/dnb/digipass_private_medium.svg +1 -0
- package/assets/icons/dnb/envelope_open.svg +1 -0
- package/assets/icons/dnb/envelope_open_medium.svg +1 -0
- package/assets/icons/dnb/eufemia-icons-xml-categorized.tgz +0 -0
- package/assets/icons/dnb/eufemia-icons-xml.tgz +0 -0
- package/assets/icons/dnb/laptop.svg +1 -0
- package/assets/icons/dnb/laptop_medium.svg +1 -0
- package/assets/icons/dnb/mobile.svg +1 -0
- package/assets/icons/dnb/mobile_medium.svg +1 -0
- package/assets/icons/dnb/money_left.svg +1 -0
- package/assets/icons/dnb/money_left_medium.svg +1 -0
- package/assets/icons/dnb/scan.svg +1 -1
- package/assets/icons/dnb/scan_medium.svg +1 -1
- package/assets/icons/dnb/teenager.svg +1 -0
- package/assets/icons/dnb/teenager_medium.svg +1 -0
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +0 -17
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-ui.css +0 -16
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +2 -2
- package/cjs/components/anchor/style/anchor-mixins.scss +8 -6
- package/cjs/components/anchor/style/dnb-anchor.css +45 -60
- package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +0 -6
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +8 -52
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +0 -6
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/cjs/components/autocomplete/style/dnb-autocomplete.css +1 -0
- package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +0 -2
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/cjs/components/button/style/dnb-button.css +1 -0
- package/cjs/components/button/style/dnb-button.min.css +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +0 -25
- package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +0 -72
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
- package/cjs/components/button/style/themes/dnb-button-theme-ui.css +0 -25
- package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
- package/cjs/components/card/Card.d.ts +1 -1
- package/cjs/components/card/Card.js +48 -9
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/card/style/dnb-card.css +0 -20
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/dnb-card.scss +0 -20
- package/cjs/components/card/style/themes/dnb-card-theme-ui.css +26 -0
- package/cjs/components/card/style/themes/dnb-card-theme-ui.min.css +1 -0
- package/cjs/components/card/style/themes/dnb-card-theme-ui.scss +35 -0
- package/cjs/components/date-picker/DatePicker.d.ts +5 -1
- package/cjs/components/date-picker/DatePicker.js +4 -2
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.js +20 -6
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +2 -2
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/style/dnb-date-picker.css +0 -1
- package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +3 -2
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -17
- package/cjs/components/dialog/style/dnb-dialog.css +0 -1
- package/cjs/components/dialog/style/dnb-dialog.min.css +1 -1
- package/cjs/components/flex/Container.d.ts +2 -4
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/flex/Item.d.ts +2 -3
- package/cjs/components/flex/Item.js +2 -1
- package/cjs/components/flex/Item.js.map +1 -1
- package/cjs/components/flex/style/dnb-flex.css +0 -1
- package/cjs/components/flex/style/dnb-flex.min.css +1 -1
- package/cjs/components/global-error/style/dnb-global-error.css +0 -4
- package/cjs/components/global-error/style/dnb-global-error.min.css +1 -1
- package/cjs/components/grid/style/dnb-grid.css +0 -2
- package/cjs/components/grid/style/dnb-grid.min.css +1 -1
- package/cjs/components/info-card/style/dnb-info-card.css +1 -4
- package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
- package/cjs/components/input/Input.d.ts +3 -2
- package/cjs/components/input/style/dnb-input.css +6 -0
- package/cjs/components/input/style/dnb-input.min.css +1 -1
- package/cjs/components/input/style/themes/dnb-input-theme-sbanken.css +0 -9
- package/cjs/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
- package/cjs/components/input-masked/InputMaskedHooks.js +5 -5
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.d.ts +4 -2
- package/cjs/components/input-masked/InputMaskedUtils.js +9 -7
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/input-masked/MultiInputMask.d.ts +1 -1
- package/cjs/components/input-masked/MultiInputMask.js +4 -2
- package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
- package/cjs/components/input-masked/TextMask.js +15 -4
- package/cjs/components/input-masked/TextMask.js.map +1 -1
- package/cjs/components/input-masked/style/dnb-input-masked.css +3 -1
- package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
- package/cjs/components/input-masked/style/dnb-input-masked.scss +5 -0
- package/cjs/components/input-masked/text-mask/InputModeNumber.d.ts +20 -0
- package/cjs/components/input-masked/text-mask/InputModeNumber.js +93 -0
- package/cjs/components/input-masked/text-mask/InputModeNumber.js.map +1 -0
- package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js +1 -1
- package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
- package/cjs/components/pagination/style/dnb-pagination.css +0 -1
- package/cjs/components/pagination/style/dnb-pagination.min.css +1 -1
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +1 -4
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/cjs/components/radio/RadioGroup.js +0 -1
- package/cjs/components/radio/RadioGroup.js.map +1 -1
- package/cjs/components/section/Section.d.ts +7 -0
- package/cjs/components/section/Section.js +11 -12
- package/cjs/components/section/Section.js.map +1 -1
- package/cjs/components/section/style/dnb-section.css +8 -8
- package/cjs/components/section/style/dnb-section.min.css +1 -1
- package/cjs/components/section/style/dnb-section.scss +8 -4
- package/cjs/components/section/style/themes/dnb-section-theme-ui.css +11 -10
- package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/cjs/components/skeleton/style/dnb-skeleton.css +0 -2
- package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/cjs/components/skip-content/style/dnb-skip-content.css +1 -4
- package/cjs/components/skip-content/style/dnb-skip-content.min.css +1 -1
- package/cjs/components/table/style/dnb-table.css +1 -4
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +0 -3
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/cjs/components/tabs/style/dnb-tabs.css +1 -0
- package/cjs/components/tabs/style/dnb-tabs.min.css +1 -1
- package/cjs/components/tag/style/dnb-tag.css +0 -1
- package/cjs/components/tag/style/dnb-tag.min.css +1 -1
- package/cjs/components/textarea/Textarea.js +4 -9
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/components/textarea/style/dnb-textarea.css +5 -2
- package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
- package/cjs/components/textarea/style/dnb-textarea.scss +2 -2
- package/cjs/components/toggle-button/ToggleButtonGroup.js +0 -1
- package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/cjs/components/toggle-button/style/dnb-toggle-button.css +4 -6
- package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/cjs/components/toggle-button/style/dnb-toggle-button.scss +4 -10
- package/cjs/components/tooltip/style/dnb-tooltip.css +1 -0
- package/cjs/components/tooltip/style/dnb-tooltip.min.css +1 -1
- package/cjs/components/tooltip/style/dnb-tooltip.scss +2 -0
- package/cjs/components/upload/style/dnb-upload.css +3 -12
- package/cjs/components/upload/style/dnb-upload.min.css +1 -1
- package/cjs/components/upload/types.d.ts +1 -1
- package/cjs/components/upload/types.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
- package/cjs/extensions/forms/DataContext/Context.js +1 -0
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +6 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +37 -13
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +0 -2
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +3 -1
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Email/Email.js +7 -5
- package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +26 -4
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +2 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +69 -30
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.css +3 -0
- package/cjs/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.min.css +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.scss +4 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +59 -50
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/style/dnb-selection.css +6 -6
- package/cjs/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
- package/cjs/extensions/forms/Field/Selection/style/dnb-selection.scss +15 -10
- package/cjs/extensions/forms/Field/String/String.d.ts +1 -0
- package/cjs/extensions/forms/Field/String/String.js +13 -8
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +8 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -0
- package/cjs/extensions/forms/Form/Handler/Handler.js +2 -2
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +7 -8
- package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
- package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +6 -1
- package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +3 -3
- package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
- package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +2 -0
- package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +3 -2
- package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +3 -2
- package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +14 -17
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +15 -16
- package/cjs/extensions/forms/constants/countries.js +4 -2
- package/cjs/extensions/forms/constants/countries.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.d.ts +3 -0
- package/cjs/extensions/forms/hooks/useDataValue.js +98 -48
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +42 -39
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +12 -2
- package/cjs/extensions/forms/types.js +1 -1
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/payment-card/style/dnb-payment-card.css +0 -2
- package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/cjs/icons/browser.d.ts +3 -0
- package/cjs/icons/browser.js +11 -0
- package/cjs/icons/browser.js.map +1 -0
- package/cjs/icons/browser_medium.d.ts +3 -0
- package/cjs/icons/browser_medium.js +11 -0
- package/cjs/icons/browser_medium.js.map +1 -0
- package/cjs/icons/digipass_corporate.d.ts +3 -0
- package/cjs/icons/digipass_corporate.js +11 -0
- package/cjs/icons/digipass_corporate.js.map +1 -0
- package/cjs/icons/digipass_corporate_medium.d.ts +3 -0
- package/cjs/icons/digipass_corporate_medium.js +11 -0
- package/cjs/icons/digipass_corporate_medium.js.map +1 -0
- package/cjs/icons/digipass_private.d.ts +3 -0
- package/cjs/icons/digipass_private.js +11 -0
- package/cjs/icons/digipass_private.js.map +1 -0
- package/cjs/icons/digipass_private_medium.d.ts +3 -0
- package/cjs/icons/digipass_private_medium.js +11 -0
- package/cjs/icons/digipass_private_medium.js.map +1 -0
- package/cjs/icons/dnb/browser.d.ts +3 -0
- package/cjs/icons/dnb/browser.js +25 -0
- package/cjs/icons/dnb/browser.js.map +1 -0
- package/cjs/icons/dnb/browser_medium.d.ts +3 -0
- package/cjs/icons/dnb/browser_medium.js +25 -0
- package/cjs/icons/dnb/browser_medium.js.map +1 -0
- package/cjs/icons/dnb/coins_1.js +1 -1
- package/cjs/icons/dnb/coins_1.js.map +1 -1
- package/cjs/icons/dnb/coins_1_medium.js +1 -1
- package/cjs/icons/dnb/coins_1_medium.js.map +1 -1
- package/cjs/icons/dnb/digipass_corporate.d.ts +3 -0
- package/cjs/icons/dnb/digipass_corporate.js +25 -0
- package/cjs/icons/dnb/digipass_corporate.js.map +1 -0
- package/cjs/icons/dnb/digipass_corporate_medium.d.ts +3 -0
- package/cjs/icons/dnb/digipass_corporate_medium.js +25 -0
- package/cjs/icons/dnb/digipass_corporate_medium.js.map +1 -0
- package/cjs/icons/dnb/digipass_private.d.ts +3 -0
- package/cjs/icons/dnb/digipass_private.js +25 -0
- package/cjs/icons/dnb/digipass_private.js.map +1 -0
- package/cjs/icons/dnb/digipass_private_medium.d.ts +3 -0
- package/cjs/icons/dnb/digipass_private_medium.js +25 -0
- package/cjs/icons/dnb/digipass_private_medium.js.map +1 -0
- package/cjs/icons/dnb/envelope_open.d.ts +3 -0
- package/cjs/icons/dnb/envelope_open.js +26 -0
- package/cjs/icons/dnb/envelope_open.js.map +1 -0
- package/cjs/icons/dnb/envelope_open_medium.d.ts +3 -0
- package/cjs/icons/dnb/envelope_open_medium.js +26 -0
- package/cjs/icons/dnb/envelope_open_medium.js.map +1 -0
- package/cjs/icons/dnb/icons-meta.json +230 -20
- package/cjs/icons/dnb/icons-svg.lock +1272 -1064
- package/cjs/icons/dnb/index.d.ts +17 -1
- package/cjs/icons/dnb/index.js +112 -0
- package/cjs/icons/dnb/index.js.map +1 -1
- package/cjs/icons/dnb/laptop.d.ts +3 -0
- package/cjs/icons/dnb/laptop.js +26 -0
- package/cjs/icons/dnb/laptop.js.map +1 -0
- package/cjs/icons/dnb/laptop_medium.d.ts +3 -0
- package/cjs/icons/dnb/laptop_medium.js +26 -0
- package/cjs/icons/dnb/laptop_medium.js.map +1 -0
- package/cjs/icons/dnb/mobile.d.ts +3 -0
- package/cjs/icons/dnb/mobile.js +23 -0
- package/cjs/icons/dnb/mobile.js.map +1 -0
- package/cjs/icons/dnb/mobile_medium.d.ts +3 -0
- package/cjs/icons/dnb/mobile_medium.js +23 -0
- package/cjs/icons/dnb/mobile_medium.js.map +1 -0
- package/cjs/icons/dnb/money_left.d.ts +3 -0
- package/cjs/icons/dnb/money_left.js +25 -0
- package/cjs/icons/dnb/money_left.js.map +1 -0
- package/cjs/icons/dnb/money_left_medium.d.ts +3 -0
- package/cjs/icons/dnb/money_left_medium.js +26 -0
- package/cjs/icons/dnb/money_left_medium.js.map +1 -0
- package/cjs/icons/dnb/scan.js +5 -2
- package/cjs/icons/dnb/scan.js.map +1 -1
- package/cjs/icons/dnb/scan_medium.js +8 -12
- package/cjs/icons/dnb/scan_medium.js.map +1 -1
- package/cjs/icons/dnb/secondary_icons.d.ts +9 -1
- package/cjs/icons/dnb/secondary_icons.js +56 -0
- package/cjs/icons/dnb/secondary_icons.js.map +1 -1
- package/cjs/icons/dnb/secondary_icons_medium.d.ts +9 -1
- package/cjs/icons/dnb/secondary_icons_medium.js +56 -0
- package/cjs/icons/dnb/secondary_icons_medium.js.map +1 -1
- package/cjs/icons/dnb/teenager.d.ts +3 -0
- package/cjs/icons/dnb/teenager.js +26 -0
- package/cjs/icons/dnb/teenager.js.map +1 -0
- package/cjs/icons/dnb/teenager_medium.d.ts +3 -0
- package/cjs/icons/dnb/teenager_medium.js +26 -0
- package/cjs/icons/dnb/teenager_medium.js.map +1 -0
- package/cjs/icons/envelope_open.d.ts +3 -0
- package/cjs/icons/envelope_open.js +11 -0
- package/cjs/icons/envelope_open.js.map +1 -0
- package/cjs/icons/envelope_open_medium.d.ts +3 -0
- package/cjs/icons/envelope_open_medium.js +11 -0
- package/cjs/icons/envelope_open_medium.js.map +1 -0
- package/cjs/icons/index.d.ts +17 -1
- package/cjs/icons/index.js +112 -0
- package/cjs/icons/index.js.map +1 -1
- package/cjs/icons/laptop.d.ts +3 -0
- package/cjs/icons/laptop.js +11 -0
- package/cjs/icons/laptop.js.map +1 -0
- package/cjs/icons/laptop_medium.d.ts +3 -0
- package/cjs/icons/laptop_medium.js +11 -0
- package/cjs/icons/laptop_medium.js.map +1 -0
- package/cjs/icons/mobile.d.ts +3 -0
- package/cjs/icons/mobile.js +11 -0
- package/cjs/icons/mobile.js.map +1 -0
- package/cjs/icons/mobile_medium.d.ts +3 -0
- package/cjs/icons/mobile_medium.js +11 -0
- package/cjs/icons/mobile_medium.js.map +1 -0
- package/cjs/icons/money_left.d.ts +3 -0
- package/cjs/icons/money_left.js +11 -0
- package/cjs/icons/money_left.js.map +1 -0
- package/cjs/icons/money_left_medium.d.ts +3 -0
- package/cjs/icons/money_left_medium.js +11 -0
- package/cjs/icons/money_left_medium.js.map +1 -0
- package/cjs/icons/teenager.d.ts +3 -0
- package/cjs/icons/teenager.js +11 -0
- package/cjs/icons/teenager.js.map +1 -0
- package/cjs/icons/teenager_medium.d.ts +3 -0
- package/cjs/icons/teenager_medium.js +11 -0
- package/cjs/icons/teenager_medium.js.map +1 -0
- 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/component-helper.d.ts +1 -0
- package/cjs/shared/component-helper.js +6 -1
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/style/dnb-ui-basis.css +3 -0
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +3 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +124 -179
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-core.css +4 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-elements.css +2 -4
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +42 -41
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +42 -39
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +16 -16
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +207 -278
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +7 -7
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +16 -16
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +42 -41
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +42 -39
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +204 -392
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +2 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +42 -41
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +42 -39
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +16 -16
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +207 -277
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +8 -8
- package/cjs/style/themes/theme-ui/ui-theme-components.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +16 -16
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +42 -41
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +42 -39
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +11 -25
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +0 -17
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/components/accordion/style/themes/dnb-accordion-theme-ui.css +0 -16
- package/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +2 -2
- package/components/anchor/style/anchor-mixins.scss +8 -6
- package/components/anchor/style/dnb-anchor.css +45 -60
- package/components/anchor/style/dnb-anchor.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +0 -6
- package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +8 -52
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-ui.css +0 -6
- package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/components/autocomplete/style/dnb-autocomplete.css +1 -0
- package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.css +0 -2
- package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/components/button/style/dnb-button.css +1 -0
- package/components/button/style/dnb-button.min.css +1 -1
- package/components/button/style/themes/dnb-button-theme-eiendom.css +0 -25
- package/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
- package/components/button/style/themes/dnb-button-theme-sbanken.css +0 -72
- package/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
- package/components/button/style/themes/dnb-button-theme-ui.css +0 -25
- package/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
- package/components/card/Card.d.ts +1 -1
- package/components/card/Card.js +46 -9
- package/components/card/Card.js.map +1 -1
- package/components/card/style/dnb-card.css +0 -20
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/dnb-card.scss +0 -20
- package/components/card/style/themes/dnb-card-theme-ui.css +26 -0
- package/components/card/style/themes/dnb-card-theme-ui.min.css +1 -0
- package/components/card/style/themes/dnb-card-theme-ui.scss +35 -0
- package/components/date-picker/DatePicker.d.ts +5 -1
- package/components/date-picker/DatePicker.js +4 -2
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerInput.js +20 -6
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +2 -2
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/style/dnb-date-picker.css +0 -1
- package/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +3 -2
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -17
- package/components/dialog/style/dnb-dialog.css +0 -1
- package/components/dialog/style/dnb-dialog.min.css +1 -1
- package/components/flex/Container.d.ts +2 -4
- package/components/flex/Container.js.map +1 -1
- package/components/flex/Item.d.ts +2 -3
- package/components/flex/Item.js +2 -1
- package/components/flex/Item.js.map +1 -1
- package/components/flex/style/dnb-flex.css +0 -1
- package/components/flex/style/dnb-flex.min.css +1 -1
- package/components/global-error/style/dnb-global-error.css +0 -4
- package/components/global-error/style/dnb-global-error.min.css +1 -1
- package/components/grid/style/dnb-grid.css +0 -2
- package/components/grid/style/dnb-grid.min.css +1 -1
- package/components/info-card/style/dnb-info-card.css +1 -4
- package/components/info-card/style/dnb-info-card.min.css +1 -1
- package/components/input/Input.d.ts +3 -2
- package/components/input/style/dnb-input.css +6 -0
- package/components/input/style/dnb-input.min.css +1 -1
- package/components/input/style/themes/dnb-input-theme-sbanken.css +0 -9
- package/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
- package/components/input-masked/InputMaskedHooks.js +6 -6
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/input-masked/InputMaskedUtils.d.ts +4 -2
- package/components/input-masked/InputMaskedUtils.js +9 -7
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/input-masked/MultiInputMask.d.ts +1 -1
- package/components/input-masked/MultiInputMask.js +4 -2
- package/components/input-masked/MultiInputMask.js.map +1 -1
- package/components/input-masked/TextMask.js +15 -4
- package/components/input-masked/TextMask.js.map +1 -1
- package/components/input-masked/style/dnb-input-masked.css +3 -1
- package/components/input-masked/style/dnb-input-masked.min.css +1 -1
- package/components/input-masked/style/dnb-input-masked.scss +5 -0
- package/components/input-masked/text-mask/InputModeNumber.d.ts +20 -0
- package/components/input-masked/text-mask/InputModeNumber.js +84 -0
- package/components/input-masked/text-mask/InputModeNumber.js.map +1 -0
- package/components/input-masked/text-mask/createTextMaskInputElement.js +1 -1
- package/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
- package/components/pagination/style/dnb-pagination.css +0 -1
- package/components/pagination/style/dnb-pagination.min.css +1 -1
- package/components/progress-indicator/style/dnb-progress-indicator.css +1 -4
- package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/components/radio/RadioGroup.js +0 -1
- package/components/radio/RadioGroup.js.map +1 -1
- package/components/section/Section.d.ts +7 -0
- package/components/section/Section.js +10 -12
- package/components/section/Section.js.map +1 -1
- package/components/section/style/dnb-section.css +8 -8
- package/components/section/style/dnb-section.min.css +1 -1
- package/components/section/style/dnb-section.scss +8 -4
- package/components/section/style/themes/dnb-section-theme-ui.css +11 -10
- package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/components/skeleton/style/dnb-skeleton.css +0 -2
- package/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/components/skip-content/style/dnb-skip-content.css +1 -4
- package/components/skip-content/style/dnb-skip-content.min.css +1 -1
- package/components/table/style/dnb-table.css +1 -4
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/table/style/themes/dnb-table-theme-sbanken.css +0 -3
- package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/components/tabs/style/dnb-tabs.css +1 -0
- package/components/tabs/style/dnb-tabs.min.css +1 -1
- package/components/tag/style/dnb-tag.css +0 -1
- package/components/tag/style/dnb-tag.min.css +1 -1
- package/components/textarea/Textarea.js +4 -9
- package/components/textarea/Textarea.js.map +1 -1
- package/components/textarea/style/dnb-textarea.css +5 -2
- package/components/textarea/style/dnb-textarea.min.css +1 -1
- package/components/textarea/style/dnb-textarea.scss +2 -2
- package/components/toggle-button/ToggleButtonGroup.js +0 -1
- package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/components/toggle-button/style/dnb-toggle-button.css +4 -6
- package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/components/toggle-button/style/dnb-toggle-button.scss +4 -10
- package/components/tooltip/style/dnb-tooltip.css +1 -0
- package/components/tooltip/style/dnb-tooltip.min.css +1 -1
- package/components/tooltip/style/dnb-tooltip.scss +2 -0
- package/components/upload/style/dnb-upload.css +3 -12
- package/components/upload/style/dnb-upload.min.css +1 -1
- package/components/upload/types.d.ts +1 -1
- package/components/upload/types.js.map +1 -1
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +0 -17
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/es/components/accordion/style/themes/dnb-accordion-theme-ui.css +0 -16
- package/es/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +2 -2
- package/es/components/anchor/style/anchor-mixins.scss +8 -6
- package/es/components/anchor/style/dnb-anchor.css +45 -60
- package/es/components/anchor/style/dnb-anchor.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +0 -6
- package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +8 -52
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +0 -6
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/es/components/autocomplete/style/dnb-autocomplete.css +1 -0
- package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.css +0 -2
- package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/es/components/button/style/dnb-button.css +1 -0
- package/es/components/button/style/dnb-button.min.css +1 -1
- package/es/components/button/style/themes/dnb-button-theme-eiendom.css +0 -25
- package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
- package/es/components/button/style/themes/dnb-button-theme-sbanken.css +0 -72
- package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
- package/es/components/button/style/themes/dnb-button-theme-ui.css +0 -25
- package/es/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
- package/es/components/card/Card.d.ts +1 -1
- package/es/components/card/Card.js +46 -9
- package/es/components/card/Card.js.map +1 -1
- package/es/components/card/style/dnb-card.css +0 -20
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/dnb-card.scss +0 -20
- package/es/components/card/style/themes/dnb-card-theme-ui.css +26 -0
- package/es/components/card/style/themes/dnb-card-theme-ui.min.css +1 -0
- package/es/components/card/style/themes/dnb-card-theme-ui.scss +35 -0
- package/es/components/date-picker/DatePicker.d.ts +5 -1
- package/es/components/date-picker/DatePicker.js +4 -2
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.js +20 -6
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +2 -2
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/style/dnb-date-picker.css +0 -1
- package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +3 -2
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -17
- package/es/components/dialog/style/dnb-dialog.css +0 -1
- package/es/components/dialog/style/dnb-dialog.min.css +1 -1
- package/es/components/flex/Container.d.ts +2 -4
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/flex/Item.d.ts +2 -3
- package/es/components/flex/Item.js +2 -1
- package/es/components/flex/Item.js.map +1 -1
- package/es/components/flex/style/dnb-flex.css +0 -1
- package/es/components/flex/style/dnb-flex.min.css +1 -1
- package/es/components/global-error/style/dnb-global-error.css +0 -4
- package/es/components/global-error/style/dnb-global-error.min.css +1 -1
- package/es/components/grid/style/dnb-grid.css +0 -2
- package/es/components/grid/style/dnb-grid.min.css +1 -1
- package/es/components/info-card/style/dnb-info-card.css +1 -4
- package/es/components/info-card/style/dnb-info-card.min.css +1 -1
- package/es/components/input/Input.d.ts +3 -2
- package/es/components/input/style/dnb-input.css +6 -0
- package/es/components/input/style/dnb-input.min.css +1 -1
- package/es/components/input/style/themes/dnb-input-theme-sbanken.css +0 -9
- package/es/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
- package/es/components/input-masked/InputMaskedHooks.js +6 -6
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/input-masked/InputMaskedUtils.d.ts +4 -2
- package/es/components/input-masked/InputMaskedUtils.js +9 -7
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/input-masked/MultiInputMask.d.ts +1 -1
- package/es/components/input-masked/MultiInputMask.js +4 -2
- package/es/components/input-masked/MultiInputMask.js.map +1 -1
- package/es/components/input-masked/TextMask.js +15 -4
- package/es/components/input-masked/TextMask.js.map +1 -1
- package/es/components/input-masked/style/dnb-input-masked.css +3 -1
- package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
- package/es/components/input-masked/style/dnb-input-masked.scss +5 -0
- package/es/components/input-masked/text-mask/InputModeNumber.d.ts +20 -0
- package/es/components/input-masked/text-mask/InputModeNumber.js +84 -0
- package/es/components/input-masked/text-mask/InputModeNumber.js.map +1 -0
- package/es/components/input-masked/text-mask/createTextMaskInputElement.js +1 -1
- package/es/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
- package/es/components/pagination/style/dnb-pagination.css +0 -1
- package/es/components/pagination/style/dnb-pagination.min.css +1 -1
- package/es/components/progress-indicator/style/dnb-progress-indicator.css +1 -4
- package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/es/components/radio/RadioGroup.js +0 -1
- package/es/components/radio/RadioGroup.js.map +1 -1
- package/es/components/section/Section.d.ts +7 -0
- package/es/components/section/Section.js +10 -12
- package/es/components/section/Section.js.map +1 -1
- package/es/components/section/style/dnb-section.css +8 -8
- package/es/components/section/style/dnb-section.min.css +1 -1
- package/es/components/section/style/dnb-section.scss +8 -4
- package/es/components/section/style/themes/dnb-section-theme-ui.css +11 -10
- package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/es/components/skeleton/style/dnb-skeleton.css +0 -2
- package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/es/components/skip-content/style/dnb-skip-content.css +1 -4
- package/es/components/skip-content/style/dnb-skip-content.min.css +1 -1
- package/es/components/table/style/dnb-table.css +1 -4
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/table/style/themes/dnb-table-theme-sbanken.css +0 -3
- package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/es/components/tabs/style/dnb-tabs.css +1 -0
- package/es/components/tabs/style/dnb-tabs.min.css +1 -1
- package/es/components/tag/style/dnb-tag.css +0 -1
- package/es/components/tag/style/dnb-tag.min.css +1 -1
- package/es/components/textarea/Textarea.js +4 -9
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/components/textarea/style/dnb-textarea.css +5 -2
- package/es/components/textarea/style/dnb-textarea.min.css +1 -1
- package/es/components/textarea/style/dnb-textarea.scss +2 -2
- package/es/components/toggle-button/ToggleButtonGroup.js +0 -1
- package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/es/components/toggle-button/style/dnb-toggle-button.css +4 -6
- package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/es/components/toggle-button/style/dnb-toggle-button.scss +4 -10
- package/es/components/tooltip/style/dnb-tooltip.css +1 -0
- package/es/components/tooltip/style/dnb-tooltip.min.css +1 -1
- package/es/components/tooltip/style/dnb-tooltip.scss +2 -0
- package/es/components/upload/style/dnb-upload.css +3 -12
- package/es/components/upload/style/dnb-upload.min.css +1 -1
- package/es/components/upload/types.d.ts +1 -1
- package/es/components/upload/types.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +1 -0
- package/es/extensions/forms/DataContext/Context.js +1 -0
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +6 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +37 -13
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +0 -2
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.js +3 -1
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Email/Email.js +7 -5
- package/es/extensions/forms/Field/Email/Email.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js +26 -4
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +2 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +59 -21
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.css +3 -0
- package/es/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.min.css +1 -1
- package/es/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.scss +4 -0
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
- package/es/extensions/forms/Field/Selection/Selection.js +58 -50
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Selection/style/dnb-selection.css +6 -6
- package/es/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
- package/es/extensions/forms/Field/Selection/style/dnb-selection.scss +15 -10
- package/es/extensions/forms/Field/String/String.d.ts +1 -0
- package/es/extensions/forms/Field/String/String.js +13 -7
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +8 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -0
- package/es/extensions/forms/Form/Handler/Handler.js +2 -2
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +7 -8
- package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
- package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +6 -1
- package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +3 -3
- package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
- package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +2 -0
- package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +3 -2
- package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
- package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +3 -2
- package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.js +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +14 -17
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +15 -16
- package/es/extensions/forms/constants/countries.js +4 -2
- package/es/extensions/forms/constants/countries.js.map +1 -1
- package/es/extensions/forms/hooks/useDataValue.d.ts +3 -0
- package/es/extensions/forms/hooks/useDataValue.js +94 -45
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +42 -39
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +12 -2
- package/es/extensions/forms/types.js +1 -1
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/payment-card/style/dnb-payment-card.css +0 -2
- package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/es/icons/browser.d.ts +3 -0
- package/es/icons/browser.js +3 -0
- package/es/icons/browser.js.map +1 -0
- package/es/icons/browser_medium.d.ts +3 -0
- package/es/icons/browser_medium.js +3 -0
- package/es/icons/browser_medium.js.map +1 -0
- package/es/icons/digipass_corporate.d.ts +3 -0
- package/es/icons/digipass_corporate.js +3 -0
- package/es/icons/digipass_corporate.js.map +1 -0
- package/es/icons/digipass_corporate_medium.d.ts +3 -0
- package/es/icons/digipass_corporate_medium.js +3 -0
- package/es/icons/digipass_corporate_medium.js.map +1 -0
- package/es/icons/digipass_private.d.ts +3 -0
- package/es/icons/digipass_private.js +3 -0
- package/es/icons/digipass_private.js.map +1 -0
- package/es/icons/digipass_private_medium.d.ts +3 -0
- package/es/icons/digipass_private_medium.js +3 -0
- package/es/icons/digipass_private_medium.js.map +1 -0
- package/es/icons/dnb/browser.d.ts +3 -0
- package/es/icons/dnb/browser.js +17 -0
- package/es/icons/dnb/browser.js.map +1 -0
- package/es/icons/dnb/browser_medium.d.ts +3 -0
- package/es/icons/dnb/browser_medium.js +17 -0
- package/es/icons/dnb/browser_medium.js.map +1 -0
- package/es/icons/dnb/coins_1.js +1 -1
- package/es/icons/dnb/coins_1.js.map +1 -1
- package/es/icons/dnb/coins_1_medium.js +1 -1
- package/es/icons/dnb/coins_1_medium.js.map +1 -1
- package/es/icons/dnb/digipass_corporate.d.ts +3 -0
- package/es/icons/dnb/digipass_corporate.js +17 -0
- package/es/icons/dnb/digipass_corporate.js.map +1 -0
- package/es/icons/dnb/digipass_corporate_medium.d.ts +3 -0
- package/es/icons/dnb/digipass_corporate_medium.js +17 -0
- package/es/icons/dnb/digipass_corporate_medium.js.map +1 -0
- package/es/icons/dnb/digipass_private.d.ts +3 -0
- package/es/icons/dnb/digipass_private.js +17 -0
- package/es/icons/dnb/digipass_private.js.map +1 -0
- package/es/icons/dnb/digipass_private_medium.d.ts +3 -0
- package/es/icons/dnb/digipass_private_medium.js +17 -0
- package/es/icons/dnb/digipass_private_medium.js.map +1 -0
- package/es/icons/dnb/envelope_open.d.ts +3 -0
- package/es/icons/dnb/envelope_open.js +18 -0
- package/es/icons/dnb/envelope_open.js.map +1 -0
- package/es/icons/dnb/envelope_open_medium.d.ts +3 -0
- package/es/icons/dnb/envelope_open_medium.js +18 -0
- package/es/icons/dnb/envelope_open_medium.js.map +1 -0
- package/es/icons/dnb/icons-meta.json +230 -20
- package/es/icons/dnb/icons-svg.lock +1272 -1064
- package/es/icons/dnb/index.d.ts +17 -1
- package/es/icons/dnb/index.js +17 -1
- package/es/icons/dnb/index.js.map +1 -1
- package/es/icons/dnb/laptop.d.ts +3 -0
- package/es/icons/dnb/laptop.js +18 -0
- package/es/icons/dnb/laptop.js.map +1 -0
- package/es/icons/dnb/laptop_medium.d.ts +3 -0
- package/es/icons/dnb/laptop_medium.js +18 -0
- package/es/icons/dnb/laptop_medium.js.map +1 -0
- package/es/icons/dnb/mobile.d.ts +3 -0
- package/es/icons/dnb/mobile.js +15 -0
- package/es/icons/dnb/mobile.js.map +1 -0
- package/es/icons/dnb/mobile_medium.d.ts +3 -0
- package/es/icons/dnb/mobile_medium.js +15 -0
- package/es/icons/dnb/mobile_medium.js.map +1 -0
- package/es/icons/dnb/money_left.d.ts +3 -0
- package/es/icons/dnb/money_left.js +17 -0
- package/es/icons/dnb/money_left.js.map +1 -0
- package/es/icons/dnb/money_left_medium.d.ts +3 -0
- package/es/icons/dnb/money_left_medium.js +18 -0
- package/es/icons/dnb/money_left_medium.js.map +1 -0
- package/es/icons/dnb/scan.js +5 -2
- package/es/icons/dnb/scan.js.map +1 -1
- package/es/icons/dnb/scan_medium.js +8 -12
- package/es/icons/dnb/scan_medium.js.map +1 -1
- package/es/icons/dnb/secondary_icons.d.ts +9 -1
- package/es/icons/dnb/secondary_icons.js +9 -1
- package/es/icons/dnb/secondary_icons.js.map +1 -1
- package/es/icons/dnb/secondary_icons_medium.d.ts +9 -1
- package/es/icons/dnb/secondary_icons_medium.js +9 -1
- package/es/icons/dnb/secondary_icons_medium.js.map +1 -1
- package/es/icons/dnb/teenager.d.ts +3 -0
- package/es/icons/dnb/teenager.js +18 -0
- package/es/icons/dnb/teenager.js.map +1 -0
- package/es/icons/dnb/teenager_medium.d.ts +3 -0
- package/es/icons/dnb/teenager_medium.js +18 -0
- package/es/icons/dnb/teenager_medium.js.map +1 -0
- package/es/icons/envelope_open.d.ts +3 -0
- package/es/icons/envelope_open.js +3 -0
- package/es/icons/envelope_open.js.map +1 -0
- package/es/icons/envelope_open_medium.d.ts +3 -0
- package/es/icons/envelope_open_medium.js +3 -0
- package/es/icons/envelope_open_medium.js.map +1 -0
- package/es/icons/index.d.ts +17 -1
- package/es/icons/index.js +17 -1
- package/es/icons/index.js.map +1 -1
- package/es/icons/laptop.d.ts +3 -0
- package/es/icons/laptop.js +3 -0
- package/es/icons/laptop.js.map +1 -0
- package/es/icons/laptop_medium.d.ts +3 -0
- package/es/icons/laptop_medium.js +3 -0
- package/es/icons/laptop_medium.js.map +1 -0
- package/es/icons/mobile.d.ts +3 -0
- package/es/icons/mobile.js +3 -0
- package/es/icons/mobile.js.map +1 -0
- package/es/icons/mobile_medium.d.ts +3 -0
- package/es/icons/mobile_medium.js +3 -0
- package/es/icons/mobile_medium.js.map +1 -0
- package/es/icons/money_left.d.ts +3 -0
- package/es/icons/money_left.js +3 -0
- package/es/icons/money_left.js.map +1 -0
- package/es/icons/money_left_medium.d.ts +3 -0
- package/es/icons/money_left_medium.js +3 -0
- package/es/icons/money_left_medium.js.map +1 -0
- package/es/icons/teenager.d.ts +3 -0
- package/es/icons/teenager.js +3 -0
- package/es/icons/teenager.js.map +1 -0
- package/es/icons/teenager_medium.d.ts +3 -0
- package/es/icons/teenager_medium.js +3 -0
- package/es/icons/teenager_medium.js.map +1 -0
- 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/component-helper.d.ts +1 -0
- package/es/shared/component-helper.js +3 -0
- package/es/shared/component-helper.js.map +1 -1
- package/es/style/dnb-ui-basis.css +3 -0
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +3 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +124 -179
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-core.css +4 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-elements.css +2 -4
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +42 -41
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +42 -39
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +16 -16
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +207 -278
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +7 -7
- package/es/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +16 -16
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +42 -41
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +42 -39
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +204 -392
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
- package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +2 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +42 -41
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +42 -39
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.css +16 -16
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +207 -277
- package/es/style/themes/theme-ui/ui-theme-components.min.css +8 -8
- package/es/style/themes/theme-ui/ui-theme-components.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-elements.css +16 -16
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +42 -41
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +42 -39
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +11 -25
- 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 +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -0
- package/extensions/forms/DataContext/Context.js +1 -0
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +6 -1
- package/extensions/forms/DataContext/Provider/Provider.js +37 -13
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +0 -2
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Field/Date/Date.js +3 -1
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Email/Email.js +7 -5
- package/extensions/forms/Field/Email/Email.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js +26 -4
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +2 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +70 -31
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.css +3 -0
- package/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.min.css +1 -1
- package/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.scss +4 -0
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -1
- package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
- package/extensions/forms/Field/Selection/Selection.js +58 -50
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Selection/style/dnb-selection.css +6 -6
- package/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
- package/extensions/forms/Field/Selection/style/dnb-selection.scss +15 -10
- package/extensions/forms/Field/String/String.d.ts +1 -0
- package/extensions/forms/Field/String/String.js +13 -8
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +8 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -0
- package/extensions/forms/Form/Handler/Handler.js +2 -2
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +7 -8
- package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
- package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +6 -1
- package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +3 -3
- package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
- package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +2 -0
- package/extensions/forms/StepsLayout/NextButton/NextButton.js +3 -2
- package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
- package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +3 -2
- package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
- package/extensions/forms/StepsLayout/StepsLayout.js +1 -1
- package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +14 -17
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +15 -16
- package/extensions/forms/constants/countries.js +4 -2
- package/extensions/forms/constants/countries.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.d.ts +3 -0
- package/extensions/forms/hooks/useDataValue.js +99 -49
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +42 -39
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +12 -2
- package/extensions/forms/types.js +1 -1
- package/extensions/forms/types.js.map +1 -1
- package/extensions/payment-card/style/dnb-payment-card.css +0 -2
- package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/icons/browser.d.ts +3 -0
- package/icons/browser.js +3 -0
- package/icons/browser.js.map +1 -0
- package/icons/browser_medium.d.ts +3 -0
- package/icons/browser_medium.js +3 -0
- package/icons/browser_medium.js.map +1 -0
- package/icons/digipass_corporate.d.ts +3 -0
- package/icons/digipass_corporate.js +3 -0
- package/icons/digipass_corporate.js.map +1 -0
- package/icons/digipass_corporate_medium.d.ts +3 -0
- package/icons/digipass_corporate_medium.js +3 -0
- package/icons/digipass_corporate_medium.js.map +1 -0
- package/icons/digipass_private.d.ts +3 -0
- package/icons/digipass_private.js +3 -0
- package/icons/digipass_private.js.map +1 -0
- package/icons/digipass_private_medium.d.ts +3 -0
- package/icons/digipass_private_medium.js +3 -0
- package/icons/digipass_private_medium.js.map +1 -0
- package/icons/dnb/browser.d.ts +3 -0
- package/icons/dnb/browser.js +17 -0
- package/icons/dnb/browser.js.map +1 -0
- package/icons/dnb/browser_medium.d.ts +3 -0
- package/icons/dnb/browser_medium.js +17 -0
- package/icons/dnb/browser_medium.js.map +1 -0
- package/icons/dnb/coins_1.js +1 -1
- package/icons/dnb/coins_1.js.map +1 -1
- package/icons/dnb/coins_1_medium.js +1 -1
- package/icons/dnb/coins_1_medium.js.map +1 -1
- package/icons/dnb/digipass_corporate.d.ts +3 -0
- package/icons/dnb/digipass_corporate.js +17 -0
- package/icons/dnb/digipass_corporate.js.map +1 -0
- package/icons/dnb/digipass_corporate_medium.d.ts +3 -0
- package/icons/dnb/digipass_corporate_medium.js +17 -0
- package/icons/dnb/digipass_corporate_medium.js.map +1 -0
- package/icons/dnb/digipass_private.d.ts +3 -0
- package/icons/dnb/digipass_private.js +17 -0
- package/icons/dnb/digipass_private.js.map +1 -0
- package/icons/dnb/digipass_private_medium.d.ts +3 -0
- package/icons/dnb/digipass_private_medium.js +17 -0
- package/icons/dnb/digipass_private_medium.js.map +1 -0
- package/icons/dnb/envelope_open.d.ts +3 -0
- package/icons/dnb/envelope_open.js +18 -0
- package/icons/dnb/envelope_open.js.map +1 -0
- package/icons/dnb/envelope_open_medium.d.ts +3 -0
- package/icons/dnb/envelope_open_medium.js +18 -0
- package/icons/dnb/envelope_open_medium.js.map +1 -0
- package/icons/dnb/icons-meta.json +230 -20
- package/icons/dnb/icons-svg.lock +1272 -1064
- package/icons/dnb/index.d.ts +17 -1
- package/icons/dnb/index.js +17 -1
- package/icons/dnb/index.js.map +1 -1
- package/icons/dnb/laptop.d.ts +3 -0
- package/icons/dnb/laptop.js +18 -0
- package/icons/dnb/laptop.js.map +1 -0
- package/icons/dnb/laptop_medium.d.ts +3 -0
- package/icons/dnb/laptop_medium.js +18 -0
- package/icons/dnb/laptop_medium.js.map +1 -0
- package/icons/dnb/mobile.d.ts +3 -0
- package/icons/dnb/mobile.js +15 -0
- package/icons/dnb/mobile.js.map +1 -0
- package/icons/dnb/mobile_medium.d.ts +3 -0
- package/icons/dnb/mobile_medium.js +15 -0
- package/icons/dnb/mobile_medium.js.map +1 -0
- package/icons/dnb/money_left.d.ts +3 -0
- package/icons/dnb/money_left.js +17 -0
- package/icons/dnb/money_left.js.map +1 -0
- package/icons/dnb/money_left_medium.d.ts +3 -0
- package/icons/dnb/money_left_medium.js +18 -0
- package/icons/dnb/money_left_medium.js.map +1 -0
- package/icons/dnb/scan.js +5 -2
- package/icons/dnb/scan.js.map +1 -1
- package/icons/dnb/scan_medium.js +8 -12
- package/icons/dnb/scan_medium.js.map +1 -1
- package/icons/dnb/secondary_icons.d.ts +9 -1
- package/icons/dnb/secondary_icons.js +9 -1
- package/icons/dnb/secondary_icons.js.map +1 -1
- package/icons/dnb/secondary_icons_medium.d.ts +9 -1
- package/icons/dnb/secondary_icons_medium.js +9 -1
- package/icons/dnb/secondary_icons_medium.js.map +1 -1
- package/icons/dnb/teenager.d.ts +3 -0
- package/icons/dnb/teenager.js +18 -0
- package/icons/dnb/teenager.js.map +1 -0
- package/icons/dnb/teenager_medium.d.ts +3 -0
- package/icons/dnb/teenager_medium.js +18 -0
- package/icons/dnb/teenager_medium.js.map +1 -0
- package/icons/envelope_open.d.ts +3 -0
- package/icons/envelope_open.js +3 -0
- package/icons/envelope_open.js.map +1 -0
- package/icons/envelope_open_medium.d.ts +3 -0
- package/icons/envelope_open_medium.js +3 -0
- package/icons/envelope_open_medium.js.map +1 -0
- package/icons/index.d.ts +17 -1
- package/icons/index.js +17 -1
- package/icons/index.js.map +1 -1
- package/icons/laptop.d.ts +3 -0
- package/icons/laptop.js +3 -0
- package/icons/laptop.js.map +1 -0
- package/icons/laptop_medium.d.ts +3 -0
- package/icons/laptop_medium.js +3 -0
- package/icons/laptop_medium.js.map +1 -0
- package/icons/mobile.d.ts +3 -0
- package/icons/mobile.js +3 -0
- package/icons/mobile.js.map +1 -0
- package/icons/mobile_medium.d.ts +3 -0
- package/icons/mobile_medium.js +3 -0
- package/icons/mobile_medium.js.map +1 -0
- package/icons/money_left.d.ts +3 -0
- package/icons/money_left.js +3 -0
- package/icons/money_left.js.map +1 -0
- package/icons/money_left_medium.d.ts +3 -0
- package/icons/money_left_medium.js +3 -0
- package/icons/money_left_medium.js.map +1 -0
- package/icons/teenager.d.ts +3 -0
- package/icons/teenager.js +3 -0
- package/icons/teenager.js.map +1 -0
- package/icons/teenager_medium.d.ts +3 -0
- package/icons/teenager_medium.js +3 -0
- package/icons/teenager_medium.js.map +1 -0
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/component-helper.d.ts +1 -0
- package/shared/component-helper.js +3 -0
- package/shared/component-helper.js.map +1 -1
- package/style/dnb-ui-basis.css +3 -0
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +3 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +124 -179
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-core.css +4 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-elements.css +2 -4
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/dnb-ui-extensions.css +42 -41
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +42 -39
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +16 -16
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +207 -278
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +7 -7
- package/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-elements.css +16 -16
- package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +42 -41
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +42 -39
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -4
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +204 -392
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
- package/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +2 -4
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +42 -41
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +42 -39
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.css +16 -16
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +207 -277
- package/style/themes/theme-ui/ui-theme-components.min.css +8 -8
- package/style/themes/theme-ui/ui-theme-components.scss +1 -0
- package/style/themes/theme-ui/ui-theme-elements.css +16 -16
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +42 -41
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +42 -39
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +11 -25
- 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 +3 -3
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/icons/icons-meta.json +0 -3748
- package/es/icons/icons-meta.json +0 -3748
- package/icons/icons-meta.json +0 -3748
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-input{--input-font-size:var(--font-size-basis);--input-font-size--small:var(--font-size-basis);--input-font-size--medium:var(--font-size-basis);--input-font-size--large:var(--font-size-medium);--input-padding:1rem;--input-padding--small:1rem;--input-padding--medium:1rem;--input-padding--large:1rem;--input-height:2rem;--input-height--small:1.5rem;--input-height--medium:2.5rem;--input-height--large:3rem;--input-background-color:var(--color-white);align-items:center;display:inline-flex;font-size:var(--input-font-small);line-height:var(--input-height);text-align:left}.dnb-input__inner{display:inline-flex;flex-direction:column;width:auto}.dnb-input__shell{align-items:center;border:var(--input-border-width) solid var(--color-sea-green);display:flex;position:relative}.dnb-input__input{border:none;outline:none;position:relative;word-break:normal;z-index:2}.dnb-input__input[disabled]{opacity:1;-webkit-user-select:none;user-select:none}.dnb-input__input,.dnb-input__shell{border-radius:var(--input-border-radius);height:var(--input-height)}.dnb-input__input,.dnb-input__placeholder{padding-left:var(--input-padding);padding-right:var(--input-padding);width:100%}.dnb-input input.dnb-input__input,.dnb-input__input,.dnb-input__placeholder{background-color:transparent;color:inherit;font-size:var(--input-font-size);line-height:inherit;padding-bottom:0;padding-top:0}.dnb-input__placeholder{left:0;overflow:hidden;pointer-events:none;position:absolute;text-overflow:ellipsis;top:0;white-space:nowrap;z-index:1}.dnb-input input.dnb-input__input[type=file]{line-height:calc(var(--input-height) - 2px)}.dnb-input__input::-webkit-search-cancel-button{display:none}.dnb-input__input::-ms-clear{display:none}.dnb-input ::-webkit-file-upload-button{color:var(--color-sea-green);cursor:pointer;outline:none}.dnb-input ::-webkit-file-upload-button:active,.dnb-input ::-webkit-file-upload-button:hover{color:var(--color-emerald-green)}.dnb-input--has-clear-button .dnb-input__input,.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--has-submit-element .dnb-input__input,.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:calc(var(--input-padding)*2.5)}.dnb-input--password .dnb-input__input,.dnb-input--password .dnb-input__placeholder{margin-right:2.5rem;padding-right:0}.dnb-input--password .dnb-input__input::-ms-clear,.dnb-input--password .dnb-input__input::-ms-reveal,.dnb-input--password .dnb-input__placeholder::-ms-clear,.dnb-input--password .dnb-input__placeholder::-ms-reveal{display:none}.dnb-input--password .dnb-input__placeholder{padding-right:4rem}.dnb-input--password .dnb-input__input{font-family:var(--font-family-monospace)}.dnb-input__row{align-items:center;display:inline-flex}.dnb-input__input:autofill{box-shadow:0 0 0 var(--input-border-width) var(--input-border-color) var(--autofill-inset,inset),0 0 0 10em var(--input-background-color) inset}.dnb-input__suffix{color:inherit}.dnb-input__submit-element{line-height:var(--line-height-basis);margin-left:calc(0px - var(--input-height));z-index:3}.dnb-input__submit-element .dnb-button--input-button{height:var(--input-height);line-height:var(--input-height);width:var(--input-height)}.dnb-input__submit-button{align-self:center;position:relative}.dnb-input__submit-button__button{border-radius:0 var(--input-border-radius) var(--input-border-radius) 0}.dnb-input>.dnb-form-label{line-height:var(--line-height-basis)}@media screen and (max-width:40em){.dnb-input{flex-wrap:wrap}.dnb-input>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-input:not(.dnb-input--vertical)[class*=__status]{align-items:flex-start}.dnb-input:not(.dnb-input--vertical)[class*=__status]>.dnb-form-label{margin-top:.25rem}.dnb-input--small{line-height:var(--input-height--small)}.dnb-input--small .dnb-input__input,.dnb-input--small .dnb-input__shell{height:var(--input-height--small)}.dnb-input--small .dnb-input__input,.dnb-input--small .dnb-input__placeholder{font-size:var(--input-font-size--small);padding-left:var(--input-padding--small);padding-right:var(--input-padding--small)}.dnb-input--small .dnb-input__submit-element{margin-left:calc(0px - var(--input-height--small))}.dnb-input--small .dnb-input__submit-element .dnb-button--input-button{height:var(--input-height--small);line-height:var(--input-height--small);width:var(--input-height--small)}.dnb-input--small.dnb-input--has-clear-button .dnb-input__input,.dnb-input--small.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--small.dnb-input--has-submit-element .dnb-input__input,.dnb-input--small.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:calc(var(--input-padding--small)*2)}.dnb-input--medium{line-height:var(--input-height--medium)}.dnb-input--medium .dnb-input__input,.dnb-input--medium .dnb-input__shell{height:var(--input-height--medium)}.dnb-input--medium .dnb-input__input,.dnb-input--medium .dnb-input__placeholder{font-size:var(--input-font-size--medium);padding-left:var(--input-padding--medium);padding-right:var(--input-padding--medium)}.dnb-input--medium .dnb-input__submit-element{margin-left:calc(0px - var(--input-height--medium))}.dnb-input--medium .dnb-input__submit-element .dnb-button--input-button{height:var(--input-height--medium);line-height:var(--input-height--medium);width:var(--input-height--medium)}.dnb-input--medium.dnb-input--has-clear-button .dnb-input__input,.dnb-input--medium.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--medium.dnb-input--has-submit-element .dnb-input__input,.dnb-input--medium.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:calc(var(--input-padding--medium)*3)}.dnb-input--large{line-height:var(--input-height--large)}.dnb-input--large .dnb-input__input,.dnb-input--large .dnb-input__shell{height:var(--input-height--large)}.dnb-input--large .dnb-input__input,.dnb-input--large .dnb-input__placeholder{font-size:var(--input-font-size--large);padding-left:var(--input-padding--large);padding-right:var(--input-padding--large)}.dnb-input--large .dnb-input__submit-element{margin-left:calc(0px - var(--input-height--large))}.dnb-input--large .dnb-input__submit-element .dnb-button--input-button{height:var(--input-height--large);width:var(--input-height--large)}.dnb-input--large.dnb-input--has-clear-button .dnb-input__input,.dnb-input--large.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--large.dnb-input--has-submit-element .dnb-input__input,.dnb-input--large.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:calc(var(--input-padding--large)*3)}.dnb-input--large.dnb-input--has-clear-button:not(.dnb-input--has-submit-element) .dnb-input__submit-element{margin-left:calc(0px - var(--input-height--large) + .5rem)}.dnb-input__align--center .dnb-input__input,.dnb-input__align--center .dnb-input__placeholder{text-align:center}.dnb-input__align--right .dnb-input__input,.dnb-input__align--right .dnb-input__placeholder{text-align:right}.dnb-input--clear.dnb-input__submit-element{opacity:0;transition:opacity .2s ease-in-out}.dnb-input--clear.dnb-input__submit-element .dnb-button{border-radius:var(--button-border-radius);height:var(--input-height--small);width:var(--input-height--small)}.dnb-input--clear.dnb-input__submit-element .dnb-button .dnb-button__icon{margin:auto}html:not([data-whatintent=touch]) .dnb-input--clear.dnb-input__submit-element .dnb-button:not(.dnb-button--has-text):hover[disabled]{cursor:default}.dnb-input--small .dnb-input--clear.dnb-input__submit-element .dnb-button{height:1rem;width:1rem}.dnb-input--large .dnb-input--clear.dnb-input__submit-element .dnb-button,.dnb-input--medium .dnb-input--clear.dnb-input__submit-element .dnb-button{height:var(--input-height--small);width:var(--input-height--small)}.dnb-input[data-has-content=true] .dnb-input--clear{opacity:1}.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:2.5rem}.dnb-input--small.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:2rem}.dnb-input--medium.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:3rem}.dnb-input--large.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:3.5rem}.dnb-input__inner>.dnb-form-status{margin-top:.5rem;order:2}.dnb-input--vertical{align-items:flex-start;display:flex;flex-direction:column}.dnb-input--stretch{display:flex;flex-grow:1}.dnb-input--stretch .dnb-input__inner{flex-grow:1}.dnb-input--stretch .dnb-input__inner,.dnb-input--stretch .dnb-input__shell{width:100%}.dnb-input--stretch .dnb-form-label+.dnb-input__inner{width:auto}.dnb-form-row--horizontal .dnb-input--stretch,.dnb-input--vertical.dnb-input--stretch .dnb-input__inner{width:100%}.dnb-input__icon{bottom:0;left:1rem;margin:auto;order:0;position:absolute;right:auto;top:0;z-index:2}.dnb-input--icon-position-right .dnb-input__icon{left:auto;order:1;right:1rem}.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__placeholder{padding-left:2.5rem}.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__placeholder{padding-right:2.5rem}.dnb-input--icon-size-medium.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-size-medium.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__placeholder{padding-left:3rem}.dnb-input--icon-size-medium.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-size-medium.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__placeholder{padding-right:3rem}html[data-visual-test] .dnb-input__input{caret-color:var(--color-white)}.dnb-input[data-has-content=false] .dnb-input__input:focus:autofill{--autofill-inset:none}@media screen and (max-width:40em){.dnb-responsive-component .dnb-input{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:.5rem}.dnb-responsive-component .dnb-input__row{align-items:flex-start}.dnb-responsive-component .dnb-input>.dnb-form-label{margin-bottom:.5rem}}
|
|
1
|
+
.dnb-input{--input-font-size:var(--font-size-basis);--input-font-size--small:var(--font-size-basis);--input-font-size--medium:var(--font-size-basis);--input-font-size--large:var(--font-size-medium);--input-padding:1rem;--input-padding--small:1rem;--input-padding--medium:1rem;--input-padding--large:1rem;--input-height:2rem;--input-height--small:1.5rem;--input-height--medium:2.5rem;--input-height--large:3rem;--input-background-color:var(--color-white);align-items:center;display:inline-flex;font-size:var(--input-font-small);line-height:var(--input-height);text-align:left}.dnb-input__inner{display:inline-flex;flex-direction:column;width:auto}.dnb-input__shell{align-items:center;border:var(--input-border-width) solid var(--color-sea-green);display:flex;position:relative}.dnb-input__input{border:none;outline:none;position:relative;word-break:normal;z-index:2}.dnb-input__input[disabled]{opacity:1;-webkit-user-select:none;user-select:none}.dnb-input__input,.dnb-input__shell{border-radius:var(--input-border-radius);height:var(--input-height)}.dnb-input__input,.dnb-input__placeholder{padding-left:var(--input-padding);padding-right:var(--input-padding);width:100%}.dnb-input input.dnb-input__input,.dnb-input__input,.dnb-input__placeholder{background-color:transparent;color:inherit;font-size:var(--input-font-size);line-height:inherit;padding-bottom:0;padding-top:0}.dnb-input__placeholder{left:0;overflow:hidden;pointer-events:none;position:absolute;text-overflow:ellipsis;top:0;white-space:nowrap;z-index:1}.dnb-input input.dnb-input__input[type=file]{line-height:calc(var(--input-height) - 2px)}.dnb-input__input::-webkit-search-cancel-button{display:none}.dnb-input__input::-ms-clear{display:none}.dnb-input ::-webkit-file-upload-button{color:var(--color-sea-green);cursor:pointer;outline:none}.dnb-input ::-webkit-file-upload-button:active,.dnb-input ::-webkit-file-upload-button:hover{color:var(--color-emerald-green)}.dnb-input--has-clear-button .dnb-input__input,.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--has-submit-element .dnb-input__input,.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:calc(var(--input-padding)*2.5)}.dnb-input--password .dnb-input__input,.dnb-input--password .dnb-input__placeholder{margin-right:2.5rem;padding-right:0}.dnb-input--password .dnb-input__input::-ms-clear,.dnb-input--password .dnb-input__input::-ms-reveal,.dnb-input--password .dnb-input__placeholder::-ms-clear,.dnb-input--password .dnb-input__placeholder::-ms-reveal{display:none}.dnb-input--password .dnb-input__placeholder{padding-right:4rem}.dnb-input--password .dnb-input__input{font-family:var(--font-family-monospace)}.dnb-input__row{align-items:center;display:inline-flex}.dnb-input__input:-webkit-autofill{box-shadow:0 0 0 var(--input-border-width) var(--input-border-color) var(--autofill-inset,inset),0 0 0 10em var(--input-background-color) inset}.dnb-input__input:autofill{box-shadow:0 0 0 var(--input-border-width) var(--input-border-color) var(--autofill-inset,inset),0 0 0 10em var(--input-background-color) inset}.dnb-input__suffix{color:inherit}.dnb-input__submit-element{line-height:var(--line-height-basis);margin-left:calc(0px - var(--input-height));z-index:3}.dnb-input__submit-element .dnb-button--input-button{height:var(--input-height);line-height:var(--input-height);width:var(--input-height)}.dnb-input__submit-button{align-self:center;position:relative}.dnb-input__submit-button__button{border-radius:0 var(--input-border-radius) var(--input-border-radius) 0}.dnb-input>.dnb-form-label{line-height:var(--line-height-basis)}@media screen and (max-width:40em){.dnb-input{flex-wrap:wrap}.dnb-input>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-input:not(.dnb-input--vertical)[class*=__status]{align-items:flex-start}.dnb-input:not(.dnb-input--vertical)[class*=__status]>.dnb-form-label{margin-top:.25rem}.dnb-input--small{line-height:var(--input-height--small)}.dnb-input--small .dnb-input__input,.dnb-input--small .dnb-input__shell{height:var(--input-height--small)}.dnb-input--small .dnb-input__input,.dnb-input--small .dnb-input__placeholder{font-size:var(--input-font-size--small);padding-left:var(--input-padding--small);padding-right:var(--input-padding--small)}.dnb-input--small .dnb-input__submit-element{margin-left:calc(0px - var(--input-height--small))}.dnb-input--small .dnb-input__submit-element .dnb-button--input-button{height:var(--input-height--small);line-height:var(--input-height--small);width:var(--input-height--small)}.dnb-input--small.dnb-input--has-clear-button .dnb-input__input,.dnb-input--small.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--small.dnb-input--has-submit-element .dnb-input__input,.dnb-input--small.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:calc(var(--input-padding--small)*2)}.dnb-input--medium{line-height:var(--input-height--medium)}.dnb-input--medium .dnb-input__input,.dnb-input--medium .dnb-input__shell{height:var(--input-height--medium)}.dnb-input--medium .dnb-input__input,.dnb-input--medium .dnb-input__placeholder{font-size:var(--input-font-size--medium);padding-left:var(--input-padding--medium);padding-right:var(--input-padding--medium)}.dnb-input--medium .dnb-input__submit-element{margin-left:calc(0px - var(--input-height--medium))}.dnb-input--medium .dnb-input__submit-element .dnb-button--input-button{height:var(--input-height--medium);line-height:var(--input-height--medium);width:var(--input-height--medium)}.dnb-input--medium.dnb-input--has-clear-button .dnb-input__input,.dnb-input--medium.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--medium.dnb-input--has-submit-element .dnb-input__input,.dnb-input--medium.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:calc(var(--input-padding--medium)*3)}.dnb-input--large{line-height:var(--input-height--large)}.dnb-input--large .dnb-input__input,.dnb-input--large .dnb-input__shell{height:var(--input-height--large)}.dnb-input--large .dnb-input__input,.dnb-input--large .dnb-input__placeholder{font-size:var(--input-font-size--large);padding-left:var(--input-padding--large);padding-right:var(--input-padding--large)}.dnb-input--large .dnb-input__submit-element{margin-left:calc(0px - var(--input-height--large))}.dnb-input--large .dnb-input__submit-element .dnb-button--input-button{height:var(--input-height--large);width:var(--input-height--large)}.dnb-input--large.dnb-input--has-clear-button .dnb-input__input,.dnb-input--large.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--large.dnb-input--has-submit-element .dnb-input__input,.dnb-input--large.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:calc(var(--input-padding--large)*3)}.dnb-input--large.dnb-input--has-clear-button:not(.dnb-input--has-submit-element) .dnb-input__submit-element{margin-left:calc(0px - var(--input-height--large) + .5rem)}.dnb-input__align--center .dnb-input__input,.dnb-input__align--center .dnb-input__placeholder{text-align:center}.dnb-input__align--right .dnb-input__input,.dnb-input__align--right .dnb-input__placeholder{text-align:right}.dnb-input--clear.dnb-input__submit-element{opacity:0;transition:opacity .2s ease-in-out}.dnb-input--clear.dnb-input__submit-element .dnb-button{border-radius:var(--button-border-radius);height:var(--input-height--small);width:var(--input-height--small)}.dnb-input--clear.dnb-input__submit-element .dnb-button .dnb-button__icon{margin:auto}html:not([data-whatintent=touch]) .dnb-input--clear.dnb-input__submit-element .dnb-button:not(.dnb-button--has-text):hover[disabled]{cursor:default}.dnb-input--small .dnb-input--clear.dnb-input__submit-element .dnb-button{height:1rem;width:1rem}.dnb-input--large .dnb-input--clear.dnb-input__submit-element .dnb-button,.dnb-input--medium .dnb-input--clear.dnb-input__submit-element .dnb-button{height:var(--input-height--small);width:var(--input-height--small)}.dnb-input[data-has-content=true] .dnb-input--clear{opacity:1}.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:2.5rem}.dnb-input--small.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:2rem}.dnb-input--medium.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:3rem}.dnb-input--large.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:3.5rem}.dnb-input__inner>.dnb-form-status{margin-top:.5rem;order:2}.dnb-input--vertical{align-items:flex-start;display:flex;flex-direction:column}.dnb-input--stretch{display:flex;flex-grow:1}.dnb-input--stretch .dnb-input__inner{flex-grow:1}.dnb-input--stretch .dnb-input__inner,.dnb-input--stretch .dnb-input__shell{width:100%}.dnb-input--stretch .dnb-form-label+.dnb-input__inner{width:auto}.dnb-form-row--horizontal .dnb-input--stretch,.dnb-input--vertical.dnb-input--stretch .dnb-input__inner{width:100%}.dnb-input__icon{bottom:0;left:1rem;margin:auto;order:0;position:absolute;right:auto;top:0;z-index:2}.dnb-input--icon-position-right .dnb-input__icon{left:auto;order:1;right:1rem}.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__placeholder{padding-left:2.5rem}.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__placeholder{padding-right:2.5rem}.dnb-input--icon-size-medium.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-size-medium.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__placeholder{padding-left:3rem}.dnb-input--icon-size-medium.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-size-medium.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__placeholder{padding-right:3rem}html[data-visual-test] .dnb-input__input{caret-color:var(--color-white)}.dnb-input[data-has-content=false] .dnb-input__input:focus:-webkit-autofill{--autofill-inset:none}.dnb-input[data-has-content=false] .dnb-input__input:focus:autofill{--autofill-inset:none}@media screen and (max-width:40em){.dnb-responsive-component .dnb-input{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:.5rem}.dnb-responsive-component .dnb-input__row{align-items:flex-start}.dnb-responsive-component .dnb-input>.dnb-form-label{margin-bottom:.5rem}}
|
|
@@ -84,19 +84,10 @@ html[data-whatinput=keyboard] .dnb-input:not([data-input-state=disabled])[data-i
|
|
|
84
84
|
--button-secondary-color--hover: var(--sb-color-white);
|
|
85
85
|
--button-secondary-color--active: var(--sb-color-red);
|
|
86
86
|
}
|
|
87
|
-
.dnb-input:not([data-input-state=disabled]) .dnb-input__submit-button__button:not(.focus-visible) {
|
|
88
|
-
background-color: transparent;
|
|
89
|
-
box-shadow: none;
|
|
90
|
-
}
|
|
91
87
|
.dnb-input:not([data-input-state=disabled]) .dnb-input__submit-button__button:not(:focus-visible) {
|
|
92
88
|
background-color: transparent;
|
|
93
89
|
box-shadow: none;
|
|
94
90
|
}
|
|
95
|
-
.dnb-input:not([data-input-state=disabled]) .dnb-input__submit-button__button:not(.focus-visible):hover, .dnb-input:not([data-input-state=disabled]) .dnb-input__submit-button__button:not(.focus-visible):active {
|
|
96
|
-
border: var(--input-button-border-width) solid var(--input-button-border-color);
|
|
97
|
-
border-left: none;
|
|
98
|
-
padding-left: var(--input-button-border-width);
|
|
99
|
-
}
|
|
100
91
|
.dnb-input:not([data-input-state=disabled]) .dnb-input__submit-button__button:not(:focus-visible):hover, .dnb-input:not([data-input-state=disabled]) .dnb-input__submit-button__button:not(:focus-visible):active {
|
|
101
92
|
border: var(--input-button-border-width) solid var(--input-button-border-color);
|
|
102
93
|
border-left: none;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-input{--input-height:2.5rem;--input-button-border-color:var(--input-border-color);--input-button-border-width:var(--input-border-width);--input-border-radius:0.5rem;--input-border-width:0.0625rem;--input-color:var(--input-color--default);--input-color--default:var(--sb-color-text);--input-color--active:var(--sb-color-text);--input-border-color:var(--sb-color-gray-dark-2);--input-border-color--hover:var(--sb-color-violet);--input-border-color--active:var(--sb-color-violet);--input-border-color--focus:var(--focus-ring-color)}.dnb-input__shell{--border-color:var(--input-border-color);--border-width:var(--input-border-width);background-color:var(--input-background-color);border:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color);color:var(--input-color);transition:border-radius .25s ease-out}.dnb-input__submit-button__button{--button-secondary-color:var(--sb-color-violet);--button-secondary-color--active:var(--sb-color-violet)}.dnb-input__placeholder{color:var(--sb-color-gray-dark-3)}.dnb-input[data-input-state=disabled]{--input-border-color:var(--sb-color-gray)}.dnb-input[data-input-state=disabled] .dnb-input__shell{-webkit-text-fill-color:currentcolor;background-color:var(--sb-color-gray-light)}.dnb-input[data-input-state=disabled] .dnb-input__shell,.dnb-input[data-input-state=disabled] .dnb-input__shell .dnb-icon,.dnb-input[data-input-state=disabled] .dnb-input__shell .dnb-input__placeholder{color:var(--sb-color-gray-dark-2)}.dnb-input:not([data-input-state=disabled])[data-input-state=focus]{--input-color:var(--input-color--active);--input-border-radius:1.5rem;--input-border-color:var(--input-border-color--active)}html[data-whatinput=keyboard] .dnb-input:not([data-input-state=disabled])[data-input-state=focus]{--input-button-border-color:var(--input-border-color--focus);--input-button-border-width:var(--focus-ring-width)}.dnb-input:not([data-input-state=disabled])[data-input-state=focus] .dnb-input__shell{outline:none}html[data-whatinput=keyboard] .dnb-input:not([data-input-state=disabled])[data-input-state=focus] .dnb-input__shell{--border-color:var(--input-border-color--focus);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-input:not([data-input-state=disabled]) .dnb-form-label:hover+.dnb-input__inner .dnb-input__shell,.dnb-input:not([data-input-state=disabled]) .dnb-input__shell:hover{--input-border-color:var(--input-border-color--hover);--input-border-width:0.125rem}.dnb-input:not([data-input-state=disabled]).dnb-input__status--error{--input-border-color:var(--sb-color-red);--input-color--default:var(--sb-color-red);--input-color--active:var(--sb-color-text);--input-border-color--hover:var(--sb-color-red);--input-border-color--active:var(--sb-color-red);--input-border-color--focus:var(--sb-color-red)}.dnb-input:not([data-input-state=disabled]).dnb-input__status--error .dnb-input__submit-button__button{--button-secondary-background--hover:var(--sb-color-red);--button-secondary-color--hover:var(--sb-color-white);--button-secondary-color--active:var(--sb-color-red)}.dnb-input:not([data-input-state=disabled]) .dnb-input__submit-button__button:not(
|
|
1
|
+
.dnb-input{--input-height:2.5rem;--input-button-border-color:var(--input-border-color);--input-button-border-width:var(--input-border-width);--input-border-radius:0.5rem;--input-border-width:0.0625rem;--input-color:var(--input-color--default);--input-color--default:var(--sb-color-text);--input-color--active:var(--sb-color-text);--input-border-color:var(--sb-color-gray-dark-2);--input-border-color--hover:var(--sb-color-violet);--input-border-color--active:var(--sb-color-violet);--input-border-color--focus:var(--focus-ring-color)}.dnb-input__shell{--border-color:var(--input-border-color);--border-width:var(--input-border-width);background-color:var(--input-background-color);border:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color);color:var(--input-color);transition:border-radius .25s ease-out}.dnb-input__submit-button__button{--button-secondary-color:var(--sb-color-violet);--button-secondary-color--active:var(--sb-color-violet)}.dnb-input__placeholder{color:var(--sb-color-gray-dark-3)}.dnb-input[data-input-state=disabled]{--input-border-color:var(--sb-color-gray)}.dnb-input[data-input-state=disabled] .dnb-input__shell{-webkit-text-fill-color:currentcolor;background-color:var(--sb-color-gray-light)}.dnb-input[data-input-state=disabled] .dnb-input__shell,.dnb-input[data-input-state=disabled] .dnb-input__shell .dnb-icon,.dnb-input[data-input-state=disabled] .dnb-input__shell .dnb-input__placeholder{color:var(--sb-color-gray-dark-2)}.dnb-input:not([data-input-state=disabled])[data-input-state=focus]{--input-color:var(--input-color--active);--input-border-radius:1.5rem;--input-border-color:var(--input-border-color--active)}html[data-whatinput=keyboard] .dnb-input:not([data-input-state=disabled])[data-input-state=focus]{--input-button-border-color:var(--input-border-color--focus);--input-button-border-width:var(--focus-ring-width)}.dnb-input:not([data-input-state=disabled])[data-input-state=focus] .dnb-input__shell{outline:none}html[data-whatinput=keyboard] .dnb-input:not([data-input-state=disabled])[data-input-state=focus] .dnb-input__shell{--border-color:var(--input-border-color--focus);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-input:not([data-input-state=disabled]) .dnb-form-label:hover+.dnb-input__inner .dnb-input__shell,.dnb-input:not([data-input-state=disabled]) .dnb-input__shell:hover{--input-border-color:var(--input-border-color--hover);--input-border-width:0.125rem}.dnb-input:not([data-input-state=disabled]).dnb-input__status--error{--input-border-color:var(--sb-color-red);--input-color--default:var(--sb-color-red);--input-color--active:var(--sb-color-text);--input-border-color--hover:var(--sb-color-red);--input-border-color--active:var(--sb-color-red);--input-border-color--focus:var(--sb-color-red)}.dnb-input:not([data-input-state=disabled]).dnb-input__status--error .dnb-input__submit-button__button{--button-secondary-background--hover:var(--sb-color-red);--button-secondary-color--hover:var(--sb-color-white);--button-secondary-color--active:var(--sb-color-red)}.dnb-input:not([data-input-state=disabled]) .dnb-input__submit-button__button:not(:focus-visible){background-color:transparent;box-shadow:none}.dnb-input:not([data-input-state=disabled]) .dnb-input__submit-button__button:not(:focus-visible):active,.dnb-input:not([data-input-state=disabled]) .dnb-input__submit-button__button:not(:focus-visible):hover{border:var(--input-button-border-width) solid var(--input-button-border-color);border-left:none;padding-left:var(--input-button-border-width)}
|
|
@@ -13,7 +13,7 @@ import TextMask from './TextMask';
|
|
|
13
13
|
import createNumberMask from './addons/createNumberMask';
|
|
14
14
|
import keycode from 'keycode';
|
|
15
15
|
import InputMaskedContext from './InputMaskedContext';
|
|
16
|
-
import { isRequestingLocaleSupport, isRequestingNumberMask, correctNumberValue, handlePercentMask, handleCurrencyMask, handleNumberMask, correctCaretPosition,
|
|
16
|
+
import { isRequestingLocaleSupport, isRequestingNumberMask, correctNumberValue, handlePercentMask, handleCurrencyMask, handleNumberMask, correctCaretPosition, getSoftKeyboardAttributes, handleThousandsSeparator, handleDecimalSeparator, fromJSON, invisibleSpace } from './InputMaskedUtils';
|
|
17
17
|
export const useFilteredProps = () => {
|
|
18
18
|
const {
|
|
19
19
|
props
|
|
@@ -157,9 +157,6 @@ export const useInputElement = () => {
|
|
|
157
157
|
}));
|
|
158
158
|
const InputElement = (params, innerRef) => {
|
|
159
159
|
innerRef.current = ref.current;
|
|
160
|
-
if (!params.inputMode) {
|
|
161
|
-
params.inputMode = getInputModeFromMask(mask);
|
|
162
|
-
}
|
|
163
160
|
return React.createElement(TextMask, _extends({
|
|
164
161
|
inputRef: ref,
|
|
165
162
|
inputElement: inputElementRef.current,
|
|
@@ -169,7 +166,7 @@ export const useInputElement = () => {
|
|
|
169
166
|
guide: showGuide,
|
|
170
167
|
keepCharPositions: keepCharPositions,
|
|
171
168
|
placeholderChar: placeholderChar
|
|
172
|
-
}, params, {
|
|
169
|
+
}, getSoftKeyboardAttributes(mask), params, {
|
|
173
170
|
className: classnames(params.className, showMask && showGuide && placeholderChar && placeholderChar !== invisibleSpace && 'dnb-input-masked--guide')
|
|
174
171
|
}));
|
|
175
172
|
};
|
|
@@ -286,7 +283,10 @@ const useCallEvent = _ref2 => {
|
|
|
286
283
|
setLocalValue(value);
|
|
287
284
|
}
|
|
288
285
|
if ((name === 'on_focus' || name === 'on_mouse_up') && !props.selectall) {
|
|
289
|
-
correctCaretPosition(event.target, maskParams, props);
|
|
286
|
+
event.target.runCorrectCaretPosition = () => correctCaretPosition(event.target, maskParams, props);
|
|
287
|
+
if (!event.target.__getCorrectCaretPosition) {
|
|
288
|
+
event.target.runCorrectCaretPosition();
|
|
289
|
+
}
|
|
290
290
|
}
|
|
291
291
|
return result;
|
|
292
292
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputMaskedHooks.js","names":["React","classnames","cleanNumber","getCurrencySymbol","isTrue","dispatchCustomElementEvent","extendPropsWithContext","safeSetSelection","TextMask","createNumberMask","keycode","InputMaskedContext","isRequestingLocaleSupport","isRequestingNumberMask","correctNumberValue","handlePercentMask","handleCurrencyMask","handleNumberMask","correctCaretPosition","getInputModeFromMask","handleThousandsSeparator","handleDecimalSeparator","fromJSON","invisibleSpace","useFilteredProps","props","useContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","_objectWithoutProperties","_excluded","htmlAttributes","Object","freeze","useLocale","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","useEffect","value","useNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","placeholderChar","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","useLayoutEffect","current","inputElementRef","createElement","InputElement","params","innerRef","inputMode","_extends","inputRef","inputElement","guide","className","useEventMapping","_ref","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","_ref2","isNumberMask","decimalSeparators","isUnidentified","_ref3","name","target","selStart","selectionStart","keyCode","which","data","disallowLeadingZeroes","replace","test","testValue","slice","length","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","indexOf","thousandsSeparatorSymbol","num","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","Number","cleanedValue","String","charAt","result","selectall","_currency_mask","_objectSpread","currency"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n cleanNumber,\n getCurrencySymbol,\n} from '../number-format/NumberUtils'\nimport {\n isTrue,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nimport TextMask from './TextMask'\nimport createNumberMask from './addons/createNumberMask'\nimport keycode from 'keycode'\nimport InputMaskedContext from './InputMaskedContext'\n\nimport {\n isRequestingLocaleSupport,\n isRequestingNumberMask,\n correctNumberValue,\n handlePercentMask,\n handleCurrencyMask,\n handleNumberMask,\n correctCaretPosition,\n getInputModeFromMask,\n handleThousandsSeparator,\n handleDecimalSeparator,\n fromJSON,\n invisibleSpace,\n} from './InputMaskedUtils'\n\n/**\n * Takes all component properties and filters out all internal used properties\n *\n * @returns object {props, htmlAttributes}\n */\nexport const useFilteredProps = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n mask, // eslint-disable-line\n number_mask, // eslint-disable-line\n currency_mask, // eslint-disable-line\n number_format, // eslint-disable-line\n mask_options, // eslint-disable-line\n as_currency, // eslint-disable-line\n as_number, // eslint-disable-line\n as_percent, // eslint-disable-line\n locale, // eslint-disable-line\n show_mask, // eslint-disable-line\n show_guide, // eslint-disable-line\n pipe, // eslint-disable-line\n keep_char_positions, // eslint-disable-line\n placeholder_char, // eslint-disable-line\n\n // Get get rest of possible attributes\n ...attributes\n } = props\n\n return { props, htmlAttributes: Object.freeze(attributes) }\n}\n\n/**\n * Returns locale from either component or context\n *\n * @returns string\n */\nexport const useLocale = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n\n let { locale } = props\n if (!locale && context?.locale) {\n locale = context.locale\n }\n\n return locale\n}\n\n/**\n * Handle internal value state\n *\n * It handles both the value state given as a prop form outside,\n * along with the current written and internal value.\n *\n * @returns object with internal value state and state setter\n */\nexport const useLocalValue = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n const maskParams = useNumberMaskParams() || {}\n const locale = useLocale()\n\n const [localValue, setLocalValue] = React.useState(() =>\n correctNumberValue({\n locale,\n props,\n maskParams,\n })\n )\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n React.useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [ref.current])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n const InputElement = (params, innerRef) => {\n // Set ref for Eufemia input\n innerRef.current = ref.current\n\n // Set \"inputMode\"\n if (!params.inputMode) {\n params.inputMode = getInputModeFromMask(mask)\n }\n\n return (\n <TextMask\n inputRef={ref}\n inputElement={inputElementRef.current}\n pipe={pipe}\n mask={mask || []}\n showMask={showMask}\n guide={showGuide}\n keepCharPositions={keepCharPositions}\n placeholderChar={placeholderChar}\n {...params}\n className={classnames(\n params.className,\n showMask &&\n showGuide &&\n placeholderChar &&\n placeholderChar !== invisibleSpace &&\n 'dnb-input-masked--guide' // will use --font-family-monospace\n )}\n />\n )\n }\n return InputElement\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns object of events to handle\n */\nexport const useEventMapping = ({ setLocalValue }) => {\n const callEvent = useCallEvent({ setLocalValue })\n\n return {\n onBeforeInput: (event) => callEvent({ event }, 'on_before_input'),\n onFocus: (params) => callEvent(params, 'on_focus'),\n onBlur: (params) => callEvent(params, 'on_blur'),\n onMouseUp: (event) => callEvent({ event }, 'on_mouse_up'),\n onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const { props } = React.useContext(InputMaskedContext)\n const maskParams = useMaskParams()\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'on_before_input' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // Prevent entering a leading zero\n if (\n name === 'on_key_down' &&\n !isUnidentified &&\n maskParams?.disallowLeadingZeroes &&\n (keyCode === '0' ||\n keyCode === 'numpad 0' ||\n (value.replace(/[^\\d]/g, '') === '' &&\n decimalSeparators.test(keyCode)))\n ) {\n const testValue = (\n value.slice(0, selStart) +\n '0' +\n value.slice(selStart + 1, value.length)\n ).replace(/[^\\d]/g, '')\n\n if (/^0/.test(testValue)) {\n event.preventDefault()\n }\n }\n\n if (\n name === 'on_key_down' &&\n isNumberMask &&\n !isUnidentified &&\n maskParams?.decimalSymbol\n ) {\n const hasDecimalSymbol = value.includes(maskParams.decimalSymbol)\n const allowedDecimals =\n maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false\n\n if (!allowedDecimals && decimalSeparators.test(keyCode)) {\n event.preventDefault()\n }\n\n const charAtSelection = value.slice(selStart, selStart + 1)\n\n if (allowedDecimals) {\n // if we have already a decimal ...\n if (hasDecimalSymbol && decimalSeparators.test(keyCode)) {\n // ... we set the cursor on after the decimalSeparators\n if (decimalSeparators.test(charAtSelection)) {\n const index = value.indexOf(maskParams.decimalSymbol)\n if (index > -1) {\n safeSetSelection(event.target, index + 1)\n }\n }\n\n // ... we do not allow to type another\n event.preventDefault()\n }\n\n // replace other decimal\n else if (\n !hasDecimalSymbol &&\n keyCode !== maskParams.decimalSymbol &&\n decimalSeparators.test(keyCode)\n ) {\n value = value.slice(0, selStart)\n setLocalValue(value + maskParams.decimalSymbol)\n event.target.value = value + maskParams.decimalSymbol\n event.preventDefault()\n }\n }\n\n // move cursor to right if key is delete and char at selection is thousand separator\n if (\n keyCode === 'delete' &&\n charAtSelection === (maskParams.thousandsSeparatorSymbol || ' ')\n ) {\n safeSetSelection(event.target, selStart + 1)\n event.preventDefault()\n }\n }\n\n let num = cleanNumber(value, {\n prefix: maskParams.prefix,\n suffix: maskParams.suffix,\n decimalSeparator: maskParams.decimalSymbol || ',',\n thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' ',\n })\n\n // We don't want to return NaN, so we set it to 0\n if (num === '-') {\n num = -0\n }\n\n const numberValue = Number(num)\n\n // Return '' (empty string) when the user has entered something invalid\n const cleanedValue =\n numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num\n\n if (name === 'on_change' && numberValue === 0) {\n correctCaretPosition(event.target, maskParams, props)\n }\n\n const result = dispatchCustomElementEvent(props, name, {\n event,\n value,\n numberValue,\n cleanedValue,\n })\n\n if (name === 'on_change') {\n setLocalValue(value)\n }\n\n if (\n (name === 'on_focus' || name === 'on_mouse_up') &&\n !props.selectall\n ) {\n // Also correct here, because of additional click inside the field\n correctCaretPosition(event.target, maskParams, props)\n }\n\n return result\n }\n\n return callEvent\n}\n\n/**\n * Returns number mask parameters if requested by the component properties\n *\n * @returns object of number mask parameter\n */\nconst useNumberMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n const locale = useLocale()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n\n const { as_number, as_percent, as_currency } = props\n\n mask_options = fromJSON(mask_options)\n number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask)\n currency_mask = isTrue(currency_mask)\n ? {}\n : fromJSON(currency_mask, {\n currency: currency_mask,\n })\n if (!currency_mask?.currency) {\n delete currency_mask.currency\n }\n\n if (isRequestingLocaleSupport(props)) {\n const thousandsSeparatorSymbol = handleThousandsSeparator(locale)\n const decimalSymbol = handleDecimalSeparator(locale)\n\n if (isTrue(as_number) || isTrue(as_percent)) {\n number_mask = extendPropsWithContext(number_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n })\n } else if (as_currency) {\n currency_mask = extendPropsWithContext(currency_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null\n ),\n })\n }\n }\n\n let maskParams = null\n\n if (number_mask) {\n maskParams = handleNumberMask({\n mask_options,\n number_mask,\n })\n\n if (isTrue(as_percent)) {\n maskParams = handlePercentMask({ props, locale, maskParams })\n }\n } else if (currency_mask) {\n maskParams = handleCurrencyMask({\n mask_options,\n currency_mask,\n })\n }\n\n return maskParams\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InputMaskedHooks.js","names":["React","classnames","cleanNumber","getCurrencySymbol","isTrue","dispatchCustomElementEvent","extendPropsWithContext","safeSetSelection","TextMask","createNumberMask","keycode","InputMaskedContext","isRequestingLocaleSupport","isRequestingNumberMask","correctNumberValue","handlePercentMask","handleCurrencyMask","handleNumberMask","correctCaretPosition","getSoftKeyboardAttributes","handleThousandsSeparator","handleDecimalSeparator","fromJSON","invisibleSpace","useFilteredProps","props","useContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","_objectWithoutProperties","_excluded","htmlAttributes","Object","freeze","useLocale","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","useEffect","value","useNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","placeholderChar","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","useLayoutEffect","current","inputElementRef","createElement","InputElement","params","innerRef","_extends","inputRef","inputElement","guide","className","useEventMapping","_ref","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","_ref2","isNumberMask","decimalSeparators","isUnidentified","_ref3","name","target","selStart","selectionStart","keyCode","which","data","disallowLeadingZeroes","replace","test","testValue","slice","length","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","indexOf","thousandsSeparatorSymbol","num","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","Number","cleanedValue","String","charAt","result","selectall","runCorrectCaretPosition","__getCorrectCaretPosition","_currency_mask","_objectSpread","currency"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n cleanNumber,\n getCurrencySymbol,\n} from '../number-format/NumberUtils'\nimport {\n isTrue,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nimport TextMask from './TextMask'\nimport createNumberMask from './addons/createNumberMask'\nimport keycode from 'keycode'\nimport InputMaskedContext from './InputMaskedContext'\n\nimport {\n isRequestingLocaleSupport,\n isRequestingNumberMask,\n correctNumberValue,\n handlePercentMask,\n handleCurrencyMask,\n handleNumberMask,\n correctCaretPosition,\n getSoftKeyboardAttributes,\n handleThousandsSeparator,\n handleDecimalSeparator,\n fromJSON,\n invisibleSpace,\n} from './InputMaskedUtils'\n\n/**\n * Takes all component properties and filters out all internal used properties\n *\n * @returns object {props, htmlAttributes}\n */\nexport const useFilteredProps = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n mask, // eslint-disable-line\n number_mask, // eslint-disable-line\n currency_mask, // eslint-disable-line\n number_format, // eslint-disable-line\n mask_options, // eslint-disable-line\n as_currency, // eslint-disable-line\n as_number, // eslint-disable-line\n as_percent, // eslint-disable-line\n locale, // eslint-disable-line\n show_mask, // eslint-disable-line\n show_guide, // eslint-disable-line\n pipe, // eslint-disable-line\n keep_char_positions, // eslint-disable-line\n placeholder_char, // eslint-disable-line\n\n // Get get rest of possible attributes\n ...attributes\n } = props\n\n return { props, htmlAttributes: Object.freeze(attributes) }\n}\n\n/**\n * Returns locale from either component or context\n *\n * @returns string\n */\nexport const useLocale = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n\n let { locale } = props\n if (!locale && context?.locale) {\n locale = context.locale\n }\n\n return locale\n}\n\n/**\n * Handle internal value state\n *\n * It handles both the value state given as a prop form outside,\n * along with the current written and internal value.\n *\n * @returns object with internal value state and state setter\n */\nexport const useLocalValue = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n const maskParams = useNumberMaskParams() || {}\n const locale = useLocale()\n\n const [localValue, setLocalValue] = React.useState(() =>\n correctNumberValue({\n locale,\n props,\n maskParams,\n })\n )\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n React.useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [ref.current])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n const InputElement = (params, innerRef) => {\n // Set ref for Eufemia input\n innerRef.current = ref.current\n\n return (\n <TextMask\n inputRef={ref}\n inputElement={inputElementRef.current}\n pipe={pipe}\n mask={mask || []}\n showMask={showMask}\n guide={showGuide}\n keepCharPositions={keepCharPositions}\n placeholderChar={placeholderChar}\n {...getSoftKeyboardAttributes(mask)}\n {...params}\n className={classnames(\n params.className,\n showMask &&\n showGuide &&\n placeholderChar &&\n placeholderChar !== invisibleSpace &&\n 'dnb-input-masked--guide' // will use --font-family-monospace\n )}\n />\n )\n }\n return InputElement\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns object of events to handle\n */\nexport const useEventMapping = ({ setLocalValue }) => {\n const callEvent = useCallEvent({ setLocalValue })\n\n return {\n onBeforeInput: (event) => callEvent({ event }, 'on_before_input'),\n onFocus: (params) => callEvent(params, 'on_focus'),\n onBlur: (params) => callEvent(params, 'on_blur'),\n onMouseUp: (event) => callEvent({ event }, 'on_mouse_up'),\n onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const { props } = React.useContext(InputMaskedContext)\n const maskParams = useMaskParams()\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'on_before_input' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // Prevent entering a leading zero\n if (\n name === 'on_key_down' &&\n !isUnidentified &&\n maskParams?.disallowLeadingZeroes &&\n (keyCode === '0' ||\n keyCode === 'numpad 0' ||\n (value.replace(/[^\\d]/g, '') === '' &&\n decimalSeparators.test(keyCode)))\n ) {\n const testValue = (\n value.slice(0, selStart) +\n '0' +\n value.slice(selStart + 1, value.length)\n ).replace(/[^\\d]/g, '')\n\n if (/^0/.test(testValue)) {\n event.preventDefault()\n }\n }\n\n if (\n name === 'on_key_down' &&\n isNumberMask &&\n !isUnidentified &&\n maskParams?.decimalSymbol\n ) {\n const hasDecimalSymbol = value.includes(maskParams.decimalSymbol)\n const allowedDecimals =\n maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false\n\n if (!allowedDecimals && decimalSeparators.test(keyCode)) {\n event.preventDefault()\n }\n\n const charAtSelection = value.slice(selStart, selStart + 1)\n\n if (allowedDecimals) {\n // if we have already a decimal ...\n if (hasDecimalSymbol && decimalSeparators.test(keyCode)) {\n // ... we set the cursor on after the decimalSeparators\n if (decimalSeparators.test(charAtSelection)) {\n const index = value.indexOf(maskParams.decimalSymbol)\n if (index > -1) {\n safeSetSelection(event.target, index + 1)\n }\n }\n\n // ... we do not allow to type another\n event.preventDefault()\n }\n\n // replace other decimal\n else if (\n !hasDecimalSymbol &&\n keyCode !== maskParams.decimalSymbol &&\n decimalSeparators.test(keyCode)\n ) {\n value = value.slice(0, selStart)\n setLocalValue(value + maskParams.decimalSymbol)\n event.target.value = value + maskParams.decimalSymbol\n event.preventDefault()\n }\n }\n\n // move cursor to right if key is delete and char at selection is thousand separator\n if (\n keyCode === 'delete' &&\n charAtSelection === (maskParams.thousandsSeparatorSymbol || ' ')\n ) {\n safeSetSelection(event.target, selStart + 1)\n event.preventDefault()\n }\n }\n\n let num = cleanNumber(value, {\n prefix: maskParams.prefix,\n suffix: maskParams.suffix,\n decimalSeparator: maskParams.decimalSymbol || ',',\n thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' ',\n })\n\n // We don't want to return NaN, so we set it to 0\n if (num === '-') {\n num = -0\n }\n\n const numberValue = Number(num)\n\n // Return '' (empty string) when the user has entered something invalid\n const cleanedValue =\n numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num\n\n if (name === 'on_change' && numberValue === 0) {\n correctCaretPosition(event.target, maskParams, props)\n }\n\n const result = dispatchCustomElementEvent(props, name, {\n event,\n value,\n numberValue,\n cleanedValue,\n })\n\n if (name === 'on_change') {\n setLocalValue(value)\n }\n\n if (\n (name === 'on_focus' || name === 'on_mouse_up') &&\n !props.selectall\n ) {\n // Also correct here, because of additional click inside the field\n event.target.runCorrectCaretPosition = () =>\n correctCaretPosition(event.target, maskParams, props)\n if (!event.target.__getCorrectCaretPosition) {\n event.target.runCorrectCaretPosition()\n }\n }\n\n return result\n }\n\n return callEvent\n}\n\n/**\n * Returns number mask parameters if requested by the component properties\n *\n * @returns object of number mask parameter\n */\nconst useNumberMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n const locale = useLocale()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n\n const { as_number, as_percent, as_currency } = props\n\n mask_options = fromJSON(mask_options)\n number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask)\n currency_mask = isTrue(currency_mask)\n ? {}\n : fromJSON(currency_mask, {\n currency: currency_mask,\n })\n if (!currency_mask?.currency) {\n delete currency_mask.currency\n }\n\n if (isRequestingLocaleSupport(props)) {\n const thousandsSeparatorSymbol = handleThousandsSeparator(locale)\n const decimalSymbol = handleDecimalSeparator(locale)\n\n if (isTrue(as_number) || isTrue(as_percent)) {\n number_mask = extendPropsWithContext(number_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n })\n } else if (as_currency) {\n currency_mask = extendPropsWithContext(currency_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null\n ),\n })\n }\n }\n\n let maskParams = null\n\n if (number_mask) {\n maskParams = handleNumberMask({\n mask_options,\n number_mask,\n })\n\n if (isTrue(as_percent)) {\n maskParams = handlePercentMask({ props, locale, maskParams })\n }\n } else if (currency_mask) {\n maskParams = handleCurrencyMask({\n mask_options,\n currency_mask,\n })\n }\n\n return maskParams\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Returns the type of what inputMode should be used
|
|
2
|
+
* Returns the type of what inputMode or type attribute should be used
|
|
3
3
|
*
|
|
4
4
|
* @param {function} mask mask function
|
|
5
5
|
* @returns undefined|decimal|numeric
|
|
6
6
|
*/
|
|
7
|
-
export function
|
|
7
|
+
export function getSoftKeyboardAttributes(mask: Function): {
|
|
8
|
+
inputMode: string;
|
|
9
|
+
};
|
|
8
10
|
/**
|
|
9
11
|
* Returns the thousands separator character
|
|
10
12
|
*
|
|
@@ -3,7 +3,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
4
|
import { format, getDecimalSeparator, getThousandsSeparator } from '../number-format/NumberUtils';
|
|
5
5
|
import { warn } from '../../shared/component-helper';
|
|
6
|
-
import {
|
|
6
|
+
import { IS_IOS } from '../../shared/helpers';
|
|
7
7
|
import { safeSetSelection } from './text-mask/createTextMaskInputElement';
|
|
8
8
|
const enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency'];
|
|
9
9
|
const enableNumberMaskWhen = ['as_number', 'as_percent', 'as_currency', 'number_mask', 'currency_mask'];
|
|
@@ -182,15 +182,17 @@ export const handleNumberMask = _ref6 => {
|
|
|
182
182
|
}
|
|
183
183
|
return maskParams;
|
|
184
184
|
};
|
|
185
|
-
export function
|
|
186
|
-
|
|
187
|
-
if ((IS_ANDROID || IS_IOS) && (maskParams === null || maskParams === void 0 ? void 0 : maskParams.allowNegative) !== false) {
|
|
185
|
+
export function getSoftKeyboardAttributes(mask) {
|
|
186
|
+
if ((mask === null || mask === void 0 ? void 0 : mask.instanceOf) !== 'createNumberMask') {
|
|
188
187
|
return undefined;
|
|
189
188
|
}
|
|
190
|
-
|
|
191
|
-
|
|
189
|
+
const maskParams = mask === null || mask === void 0 ? void 0 : mask.maskParams;
|
|
190
|
+
if (IS_IOS && (maskParams === null || maskParams === void 0 ? void 0 : maskParams.allowNegative) !== false) {
|
|
191
|
+
return undefined;
|
|
192
192
|
}
|
|
193
|
-
return
|
|
193
|
+
return {
|
|
194
|
+
inputMode: maskParams.allowDecimal && maskParams.decimalLimit !== 0 ? 'decimal' : 'numeric'
|
|
195
|
+
};
|
|
194
196
|
}
|
|
195
197
|
export function handleThousandsSeparator(locale) {
|
|
196
198
|
return getThousandsSeparator(locale).replace(' ', ' ');
|
|
@@ -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","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","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","_ref4","_String","_String$match","percent","match","handleCurrencyMask","_ref5","mask_options","currency_mask","showMask","fix","currency","handleNumberMask","_ref6","number_mask","getInputModeFromMask","allowNegative","instanceOf","handleThousandsSeparator","handleDecimalSeparator","fromJSON","str","fallback","arguments","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 = props.value === null ? null : 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
|
+
{"version":3,"file":"InputMaskedUtils.js","names":["format","getDecimalSeparator","getThousandsSeparator","warn","IS_IOS","safeSetSelection","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","isRequestingLocaleSupport","props","Object","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","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","_ref4","_String","_String$match","percent","match","handleCurrencyMask","_ref5","mask_options","currency_mask","showMask","fix","currency","handleNumberMask","_ref6","number_mask","getSoftKeyboardAttributes","instanceOf","allowNegative","inputMode","handleThousandsSeparator","handleDecimalSeparator","fromJSON","str","fallback","arguments","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_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 = props.value === null ? null : 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 or type attribute should be used\n *\n * @param {function} mask mask function\n * @returns undefined|decimal|numeric\n */\nexport function getSoftKeyboardAttributes(mask) {\n if (mask?.instanceOf !== 'createNumberMask') {\n return undefined\n }\n\n const maskParams = mask?.maskParams\n\n // because of the missing minus key, we still have to use text on iOS\n if (IS_IOS && maskParams?.allowNegative !== false) {\n return undefined\n }\n\n return {\n inputMode:\n maskParams.allowDecimal && maskParams.decimalLimit !== 0\n ? 'decimal'\n : 'numeric',\n }\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":";;;AAKA,SACEA,MAAM,EACNC,mBAAmB,EACnBC,qBAAqB,QAChB,8BAA8B;AACrC,SAASC,IAAI,QAAQ,+BAA+B;AACpD,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,gBAAgB,QAAQ,wCAAwC;AAEzE,MAAMC,uBAAuB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC;AAC1E,MAAMC,oBAAoB,GAAG,CAC3B,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,CAChB;AAED,OAAO,MAAMC,cAAc,GAAG,QAAQ;AAQtC,OAAO,MAAMC,yBAAyB,GAAIC,KAAK,IAAK;EAClD,OAAOC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACG,IAAI,CAC/BC,IAAA;IAAA,IAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAAF,IAAA;IAAA,OAAKE,CAAC,IAAIV,uBAAuB,CAACW,QAAQ,CAACF,CAAC,CAAC;EAAA,CACtD,CAAC;AACH,CAAC;AAQD,OAAO,MAAMG,sBAAsB,GAAIR,KAAK,IAAK;EAC/C,OAAOC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACG,IAAI,CAC/BM,KAAA;IAAA,IAAC,CAACJ,CAAC,EAAEC,CAAC,CAAC,GAAAG,KAAA;IAAA,OAAKH,CAAC,IAAIT,oBAAoB,CAACU,QAAQ,CAACF,CAAC,CAAC;EAAA,CACnD,CAAC;AACH,CAAC;AAcD,OAAO,MAAMK,kBAAkB,GAAGC,KAAA,IAK5B;EAAA,IAL6B;IACjCC,UAAU,GAAG,IAAI;IACjBZ,KAAK;IACLa,MAAM;IACNC;EACF,CAAC,GAAAH,KAAA;EACC,IAAII,KAAK,GAAGf,KAAK,CAACe,KAAK,KAAK,IAAI,GAAG,IAAI,GAAGC,MAAM,CAAChB,KAAK,CAACe,KAAK,CAAC;EAE7D,IAAIE,KAAK,CAACC,UAAU,CAACH,KAAK,CAAC,CAAC,EAAE;IAC5B,OAAOA,KAAK;EACd;EAEA,MAAMI,UAAU,GAAGJ,KAAK,CAACK,OAAO,CAAC,GAAG,CAAC;EAErC,IACEN,UAAU,CAACO,YAAY,IACvB,OAAOP,UAAU,CAACO,YAAY,KAAK,QAAQ,EAC3C;IACA,MAAMC,KAAK,GAAGR,UAAU,CAACO,YAAY;IACrC,MAAME,QAAQ,GAAGR,KAAK,CAACS,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpC,MAAMC,UAAU,GAAGP,UAAU,CAACK,QAAQ,CAAC,GAAG,CAAC;IAC3C,IAAIA,QAAQ,CAACG,MAAM,IAAID,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,KAAK,EAAE;MAClD,MAAMK,QAAQ,GAAGR,UAAU,GAAG,CAAC,GAAGJ,KAAK,CAACa,KAAK,CAACT,UAAU,CAAC,GAAG,EAAE;MAC9DJ,KAAK,GAAGQ,QAAQ,CAACK,KAAK,CAAC,CAAC,EAAEN,KAAK,IAAIG,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAGE,QAAQ;IACpE;EACF;EAEA,MAAME,kBAAkB,GACtBf,UAAU,CAACgB,YAAY,IACtBhB,UAAU,CAACiB,YAAY,GAAG,CAAC,IAAIjB,UAAU,CAACgB,YAAY,KAAK,KAAM;EAEpE,IAAI,CAACD,kBAAkB,EAAE;IACvB,IAAIV,UAAU,GAAG,CAAC,CAAC,EAAE;MACnBJ,KAAK,GAAGA,KAAK,CAACa,KAAK,CAAC,CAAC,EAAET,UAAU,CAAC;IACpC;EACF;EAKA,IAAInB,KAAK,CAACgC,aAAa,EAAE;IACvB,MAAMC,OAAO,GAAAC,aAAA;MACXrB,MAAM;MACNc,QAAQ,EAAE;IAAC,GACR3B,KAAK,CAACgC,aAAa,CACvB;IACD,IAAIH,kBAAkB,EAAE;MACtBI,OAAO,CAACN,QAAQ,GAAGb,UAAU,CAACiB,YAAY;IAC5C;IACAhB,KAAK,GAAGzB,MAAM,CAACyB,KAAK,EAAEkB,OAAO,CAAC;EAChC;EAEA,MAAME,aAAa,GAAGrB,UAAU,CAACqB,aAAa;EAC9CpB,KAAK,GAAGA,KAAK,CAACqB,OAAO,CAAC,GAAG,EAAED,aAAa,CAAC;EAEzC,IAAIvB,UAAU,KAAK,IAAI,EAAE;IACvB,MAAMyB,gBAAgB,GAAGzB,UAAU,CAACwB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IAC5D,MAAME,WAAW,GAAGvB,KAAK,CAACqB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IAElD,MAAMG,eAAe,GAAGF,gBAAgB,CAACG,QAAQ,CAACL,aAAa,CAAC;IAChE,MAAMM,sBAAsB,GAAGJ,gBAAgB,CAACG,QAAQ,CACrD,GAAEL,aAAc,GACnB,CAAC;IAED,IAAII,eAAe,EAAE;MACnBxB,KAAK,GAAI,GAAEA,KAAM,GAAEoB,aAAc,EAAC;IACpC,CAAC,MAAM,IACLM,sBAAsB,IACtB,CAACH,WAAW,CAACE,QAAQ,CAAE,GAAEL,aAAc,GAAE,CAAC,EAC1C;MAMApB,KAAK,GAAI,GAAEA,KAAM,GAAEoB,aAAc,GAAE;IACrC;IAaA,IACEE,gBAAgB,KAAK,GAAG,IACxBA,gBAAgB,CAACK,UAAU,CAAC,GAAG,CAAC,IAChCxB,UAAU,CAACoB,WAAW,CAACF,OAAO,CAACD,aAAa,EAAE,GAAG,CAAC,CAAC,KACjDjB,UAAU,CAACmB,gBAAgB,CAACD,OAAO,CAACD,aAAa,EAAE,GAAG,CAAC,CAAC,EAC1D;MACApB,KAAK,GAAGH,UAAU;IACpB;IAOA,IAAI,UAAU,CAAC+B,IAAI,CAAC/B,UAAU,CAACwB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE;MACvDrB,KAAK,GAAGH,UAAU;IACpB,CAAC,MAAM,IAAIyB,gBAAgB,KAAK,EAAE,IAAIC,WAAW,KAAK,GAAG,EAAE;MACzDvB,KAAK,GAAG,EAAE;IACZ;EACF;EAEA,OAAOA,KAAK;AACd,CAAC;AASD,OAAO,MAAM6B,oBAAoB,GAAGA,CAACC,OAAO,EAAE/B,UAAU,EAAEd,KAAK,KAAK;EAClE,MAAM8C,UAAU,GAAGA,CAAA,KAAM;IACvB,IAAI;MACF,MAAMC,MAAM,GAAGjC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEiC,MAAM;MACjC,MAAMC,MAAM,GAAGlC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEkC,MAAM;MAEjC,MAAMC,KAAK,GAAGJ,OAAO,CAACK,cAAc;MACpC,MAAMC,GAAG,GAAGN,OAAO,CAACO,YAAY;MAEhC,IAAIH,KAAK,KAAKE,GAAG,EAAE;QACjB;MACF;MAEA,IAAIJ,MAAM,IAAIC,MAAM,EAAE;QACpB,MAAMK,WAAW,GAAGR,OAAO,CAAC9B,KAAK,CAACK,OAAO,CAAC2B,MAAM,CAAC;QACjD,MAAMO,SAAS,GAAGD,WAAW,IAAGN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAErB,MAAM;QAC9C,IAAI6B,GAAG,GAAGC,SAAS;QAEnB,IAAIP,KAAK,IAAII,WAAW,IAAIJ,KAAK,IAAIK,SAAS,EAAE;UAC9CC,GAAG,GAAGF,WAAW;UAKjB,IACEvC,UAAU,CAAC2C,eAAe,KAAK3D,cAAc,IAC7C+C,OAAO,CAAC9B,KAAK,CAACW,MAAM,GAAG,CAAC,KAAKV,MAAM,CAAC+B,MAAM,GAAGC,MAAM,CAAC,CAACtB,MAAM,EAC3D;YACA6B,GAAG,GAAGA,GAAG,GAAG,CAAC;UACf;QACF,CAAC,MAAM;UACL,MAAMG,WAAW,GAAGb,OAAO,CAAC9B,KAAK,CAACK,OAAO,CAAC4B,MAAM,CAAC;UACjD,MAAMW,SAAS,GAAGD,WAAW,IAAGV,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEtB,MAAM,KAAI,CAAC;UAEnD,IAAIuB,KAAK,IAAIS,WAAW,IAAIT,KAAK,IAAIU,SAAS,EAAE;YAC9CJ,GAAG,GAAGI,SAAS;UACjB;QACF;QAEA,MAAMC,IAAI,GAAGf,OAAO,CAAC9B,KAAK,CAACa,KAAK,CAAC2B,GAAG,GAAG,CAAC,EAAEA,GAAG,CAAC;QAC9C,IAAIK,IAAI,KAAK9D,cAAc,EAAE;UAC3ByD,GAAG,GAAGF,WAAW,GAAG,CAAC;QACvB;QAEA,IAAI,CAACpC,KAAK,CAACC,UAAU,CAACqC,GAAG,CAAC,CAAC,EAAE;UAC3B5D,gBAAgB,CAACkD,OAAO,EAAEU,GAAG,CAAC;QAChC;MACF,CAAC,MAAM,IAAIvD,KAAK,aAALA,KAAK,eAALA,KAAK,CAAE6D,IAAI,IAAIhB,OAAO,CAAC9B,KAAK,CAACW,MAAM,KAAKyB,GAAG,EAAE;QACtD,MAAMW,KAAK,GAAGjB,OAAO,CAAC9B,KAAK,CAACS,KAAK,CAAC,EAAE,CAAC;QAErC,KAAK,IAAIuC,CAAC,GAAGD,KAAK,CAACpC,MAAM,EAAEsC,CAAC,GAAGD,CAAC,GAAG,CAAC,EAAEC,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;UACjD,MAAMJ,IAAI,GAAGE,KAAK,CAACE,CAAC,CAAC;UACrB,MAAMH,IAAI,GAAG7D,KAAK,CAAC6D,IAAI,CAACG,CAAC,CAAC;UAC1B,IACEJ,IAAI,IACJA,IAAI,KAAK9D,cAAc,IACvB+D,IAAI,YAAYI,MAAM,IACtBJ,IAAI,CAAClB,IAAI,CAACiB,IAAI,CAAC,EACf;YACA,KAAK,IAAIM,CAAC,GAAGF,CAAC,GAAG,CAAC,EAAEE,CAAC,GAAGH,CAAC,EAAEG,CAAC,EAAE,EAAE;cAAA,IAAAC,UAAA;cAC9B,MAAMN,IAAI,GAAG7D,KAAK,CAAC6D,IAAI,CAACK,CAAC,CAAC;cAC1B,IAAI,CAAAL,IAAI,aAAJA,IAAI,wBAAAM,UAAA,GAAJN,IAAI,CAAElB,IAAI,cAAAwB,UAAA,uBAAVA,UAAA,CAAAC,IAAA,CAAAP,IAAI,EAASA,IAAI,CAAC,MAAK,KAAK,EAAE;gBAChClE,gBAAgB,CAACkD,OAAO,EAAEqB,CAAC,CAAC;gBAC5B;cACF;YACF;YAEA;UACF;QACF;MACF;IACF,CAAC,CAAC,OAAOG,CAAC,EAAE;MACV5E,IAAI,CAAC4E,CAAC,CAAC;IACT;EACF,CAAC;EAED,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjCA,MAAM,CAACC,qBAAqB,CAACzB,UAAU,CAAC;EAC1C;AACF,CAAC;AAWD,OAAO,MAAM0B,iBAAiB,GAAGC,KAAA,IAAmC;EAAA,IAAAC,OAAA,EAAAC,aAAA;EAAA,IAAlC;IAAE3E,KAAK;IAAEa,MAAM;IAAEC;EAAW,CAAC,GAAA2D,KAAA;EAC7D,MAAM1D,KAAK,GAAGzB,MAAM,CAACU,KAAK,CAACe,KAAK,EAAE;IAAEF,MAAM;IAAE+D,OAAO,EAAE;EAAK,CAAC,CAAC;EAC5D9D,UAAU,CAACiC,MAAM,GAAG,EAAA2B,OAAA,GAAA1D,MAAM,CAACD,KAAK,CAAC,cAAA2D,OAAA,wBAAAC,aAAA,GAAbD,OAAA,CAAeG,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,cAAAF,aAAA,uBAAxCA,aAAA,CAA2C,CAAC,CAAC,KAAI,IAAI;EAEzE,OAAO7D,UAAU;AACnB,CAAC;AAWD,OAAO,MAAMgE,kBAAkB,GAAGC,KAAA,IAAqC;EAAA,IAApC;IAAEC,YAAY;IAAEC;EAAc,CAAC,GAAAF,KAAA;EAChE,MAAMjE,UAAU,GAAAoB,aAAA,CAAAA,aAAA;IACdgD,QAAQ,EAAE,IAAI;IACdzB,eAAe,EAAE,IAAI;IACrB3B,YAAY,EAAE,IAAI;IAClBC,YAAY,EAAE,CAAC;IACfI,aAAa,EAAE;EAAG,GACf6C,YAAY,GACZC,aAAa,CACjB;EAED,MAAME,GAAG,GACP,OAAOF,aAAa,KAAK,QAAQ,GAC7BA,aAAa,GACb,OAAOnE,UAAU,CAACsE,QAAQ,KAAK,QAAQ,GACvCtE,UAAU,CAACsE,QAAQ,GACnB,IAAI;EAEVtE,UAAU,CAACiC,MAAM,GAAI,IAAGoC,GAAI,EAAC;EAE7B,OAAOrE,UAAU;AACnB,CAAC;AAWD,OAAO,MAAMuE,gBAAgB,GAAGC,KAAA,IAAmC;EAAA,IAAlC;IAAEN,YAAY;IAAEO;EAAY,CAAC,GAAAD,KAAA;EAC5D,MAAMxE,UAAU,GAAAoB,aAAA,CAAAA,aAAA;IACdC,aAAa,EAAE;EAAG,GACf6C,YAAY,GACZO,WAAW,CACf;EAED,IAAI,OAAOzE,UAAU,CAACgB,YAAY,KAAK,WAAW,EAAE;IAClDhB,UAAU,CAACgB,YAAY,GAAGhB,UAAU,CAACiB,YAAY,GAAG,CAAC;EACvD;EAEA,OAAOjB,UAAU;AACnB,CAAC;AAQD,OAAO,SAAS0E,yBAAyBA,CAAC3B,IAAI,EAAE;EAC9C,IAAI,CAAAA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE4B,UAAU,MAAK,kBAAkB,EAAE;IAC3C,OAAOjC,SAAS;EAClB;EAEA,MAAM1C,UAAU,GAAG+C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE/C,UAAU;EAGnC,IAAIpB,MAAM,IAAI,CAAAoB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE4E,aAAa,MAAK,KAAK,EAAE;IACjD,OAAOlC,SAAS;EAClB;EAEA,OAAO;IACLmC,SAAS,EACP7E,UAAU,CAACgB,YAAY,IAAIhB,UAAU,CAACiB,YAAY,KAAK,CAAC,GACpD,SAAS,GACT;EACR,CAAC;AACH;AAQA,OAAO,SAAS6D,wBAAwBA,CAAC/E,MAAM,EAAE;EAC/C,OAAOrB,qBAAqB,CAACqB,MAAM,CAAC,CAACuB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AACxD;AAQA,OAAO,SAASyD,sBAAsBA,CAAChF,MAAM,EAAE;EAC7C,IAAIsB,aAAa,GAAG5C,mBAAmB,CAACsB,MAAM,CAAC;EAE/C,OAAOsB,aAAa;AACtB;AASA,OAAO,SAAS2D,QAAQA,CAACC,GAAG,EAAmB;EAAA,IAAjBC,QAAQ,GAAAC,SAAA,CAAAvE,MAAA,QAAAuE,SAAA,QAAAzC,SAAA,GAAAyC,SAAA,MAAG,IAAI;EAC3C,IAAI,OAAOF,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC7C,OAAOG,IAAI,CAACC,KAAK,CAACJ,GAAG,CAAC;EACxB;EAEA,OAAOA,GAAG,IAAIC,QAAQ;AACxB"}
|
|
@@ -64,7 +64,7 @@ export type MultiInputMaskProps<T extends string> = {
|
|
|
64
64
|
*/
|
|
65
65
|
suffix?: React.ReactNode;
|
|
66
66
|
} & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'ref' | 'value' | 'label'> & SpacingProps;
|
|
67
|
-
declare function MultiInputMask<T extends string>({ label, labelDirection, inputs, delimiter, onChange: onChangeExternal, disabled, status, statusState, values: defaultValues, className, stretch, suffix, ...props }: MultiInputMaskProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
declare function MultiInputMask<T extends string>({ label, labelDirection, inputs, delimiter, onChange: onChangeExternal, disabled, status, statusState, values: defaultValues, className, stretch, inputMode, suffix, ...props }: MultiInputMaskProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
68
68
|
declare namespace MultiInputMask {
|
|
69
69
|
var _formElement: boolean;
|
|
70
70
|
var _supportsSpacingProps: boolean;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
|
-
const _excluded = ["label", "labelDirection", "inputs", "delimiter", "onChange", "disabled", "status", "statusState", "values", "className", "stretch", "suffix"],
|
|
5
|
+
const _excluded = ["label", "labelDirection", "inputs", "delimiter", "onChange", "disabled", "status", "statusState", "values", "className", "stretch", "inputMode", "suffix"],
|
|
6
6
|
_excluded2 = ["id", "label", "value", "mask", "placeholderCharacter", "delimiter", "disabled", "inputRef", "onKeyDown", "onChange"];
|
|
7
7
|
import React, { useRef } from 'react';
|
|
8
8
|
import Input from '../Input';
|
|
@@ -26,6 +26,7 @@ function MultiInputMask(_ref) {
|
|
|
26
26
|
values: defaultValues,
|
|
27
27
|
className,
|
|
28
28
|
stretch,
|
|
29
|
+
inputMode,
|
|
29
30
|
suffix
|
|
30
31
|
} = _ref,
|
|
31
32
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -57,6 +58,7 @@ function MultiInputMask(_ref) {
|
|
|
57
58
|
input_element: inputs.map((input, index) => React.createElement(MultiInputMaskInput, _extends({
|
|
58
59
|
key: input.id
|
|
59
60
|
}, input, {
|
|
61
|
+
inputMode: inputMode,
|
|
60
62
|
value: values[input.id],
|
|
61
63
|
delimiter: index !== inputs.length - 1 ? delimiter : undefined,
|
|
62
64
|
onKeyDown: onKeyDown,
|
|
@@ -120,7 +122,7 @@ function MultiInputMaskInput(_ref3) {
|
|
|
120
122
|
return React.createElement(React.Fragment, null, React.createElement(TextMask, _extends({
|
|
121
123
|
id: `${markupId}__input`,
|
|
122
124
|
"data-mask-id": id,
|
|
123
|
-
className: "dnb-input__input dnb-multi-input-mask__input" + (value ? " dnb-multi-input-mask__input--highlight" : ""),
|
|
125
|
+
className: "dnb-input__input dnb-multi-input-mask__input" + (/\d+/.test(value) ? " dnb-multi-input-mask__input--highlight" : ""),
|
|
124
126
|
disabled: disabled,
|
|
125
127
|
size: mask.length,
|
|
126
128
|
mask: mask,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiInputMask.js","names":["React","useRef","Input","TextMask","useHandleCursorPosition","classnames","FormLabel","createSpacingClasses","useMultiInputValue","makeUniqueId","MultiInputMask","_ref","label","labelDirection","inputs","delimiter","onChange","onChangeExternal","disabled","status","statusState","values","defaultValues","className","stretch","suffix","props","_objectWithoutProperties","_excluded","callback","inputRefs","onKeyDown","current","getKeysToHandle","WrapperElement","createElement","element","onClick","onLegendClick","vertical","_extends","status_state","input_element","map","input","index","MultiInputMaskInput","key","id","value","length","undefined","inputRef","getInputRef","firstInput","focus","setSelectionRange","ref","includes","push","uniqueMasks","getUniqueMasks","size","pattern","next","replace","RegExp","reduce","keys","_ref2","mask","masks","Set","forEach","add","String","_ref3","placeholderCharacter","attributes","_excluded2","markupId","Fragment","placeholderChar","guide","showMask","keepCharPositions","onFocus","event","removePlaceholder","target","htmlFor","hidden","placeholder","_ref4","select","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/input-masked/MultiInputMask.tsx"],"sourcesContent":["import React, { Fragment, MutableRefObject, useRef } from 'react'\nimport Input from '../Input'\nimport TextMask from './TextMask'\nimport useHandleCursorPosition from './hooks/useHandleCursorPosition'\nimport classnames from 'classnames'\nimport FormLabel from '../FormLabel'\nimport { SpacingProps } from '../space/types'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { FormStatusState, FormStatusText } from '../FormStatus'\nimport { useMultiInputValue } from './hooks/useMultiInputValues'\nimport { makeUniqueId } from '../../shared/component-helper'\n\nexport type MultiInputMaskInput<T extends string> = {\n /**\n * Defines the id for the input. This id is also used to map the input value to the correct property on the objects used for `values` and `onChange` parameters.\n */\n id: T\n /**\n * Label used by the input. The label itself is hidden, but required to uphold accessibility standards for screen readers.\n */\n label: React.ReactNode\n /**\n * Each RegExp item in the array defines what the mask should be for each subsequent character in the input. The length sets the size of the input, so an array of two items would produce an input of two characters\n */\n mask: RegExp[]\n /**\n * Sets the placeholder character used for the input.\n */\n placeholderCharacter: string\n} & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'ref'>\n\nexport type MultiInputMaskValue<T extends string> = {\n // eslint-disable-next-line no-unused-vars\n [K in T]: string\n}\n\nexport type MultiInputMaskProps<T extends string> = {\n /**\n * The label describing the group of inputs inside the components.\n */\n label?: React.ReactNode\n /**\n * Use to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Used to define the different inputs representing the inputs in the component. The id's defined here is used to map input value to correct property in `values` parameters used in `onChange`\n */\n inputs: MultiInputMaskInput<T>[]\n /**\n * Values used for the inputs inside the component. Expects an object with keys matching the id's defined in `inputs`\n */\n values?: MultiInputMaskValue<T>\n /**\n * Defines the delimiter used to separate the inputs inside the component.\n */\n delimiter?: string\n /**\n * Runs when the input value changes. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onChange?: (values: MultiInputMaskValue<T>) => void\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Set it to `true` in order to stretch the input to the available space. Defaults to false.\n */\n stretch?: boolean\n /**\n * Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.\n */\n suffix?: React.ReactNode\n} & Omit<\n React.HTMLProps<HTMLInputElement>,\n 'onChange' | 'ref' | 'value' | 'label'\n> &\n SpacingProps\n\nfunction MultiInputMask<T extends string>({\n label,\n labelDirection = 'horizontal',\n inputs,\n delimiter,\n onChange: onChangeExternal,\n disabled,\n status,\n statusState,\n values: defaultValues,\n className,\n stretch,\n suffix,\n ...props\n}: MultiInputMaskProps<T>) {\n const [values, onChange] = useMultiInputValue({\n inputs,\n defaultValues,\n callback: onChangeExternal,\n })\n\n const inputRefs = useRef<Array<MutableRefObject<HTMLInputElement>>>([])\n\n const { onKeyDown } = useHandleCursorPosition(\n inputRefs.current,\n getKeysToHandle()\n )\n\n const WrapperElement = label ? 'fieldset' : 'div'\n\n return (\n <WrapperElement\n className={classnames(\n 'dnb-multi-input-mask__fieldset',\n labelDirection === 'horizontal' &&\n 'dnb-multi-input-mask__fieldset--horizontal',\n createSpacingClasses(props)\n )}\n >\n {label && (\n <FormLabel\n className={classnames(\n 'dnb-multi-input-mask__legend',\n labelDirection === 'horizontal' &&\n 'dnb-multi-input-mask__legend--horizontal'\n )}\n element=\"legend\"\n onClick={onLegendClick}\n disabled={disabled}\n vertical={labelDirection === 'vertical'}\n >\n {/* This <span/> wrapper is needed to make hover work in Safari Desktop */}\n <span>{label}</span>\n </FormLabel>\n )}\n <Input\n {...props}\n className={classnames('dnb-multi-input-mask', className)}\n disabled={disabled}\n status={status}\n status_state={statusState}\n suffix={suffix}\n stretch={stretch}\n input_element={inputs.map((input, index) => (\n <MultiInputMaskInput\n key={input.id}\n {...input}\n value={values[input.id]}\n delimiter={index !== inputs.length - 1 ? delimiter : undefined}\n onKeyDown={onKeyDown}\n onChange={onChange}\n disabled={disabled}\n inputRef={getInputRef}\n />\n ))}\n />\n </WrapperElement>\n )\n\n // Event handlers\n function onLegendClick() {\n if (disabled) {\n return\n }\n\n const firstInput = inputRefs.current[0].current\n\n firstInput.focus()\n firstInput.setSelectionRange(0, 0)\n }\n\n // Utilities\n function getInputRef(ref: any) {\n const inputRef = ref?.inputRef\n\n if (inputRef && !inputRefs.current.includes(inputRef)) {\n inputRefs.current.push(inputRef)\n }\n }\n\n function getKeysToHandle() {\n const uniqueMasks = getUniqueMasks()\n\n // Return the only one RegExp since all the inputs are using the same mask\n if (uniqueMasks.size === 1) {\n const pattern = uniqueMasks.values().next().value.replace(/\\//g, '')\n return new RegExp(pattern)\n }\n\n // If there are multiple types of masks used, then map the maps to an object based on input ids\n // So that useHandleCursorPosition can do a per character test to see if the pressed key should be handled or not\n return inputs.reduce(\n (keys, { id, mask }) => {\n keys[id] = mask\n\n return keys\n },\n {} as Record<T, RegExp[]>\n )\n }\n\n function getUniqueMasks() {\n const masks = new Set()\n\n inputs.forEach((input) => {\n input.mask.forEach((pattern) => masks.add(String(pattern)))\n })\n\n return masks\n }\n}\n\ntype MultiInputMaskInputProps<T extends string> =\n MultiInputMaskInput<T> & {\n id: MultiInputMaskInput<T>['id']\n label: MultiInputMaskInput<T>['label']\n value: string\n mask: MultiInputMaskInput<T>['mask']\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n delimiter?: MultiInputMaskProps<T>['delimiter']\n disabled: boolean\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void\n onChange: (\n id: string,\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n ) => void\n inputRef: any\n }\n\nfunction MultiInputMaskInput<T extends string>({\n id,\n label,\n value,\n mask,\n placeholderCharacter,\n delimiter,\n disabled,\n inputRef,\n onKeyDown,\n onChange,\n ...attributes\n}: MultiInputMaskInputProps<T>) {\n const markupId = `${id}-${makeUniqueId()}`\n\n return (\n <>\n <TextMask\n id={`${markupId}__input`}\n data-mask-id={id}\n className={classnames(\n 'dnb-input__input',\n 'dnb-multi-input-mask__input',\n value && 'dnb-multi-input-mask__input--highlight'\n )}\n disabled={disabled}\n size={mask.length}\n mask={mask}\n value={value ?? ''}\n placeholderChar={placeholderCharacter}\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n aria-labelledby={`${markupId}__label`}\n ref={inputRef}\n onKeyDown={onKeyDown}\n onFocus={onFocus}\n onChange={(event) => {\n onChange(\n id,\n removePlaceholder(event.target.value, placeholderCharacter)\n )\n }}\n {...attributes}\n />\n <label\n id={`${markupId}__label`}\n htmlFor={`${markupId}__input`}\n hidden\n >\n {label}\n </label>\n {delimiter && (\n <span\n aria-hidden\n className={classnames(\n 'dnb-multi-input-mask__delimiter',\n value && 'dnb-multi-input-mask__delimiter--highlight'\n )}\n >\n {delimiter}\n </span>\n )}\n </>\n )\n\n function removePlaceholder(value: string, placeholder: string) {\n return value.replace(RegExp(placeholder, 'gm'), '')\n }\n\n function onFocus({ target }: React.FocusEvent<HTMLInputElement>) {\n target.focus()\n target.select()\n }\n}\n\nexport default MultiInputMask\n\nMultiInputMask._formElement = true\nMultiInputMask._supportsSpacingProps = true\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAgCC,MAAM,QAAQ,OAAO;AACjE,OAAOC,KAAK,MAAM,UAAU;AAC5B,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,uBAAuB,MAAM,iCAAiC;AACrE,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,cAAc;AAEpC,SAASC,oBAAoB,QAAQ,wBAAwB;AAE7D,SAASC,kBAAkB,QAAQ,6BAA6B;AAChE,SAASC,YAAY,QAAQ,+BAA+B;AAyE5D,SAASC,cAAcA,CAAAC,IAAA,EAcI;EAAA,IAde;MACxCC,KAAK;MACLC,cAAc,GAAG,YAAY;MAC7BC,MAAM;MACNC,SAAS;MACTC,QAAQ,EAAEC,gBAAgB;MAC1BC,QAAQ;MACRC,MAAM;MACNC,WAAW;MACXC,MAAM,EAAEC,aAAa;MACrBC,SAAS;MACTC,OAAO;MACPC;IAEsB,CAAC,GAAAd,IAAA;IADpBe,KAAK,GAAAC,wBAAA,CAAAhB,IAAA,EAAAiB,SAAA;EAER,MAAM,CAACP,MAAM,EAAEL,QAAQ,CAAC,GAAGR,kBAAkB,CAAC;IAC5CM,MAAM;IACNQ,aAAa;IACbO,QAAQ,EAAEZ;EACZ,CAAC,CAAC;EAEF,MAAMa,SAAS,GAAG7B,MAAM,CAA4C,EAAE,CAAC;EAEvE,MAAM;IAAE8B;EAAU,CAAC,GAAG3B,uBAAuB,CAC3C0B,SAAS,CAACE,OAAO,EACjBC,eAAe,CAAC,CAClB,CAAC;EAED,MAAMC,cAAc,GAAGtB,KAAK,GAAG,UAAU,GAAG,KAAK;EAEjD,OACEZ,KAAA,CAAAmC,aAAA,CAACD,cAAc;IACbX,SAAS,EAAElB,UAAU,CACnB,gCAAgC,EAGhCE,oBAAoB,CAACmB,KAAK,CAAC,EAF3Bb,cAAc,KAAK,YAAY,IAC7B,4CAEJ;EAAE,GAEDD,KAAK,IACJZ,KAAA,CAAAmC,aAAA,CAAC7B,SAAS;IACRiB,SAAS,EACP,8BAA8B,IAC9BV,cAAc,KAAK,YAAY,oDAE/B;IACFuB,OAAO,EAAC,QAAQ;IAChBC,OAAO,EAAEC,aAAc;IACvBpB,QAAQ,EAAEA,QAAS;IACnBqB,QAAQ,EAAE1B,cAAc,KAAK;EAAW,GAGxCb,KAAA,CAAAmC,aAAA,eAAOvB,KAAY,CACV,CACZ,EACDZ,KAAA,CAAAmC,aAAA,CAACjC,KAAK,EAAAsC,QAAA,KACAd,KAAK;IACTH,SAAS,EAAElB,UAAU,CAAC,sBAAsB,EAAEkB,SAAS,CAAE;IACzDL,QAAQ,EAAEA,QAAS;IACnBC,MAAM,EAAEA,MAAO;IACfsB,YAAY,EAAErB,WAAY;IAC1BK,MAAM,EAAEA,MAAO;IACfD,OAAO,EAAEA,OAAQ;IACjBkB,aAAa,EAAE5B,MAAM,CAAC6B,GAAG,CAAC,CAACC,KAAK,EAAEC,KAAK,KACrC7C,KAAA,CAAAmC,aAAA,CAACW,mBAAmB,EAAAN,QAAA;MAClBO,GAAG,EAAEH,KAAK,CAACI;IAAG,GACVJ,KAAK;MACTK,KAAK,EAAE5B,MAAM,CAACuB,KAAK,CAACI,EAAE,CAAE;MACxBjC,SAAS,EAAE8B,KAAK,KAAK/B,MAAM,CAACoC,MAAM,GAAG,CAAC,GAAGnC,SAAS,GAAGoC,SAAU;MAC/DpB,SAAS,EAAEA,SAAU;MACrBf,QAAQ,EAAEA,QAAS;MACnBE,QAAQ,EAAEA,QAAS;MACnBkC,QAAQ,EAAEC;IAAY,EACvB,CACF;EAAE,EACJ,CACa,CAAC;EAInB,SAASf,aAAaA,CAAA,EAAG;IACvB,IAAIpB,QAAQ,EAAE;MACZ;IACF;IAEA,MAAMoC,UAAU,GAAGxB,SAAS,CAACE,OAAO,CAAC,CAAC,CAAC,CAACA,OAAO;IAE/CsB,UAAU,CAACC,KAAK,CAAC,CAAC;IAClBD,UAAU,CAACE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;EACpC;EAGA,SAASH,WAAWA,CAACI,GAAQ,EAAE;IAC7B,MAAML,QAAQ,GAAGK,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEL,QAAQ;IAE9B,IAAIA,QAAQ,IAAI,CAACtB,SAAS,CAACE,OAAO,CAAC0B,QAAQ,CAACN,QAAQ,CAAC,EAAE;MACrDtB,SAAS,CAACE,OAAO,CAAC2B,IAAI,CAACP,QAAQ,CAAC;IAClC;EACF;EAEA,SAASnB,eAAeA,CAAA,EAAG;IACzB,MAAM2B,WAAW,GAAGC,cAAc,CAAC,CAAC;IAGpC,IAAID,WAAW,CAACE,IAAI,KAAK,CAAC,EAAE;MAC1B,MAAMC,OAAO,GAAGH,WAAW,CAACvC,MAAM,CAAC,CAAC,CAAC2C,IAAI,CAAC,CAAC,CAACf,KAAK,CAACgB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;MACpE,OAAO,IAAIC,MAAM,CAACH,OAAO,CAAC;IAC5B;IAIA,OAAOjD,MAAM,CAACqD,MAAM,CAClB,CAACC,IAAI,EAAAC,KAAA,KAAmB;MAAA,IAAjB;QAAErB,EAAE;QAAEsB;MAAK,CAAC,GAAAD,KAAA;MACjBD,IAAI,CAACpB,EAAE,CAAC,GAAGsB,IAAI;MAEf,OAAOF,IAAI;IACb,CAAC,EACD,CAAC,CACH,CAAC;EACH;EAEA,SAASP,cAAcA,CAAA,EAAG;IACxB,MAAMU,KAAK,GAAG,IAAIC,GAAG,CAAC,CAAC;IAEvB1D,MAAM,CAAC2D,OAAO,CAAE7B,KAAK,IAAK;MACxBA,KAAK,CAAC0B,IAAI,CAACG,OAAO,CAAEV,OAAO,IAAKQ,KAAK,CAACG,GAAG,CAACC,MAAM,CAACZ,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,OAAOQ,KAAK;EACd;AACF;AAmBA,SAASzB,mBAAmBA,CAAA8B,KAAA,EAYI;EAAA,IAZe;MAC7C5B,EAAE;MACFpC,KAAK;MACLqC,KAAK;MACLqB,IAAI;MACJO,oBAAoB;MACpB9D,SAAS;MACTG,QAAQ;MACRkC,QAAQ;MACRrB,SAAS;MACTf;IAE2B,CAAC,GAAA4D,KAAA;IADzBE,UAAU,GAAAnD,wBAAA,CAAAiD,KAAA,EAAAG,UAAA;EAEb,MAAMC,QAAQ,GAAI,GAAEhC,EAAG,IAAGvC,YAAY,CAAC,CAAE,EAAC;EAE1C,OACET,KAAA,CAAAmC,aAAA,CAAAnC,KAAA,CAAAiF,QAAA,QACEjF,KAAA,CAAAmC,aAAA,CAAChC,QAAQ,EAAAqC,QAAA;IACPQ,EAAE,EAAG,GAAEgC,QAAS,SAAS;IACzB,gBAAchC,EAAG;IACjBzB,SAAS,oDAGP0B,KAAK,kDACL;IACF/B,QAAQ,EAAEA,QAAS;IACnB4C,IAAI,EAAEQ,IAAI,CAACpB,MAAO;IAClBoB,IAAI,EAAEA,IAAK;IACXrB,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAG;IACnBiC,eAAe,EAAEL,oBAAqB;IACtCM,KAAK,EAAE,IAAK;IACZC,QAAQ,EAAE,IAAK;IACfC,iBAAiB,EAAE,KAAM;IACzB,mBAAkB,GAAEL,QAAS,SAAS;IACtCvB,GAAG,EAAEL,QAAS;IACdrB,SAAS,EAAEA,SAAU;IACrBuD,OAAO,EAAEA,OAAQ;IACjBtE,QAAQ,EAAGuE,KAAK,IAAK;MACnBvE,QAAQ,CACNgC,EAAE,EACFwC,iBAAiB,CAACD,KAAK,CAACE,MAAM,CAACxC,KAAK,EAAE4B,oBAAoB,CAC5D,CAAC;IACH;EAAE,GACEC,UAAU,CACf,CAAC,EACF9E,KAAA,CAAAmC,aAAA;IACEa,EAAE,EAAG,GAAEgC,QAAS,SAAS;IACzBU,OAAO,EAAG,GAAEV,QAAS,SAAS;IAC9BW,MAAM;EAAA,GAEL/E,KACI,CAAC,EACPG,SAAS,IACRf,KAAA,CAAAmC,aAAA;IACE,mBAAW;IACXZ,SAAS,EACP,iCAAiC,IACjC0B,KAAK;EACL,GAEDlC,SACG,CAER,CAAC;EAGL,SAASyE,iBAAiBA,CAACvC,KAAa,EAAE2C,WAAmB,EAAE;IAC7D,OAAO3C,KAAK,CAACgB,OAAO,CAACC,MAAM,CAAC0B,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;EACrD;EAEA,SAASN,OAAOA,CAAAO,KAAA,EAAiD;IAAA,IAAhD;MAAEJ;IAA2C,CAAC,GAAAI,KAAA;IAC7DJ,MAAM,CAAClC,KAAK,CAAC,CAAC;IACdkC,MAAM,CAACK,MAAM,CAAC,CAAC;EACjB;AACF;AAEA,eAAepF,cAAc;AAE7BA,cAAc,CAACqF,YAAY,GAAG,IAAI;AAClCrF,cAAc,CAACsF,qBAAqB,GAAG,IAAI"}
|
|
1
|
+
{"version":3,"file":"MultiInputMask.js","names":["React","useRef","Input","TextMask","useHandleCursorPosition","classnames","FormLabel","createSpacingClasses","useMultiInputValue","makeUniqueId","MultiInputMask","_ref","label","labelDirection","inputs","delimiter","onChange","onChangeExternal","disabled","status","statusState","values","defaultValues","className","stretch","inputMode","suffix","props","_objectWithoutProperties","_excluded","callback","inputRefs","onKeyDown","current","getKeysToHandle","WrapperElement","createElement","element","onClick","onLegendClick","vertical","_extends","status_state","input_element","map","input","index","MultiInputMaskInput","key","id","value","length","undefined","inputRef","getInputRef","firstInput","focus","setSelectionRange","ref","includes","push","uniqueMasks","getUniqueMasks","size","pattern","next","replace","RegExp","reduce","keys","_ref2","mask","masks","Set","forEach","add","String","_ref3","placeholderCharacter","attributes","_excluded2","markupId","Fragment","test","placeholderChar","guide","showMask","keepCharPositions","onFocus","event","removePlaceholder","target","htmlFor","hidden","placeholder","_ref4","select","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/input-masked/MultiInputMask.tsx"],"sourcesContent":["import React, { Fragment, MutableRefObject, useRef } from 'react'\nimport Input from '../Input'\nimport TextMask from './TextMask'\nimport useHandleCursorPosition from './hooks/useHandleCursorPosition'\nimport classnames from 'classnames'\nimport FormLabel from '../FormLabel'\nimport { SpacingProps } from '../space/types'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { FormStatusState, FormStatusText } from '../FormStatus'\nimport { useMultiInputValue } from './hooks/useMultiInputValues'\nimport { makeUniqueId } from '../../shared/component-helper'\n\nexport type MultiInputMaskInput<T extends string> = {\n /**\n * Defines the id for the input. This id is also used to map the input value to the correct property on the objects used for `values` and `onChange` parameters.\n */\n id: T\n /**\n * Label used by the input. The label itself is hidden, but required to uphold accessibility standards for screen readers.\n */\n label: React.ReactNode\n /**\n * Each RegExp item in the array defines what the mask should be for each subsequent character in the input. The length sets the size of the input, so an array of two items would produce an input of two characters\n */\n mask: RegExp[]\n /**\n * Sets the placeholder character used for the input.\n */\n placeholderCharacter: string\n} & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'ref'>\n\nexport type MultiInputMaskValue<T extends string> = {\n // eslint-disable-next-line no-unused-vars\n [K in T]: string\n}\n\nexport type MultiInputMaskProps<T extends string> = {\n /**\n * The label describing the group of inputs inside the components.\n */\n label?: React.ReactNode\n /**\n * Use to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Used to define the different inputs representing the inputs in the component. The id's defined here is used to map input value to correct property in `values` parameters used in `onChange`\n */\n inputs: MultiInputMaskInput<T>[]\n /**\n * Values used for the inputs inside the component. Expects an object with keys matching the id's defined in `inputs`\n */\n values?: MultiInputMaskValue<T>\n /**\n * Defines the delimiter used to separate the inputs inside the component.\n */\n delimiter?: string\n /**\n * Runs when the input value changes. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onChange?: (values: MultiInputMaskValue<T>) => void\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Set it to `true` in order to stretch the input to the available space. Defaults to false.\n */\n stretch?: boolean\n /**\n * Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.\n */\n suffix?: React.ReactNode\n} & Omit<\n React.HTMLProps<HTMLInputElement>,\n 'onChange' | 'ref' | 'value' | 'label'\n> &\n SpacingProps\n\nfunction MultiInputMask<T extends string>({\n label,\n labelDirection = 'horizontal',\n inputs,\n delimiter,\n onChange: onChangeExternal,\n disabled,\n status,\n statusState,\n values: defaultValues,\n className,\n stretch,\n inputMode,\n suffix,\n ...props\n}: MultiInputMaskProps<T>) {\n const [values, onChange] = useMultiInputValue({\n inputs,\n defaultValues,\n callback: onChangeExternal,\n })\n\n const inputRefs = useRef<Array<MutableRefObject<HTMLInputElement>>>([])\n\n const { onKeyDown } = useHandleCursorPosition(\n inputRefs.current,\n getKeysToHandle()\n )\n\n const WrapperElement = label ? 'fieldset' : 'div'\n\n return (\n <WrapperElement\n className={classnames(\n 'dnb-multi-input-mask__fieldset',\n labelDirection === 'horizontal' &&\n 'dnb-multi-input-mask__fieldset--horizontal',\n createSpacingClasses(props)\n )}\n >\n {label && (\n <FormLabel\n className={classnames(\n 'dnb-multi-input-mask__legend',\n labelDirection === 'horizontal' &&\n 'dnb-multi-input-mask__legend--horizontal'\n )}\n element=\"legend\"\n onClick={onLegendClick}\n disabled={disabled}\n vertical={labelDirection === 'vertical'}\n >\n {/* This <span/> wrapper is needed to make hover work in Safari Desktop */}\n <span>{label}</span>\n </FormLabel>\n )}\n <Input\n {...props}\n className={classnames('dnb-multi-input-mask', className)}\n disabled={disabled}\n status={status}\n status_state={statusState}\n suffix={suffix}\n stretch={stretch}\n input_element={inputs.map((input, index) => (\n <MultiInputMaskInput\n key={input.id}\n {...input}\n inputMode={inputMode}\n value={values[input.id]}\n delimiter={index !== inputs.length - 1 ? delimiter : undefined}\n onKeyDown={onKeyDown}\n onChange={onChange}\n disabled={disabled}\n inputRef={getInputRef}\n />\n ))}\n />\n </WrapperElement>\n )\n\n // Event handlers\n function onLegendClick() {\n if (disabled) {\n return\n }\n\n const firstInput = inputRefs.current[0].current\n\n firstInput.focus()\n firstInput.setSelectionRange(0, 0)\n }\n\n // Utilities\n function getInputRef(ref: any) {\n const inputRef = ref?.inputRef\n\n if (inputRef && !inputRefs.current.includes(inputRef)) {\n inputRefs.current.push(inputRef)\n }\n }\n\n function getKeysToHandle() {\n const uniqueMasks = getUniqueMasks()\n\n // Return the only one RegExp since all the inputs are using the same mask\n if (uniqueMasks.size === 1) {\n const pattern = uniqueMasks.values().next().value.replace(/\\//g, '')\n return new RegExp(pattern)\n }\n\n // If there are multiple types of masks used, then map the maps to an object based on input ids\n // So that useHandleCursorPosition can do a per character test to see if the pressed key should be handled or not\n return inputs.reduce(\n (keys, { id, mask }) => {\n keys[id] = mask\n\n return keys\n },\n {} as Record<T, RegExp[]>\n )\n }\n\n function getUniqueMasks() {\n const masks = new Set()\n\n inputs.forEach((input) => {\n input.mask.forEach((pattern) => masks.add(String(pattern)))\n })\n\n return masks\n }\n}\n\ntype MultiInputMaskInputProps<T extends string> =\n MultiInputMaskInput<T> & {\n id: MultiInputMaskInput<T>['id']\n label: MultiInputMaskInput<T>['label']\n value: string\n mask: MultiInputMaskInput<T>['mask']\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n delimiter?: MultiInputMaskProps<T>['delimiter']\n disabled: boolean\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void\n onChange: (\n id: string,\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n ) => void\n inputRef: any\n }\n\nfunction MultiInputMaskInput<T extends string>({\n id,\n label,\n value,\n mask,\n placeholderCharacter,\n delimiter,\n disabled,\n inputRef,\n onKeyDown,\n onChange,\n ...attributes\n}: MultiInputMaskInputProps<T>) {\n const markupId = `${id}-${makeUniqueId()}`\n\n return (\n <>\n <TextMask\n id={`${markupId}__input`}\n data-mask-id={id}\n className={classnames(\n 'dnb-input__input',\n 'dnb-multi-input-mask__input',\n /\\d+/.test(value) && 'dnb-multi-input-mask__input--highlight'\n )}\n disabled={disabled}\n size={mask.length}\n mask={mask}\n value={value ?? ''}\n placeholderChar={placeholderCharacter}\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n aria-labelledby={`${markupId}__label`}\n ref={inputRef}\n onKeyDown={onKeyDown}\n onFocus={onFocus}\n onChange={(event) => {\n onChange(\n id,\n removePlaceholder(event.target.value, placeholderCharacter)\n )\n }}\n {...attributes}\n />\n <label\n id={`${markupId}__label`}\n htmlFor={`${markupId}__input`}\n hidden\n >\n {label}\n </label>\n {delimiter && (\n <span\n aria-hidden\n className={classnames(\n 'dnb-multi-input-mask__delimiter',\n value && 'dnb-multi-input-mask__delimiter--highlight'\n )}\n >\n {delimiter}\n </span>\n )}\n </>\n )\n\n function removePlaceholder(value: string, placeholder: string) {\n return value.replace(RegExp(placeholder, 'gm'), '')\n }\n\n function onFocus({ target }: React.FocusEvent<HTMLInputElement>) {\n target.focus()\n target.select()\n }\n}\n\nexport default MultiInputMask\n\nMultiInputMask._formElement = true\nMultiInputMask._supportsSpacingProps = true\n"],"mappings":"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"}
|