@dnb/eufemia 10.8.0 → 10.9.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 +36 -0
- package/cjs/components/breadcrumb/BreadcrumbItem.js +1 -1
- package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedHooks.js +1 -1
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/modal/ModalContent.js +3 -1
- package/cjs/components/modal/ModalContent.js.map +1 -1
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +59 -2
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +70 -2
- package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.css +18 -0
- package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.min.css +9 -0
- package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.scss +19 -0
- package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.css +5 -64
- package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.min.css +1 -1
- package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.scss +4 -86
- package/cjs/components/section/Section.js +1 -1
- package/cjs/components/section/Section.js.map +1 -1
- package/cjs/components/skeleton/style/dnb-skeleton.css +50 -0
- package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/cjs/components/skeleton/style/dnb-skeleton.scss +66 -0
- package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +7 -0
- package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +0 -0
- package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +7 -0
- package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +5 -60
- package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +0 -1
- package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +4 -86
- package/cjs/components/tooltip/style/dnb-tooltip.css +10 -0
- package/cjs/components/tooltip/style/dnb-tooltip.min.css +1 -1
- package/cjs/components/tooltip/style/dnb-tooltip.scss +14 -0
- package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.css +9 -0
- package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.min.css +1 -0
- package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.scss +10 -0
- package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-ui.css +3 -11
- package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-ui.min.css +1 -1
- package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-ui.scss +3 -15
- package/cjs/elements/blockquote/style/blockquote-mixins.scss +22 -11
- package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +20 -11
- package/cjs/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +1 -0
- package/cjs/extensions/forms/DataContext/At.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/At.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
- package/cjs/extensions/forms/DataContext/Context.js +2 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider.js +7 -3
- package/cjs/extensions/forms/DataContext/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/index.d.ts +0 -2
- package/cjs/extensions/forms/DataContext/index.js +0 -2
- package/cjs/extensions/forms/DataContext/index.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection.d.ts +2 -3
- package/cjs/extensions/forms/Field/ArraySelection.js +4 -4
- package/cjs/extensions/forms/Field/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/CountryCode.d.ts +2 -3
- package/cjs/extensions/forms/Field/CountryCode.js +3 -4
- package/cjs/extensions/forms/Field/CountryCode.js.map +1 -1
- package/cjs/extensions/forms/Field/Currency.d.ts +2 -3
- package/cjs/extensions/forms/Field/Currency.js.map +1 -1
- package/cjs/extensions/forms/Field/Date.d.ts +2 -3
- package/cjs/extensions/forms/Field/Date.js +4 -4
- package/cjs/extensions/forms/Field/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Number.d.ts +2 -3
- package/cjs/extensions/forms/Field/Number.js +4 -4
- package/cjs/extensions/forms/Field/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/Option.d.ts +2 -3
- package/cjs/extensions/forms/Field/Option.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber.d.ts +2 -3
- package/cjs/extensions/forms/Field/PhoneNumber.js +4 -4
- package/cjs/extensions/forms/Field/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity.d.ts +2 -2
- package/cjs/extensions/forms/Field/PostalCodeAndCity.js +4 -4
- package/cjs/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection.d.ts +2 -3
- package/cjs/extensions/forms/Field/Selection.js +5 -6
- package/cjs/extensions/forms/Field/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/String.d.ts +2 -3
- package/cjs/extensions/forms/Field/String.js +5 -7
- package/cjs/extensions/forms/Field/String.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle.d.ts +2 -3
- package/cjs/extensions/forms/Field/Toggle.js +5 -5
- package/cjs/extensions/forms/Field/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/index.d.ts +0 -4
- package/cjs/extensions/forms/Field/index.js +0 -4
- package/cjs/extensions/forms/Field/index.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -3
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +76 -8
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +8 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js +12 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -0
- package/cjs/extensions/forms/FieldBlock/index.d.ts +1 -0
- package/cjs/extensions/forms/FieldBlock/index.js +15 -2
- package/cjs/extensions/forms/FieldBlock/index.js.map +1 -1
- package/cjs/extensions/forms/Form/FormElement.d.ts +4 -0
- package/cjs/extensions/forms/Form/FormElement.js +39 -0
- package/cjs/extensions/forms/Form/FormElement.js.map +1 -0
- package/cjs/extensions/forms/Form/FormHandler.d.ts +6 -0
- package/cjs/extensions/forms/Form/FormHandler.js +41 -0
- package/cjs/extensions/forms/Form/FormHandler.js.map +1 -0
- package/cjs/extensions/forms/{DataContext → Form}/SubmitButton.d.ts +3 -4
- package/cjs/extensions/forms/Form/SubmitButton.js +36 -0
- package/cjs/extensions/forms/Form/SubmitButton.js.map +1 -0
- package/cjs/extensions/forms/Form/index.d.ts +9 -0
- package/cjs/extensions/forms/Form/index.js +18 -0
- package/cjs/extensions/forms/Form/index.js.map +1 -0
- package/cjs/extensions/forms/Iterate/Array.d.ts +17 -0
- package/cjs/extensions/forms/Iterate/Array.js +91 -0
- package/cjs/extensions/forms/Iterate/Array.js.map +1 -0
- package/cjs/extensions/forms/Iterate/ArrayPushButton.d.ts +10 -0
- package/cjs/extensions/forms/Iterate/ArrayPushButton.js +53 -0
- package/cjs/extensions/forms/Iterate/ArrayPushButton.js.map +1 -0
- package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton.d.ts +8 -0
- package/cjs/extensions/forms/{DataContext/SubmitButton.js → Iterate/ArrayRemoveElementButton.js} +25 -15
- package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton.js.map +1 -0
- package/cjs/extensions/forms/Iterate/IterateElementContext.d.ts +11 -0
- package/cjs/extensions/forms/Iterate/IterateElementContext.js +12 -0
- package/cjs/extensions/forms/Iterate/IterateElementContext.js.map +1 -0
- package/cjs/extensions/forms/Iterate/index.d.ts +11 -0
- package/cjs/extensions/forms/Iterate/index.js +25 -0
- package/cjs/extensions/forms/Iterate/index.js.map +1 -0
- package/cjs/extensions/forms/Layout/ButtonRow.d.ts +1 -1
- package/cjs/extensions/forms/Layout/ButtonRow.js +2 -2
- package/cjs/extensions/forms/Layout/ButtonRow.js.map +1 -1
- package/cjs/extensions/forms/Layout/Card.d.ts +1 -1
- package/cjs/extensions/forms/Layout/Card.js +4 -4
- package/cjs/extensions/forms/Layout/Card.js.map +1 -1
- package/cjs/extensions/forms/Layout/FlexContainer.d.ts +1 -1
- package/cjs/extensions/forms/Layout/FlexContainer.js +3 -3
- package/cjs/extensions/forms/Layout/FlexContainer.js.map +1 -1
- package/cjs/extensions/forms/Layout/FlexItem.d.ts +1 -1
- package/cjs/extensions/forms/Layout/FlexItem.js +2 -2
- package/cjs/extensions/forms/Layout/FlexItem.js.map +1 -1
- package/cjs/extensions/forms/Layout/MainHeading.d.ts +4 -2
- package/cjs/extensions/forms/Layout/MainHeading.js +11 -4
- package/cjs/extensions/forms/Layout/MainHeading.js.map +1 -1
- package/cjs/extensions/forms/Layout/Section.d.ts +1 -1
- package/cjs/extensions/forms/Layout/Section.js +2 -2
- package/cjs/extensions/forms/Layout/Section.js.map +1 -1
- package/cjs/extensions/forms/Layout/SubHeading.d.ts +4 -2
- package/cjs/extensions/forms/Layout/SubHeading.js +11 -4
- package/cjs/extensions/forms/Layout/SubHeading.js.map +1 -1
- package/cjs/extensions/forms/Layout/index.d.ts +0 -2
- package/cjs/extensions/forms/Layout/index.js +1 -3
- package/cjs/extensions/forms/Layout/index.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/Buttons.d.ts +1 -1
- package/cjs/extensions/forms/StepsLayout/Buttons.js +2 -2
- package/cjs/extensions/forms/StepsLayout/Buttons.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/NextButton.d.ts +1 -1
- package/cjs/extensions/forms/StepsLayout/NextButton.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/PreviousButton.d.ts +1 -1
- package/cjs/extensions/forms/StepsLayout/PreviousButton.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/Step.d.ts +1 -1
- package/cjs/extensions/forms/StepsLayout/Step.js +2 -2
- package/cjs/extensions/forms/StepsLayout/Step.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js +2 -2
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/cjs/extensions/forms/Value/Boolean.d.ts +2 -3
- package/cjs/extensions/forms/Value/Boolean.js +4 -4
- package/cjs/extensions/forms/Value/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Value/Number.d.ts +2 -3
- package/cjs/extensions/forms/Value/Number.js +4 -3
- package/cjs/extensions/forms/Value/Number.js.map +1 -1
- package/cjs/extensions/forms/Value/String.d.ts +2 -3
- package/cjs/extensions/forms/Value/String.js +4 -4
- package/cjs/extensions/forms/Value/String.js.map +1 -1
- package/cjs/extensions/forms/Value/index.d.ts +0 -4
- package/cjs/extensions/forms/Value/index.js +0 -4
- package/cjs/extensions/forms/Value/index.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.d.ts +2 -3
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +2 -2
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/hooks/index.d.ts +1 -0
- package/cjs/extensions/forms/{Field/hooks → hooks}/index.js +3 -3
- package/cjs/extensions/forms/hooks/index.js.map +1 -0
- package/cjs/extensions/forms/hooks/useDataValue.d.ts +12 -0
- package/cjs/extensions/forms/{Field/hooks/useField.js → hooks/useDataValue.js} +60 -26
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -0
- package/cjs/extensions/forms/index.d.ts +4 -4
- package/cjs/extensions/forms/index.js +20 -12
- package/cjs/extensions/forms/index.js.map +1 -1
- package/cjs/extensions/forms/types.d.ts +95 -2
- package/cjs/extensions/forms/types.js +71 -0
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/index.d.ts +0 -1
- package/cjs/extensions/forms/utils/index.js +0 -12
- package/cjs/extensions/forms/utils/index.js.map +1 -1
- package/cjs/extensions/lib.d.ts +0 -2
- package/cjs/extensions/payment-card/style/dnb-payment-card.css +7 -7
- package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/cjs/extensions/payment-card/style/dnb-payment-card.scss +7 -7
- 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/useMedia.js +33 -23
- package/cjs/shared/useMedia.js.map +1 -1
- package/cjs/style/dnb-ui-components.css +119 -2
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-elements.css +17 -11
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +7 -7
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +19 -11
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +131 -136
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -7
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/customisations.scss +4 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +40 -21
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +155 -152
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +11 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +3 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +38 -21
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +7 -7
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +19 -11
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.scss +4 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.css +131 -136
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +17 -11
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +7 -7
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +17 -11
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/breadcrumb/BreadcrumbItem.js +1 -1
- package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/input-masked/InputMaskedHooks.js +1 -1
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/modal/ModalContent.js +3 -1
- package/components/modal/ModalContent.js.map +1 -1
- package/components/progress-indicator/style/dnb-progress-indicator.css +59 -2
- package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/components/progress-indicator/style/dnb-progress-indicator.scss +70 -2
- package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.css +18 -0
- package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.min.css +9 -0
- package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.scss +19 -0
- package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.css +5 -64
- package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.min.css +1 -1
- package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.scss +4 -86
- package/components/section/Section.js +1 -1
- package/components/section/Section.js.map +1 -1
- package/components/skeleton/style/dnb-skeleton.css +50 -0
- package/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/components/skeleton/style/dnb-skeleton.scss +66 -0
- package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +7 -0
- package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +0 -0
- package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +7 -0
- package/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +5 -60
- package/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +0 -1
- package/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +4 -86
- package/components/tooltip/style/dnb-tooltip.css +10 -0
- package/components/tooltip/style/dnb-tooltip.min.css +1 -1
- package/components/tooltip/style/dnb-tooltip.scss +14 -0
- package/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.css +9 -0
- package/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.min.css +1 -0
- package/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.scss +10 -0
- package/components/tooltip/style/themes/dnb-tooltip-theme-ui.css +3 -11
- package/components/tooltip/style/themes/dnb-tooltip-theme-ui.min.css +1 -1
- package/components/tooltip/style/themes/dnb-tooltip-theme-ui.scss +3 -15
- package/elements/blockquote/style/blockquote-mixins.scss +22 -11
- package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +20 -11
- package/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +1 -0
- package/es/components/breadcrumb/BreadcrumbItem.js +1 -1
- package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/input-masked/InputMaskedHooks.js +1 -1
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/modal/ModalContent.js +3 -1
- package/es/components/modal/ModalContent.js.map +1 -1
- package/es/components/progress-indicator/style/dnb-progress-indicator.css +59 -2
- package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/es/components/progress-indicator/style/dnb-progress-indicator.scss +70 -2
- package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.css +18 -0
- package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.min.css +9 -0
- package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.scss +19 -0
- package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.css +5 -64
- package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.min.css +1 -1
- package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.scss +4 -86
- package/es/components/section/Section.js +1 -1
- package/es/components/section/Section.js.map +1 -1
- package/es/components/skeleton/style/dnb-skeleton.css +50 -0
- package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/es/components/skeleton/style/dnb-skeleton.scss +66 -0
- package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +7 -0
- package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +0 -0
- package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +7 -0
- package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +5 -60
- package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +0 -1
- package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +4 -86
- package/es/components/tooltip/style/dnb-tooltip.css +10 -0
- package/es/components/tooltip/style/dnb-tooltip.min.css +1 -1
- package/es/components/tooltip/style/dnb-tooltip.scss +14 -0
- package/es/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.css +9 -0
- package/es/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.min.css +1 -0
- package/es/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.scss +10 -0
- package/es/components/tooltip/style/themes/dnb-tooltip-theme-ui.css +3 -11
- package/es/components/tooltip/style/themes/dnb-tooltip-theme-ui.min.css +1 -1
- package/es/components/tooltip/style/themes/dnb-tooltip-theme-ui.scss +3 -15
- package/es/elements/blockquote/style/blockquote-mixins.scss +22 -11
- package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +20 -11
- package/es/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +1 -0
- package/es/extensions/forms/DataContext/At.d.ts +1 -1
- package/es/extensions/forms/DataContext/At.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +1 -0
- package/es/extensions/forms/DataContext/Context.js +2 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider.js +7 -3
- package/es/extensions/forms/DataContext/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/index.d.ts +0 -2
- package/es/extensions/forms/DataContext/index.js +0 -2
- package/es/extensions/forms/DataContext/index.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection.d.ts +2 -3
- package/es/extensions/forms/Field/ArraySelection.js +4 -4
- package/es/extensions/forms/Field/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/CountryCode.d.ts +2 -3
- package/es/extensions/forms/Field/CountryCode.js +4 -5
- package/es/extensions/forms/Field/CountryCode.js.map +1 -1
- package/es/extensions/forms/Field/Currency.d.ts +2 -3
- package/es/extensions/forms/Field/Currency.js.map +1 -1
- package/es/extensions/forms/Field/Date.d.ts +2 -3
- package/es/extensions/forms/Field/Date.js +4 -4
- package/es/extensions/forms/Field/Date.js.map +1 -1
- package/es/extensions/forms/Field/Number.d.ts +2 -3
- package/es/extensions/forms/Field/Number.js +4 -4
- package/es/extensions/forms/Field/Number.js.map +1 -1
- package/es/extensions/forms/Field/Option.d.ts +2 -3
- package/es/extensions/forms/Field/Option.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber.d.ts +2 -3
- package/es/extensions/forms/Field/PhoneNumber.js +4 -4
- package/es/extensions/forms/Field/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity.d.ts +2 -2
- package/es/extensions/forms/Field/PostalCodeAndCity.js +4 -4
- package/es/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/Selection.d.ts +2 -3
- package/es/extensions/forms/Field/Selection.js +6 -7
- package/es/extensions/forms/Field/Selection.js.map +1 -1
- package/es/extensions/forms/Field/String.d.ts +2 -3
- package/es/extensions/forms/Field/String.js +5 -7
- package/es/extensions/forms/Field/String.js.map +1 -1
- package/es/extensions/forms/Field/Toggle.d.ts +2 -3
- package/es/extensions/forms/Field/Toggle.js +5 -5
- package/es/extensions/forms/Field/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/index.d.ts +0 -4
- package/es/extensions/forms/Field/index.js +0 -4
- package/es/extensions/forms/Field/index.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -3
- package/es/extensions/forms/FieldBlock/FieldBlock.js +68 -9
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +8 -0
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js +4 -0
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -0
- package/es/extensions/forms/FieldBlock/index.d.ts +1 -0
- package/es/extensions/forms/FieldBlock/index.js +3 -1
- package/es/extensions/forms/FieldBlock/index.js.map +1 -1
- package/es/extensions/forms/Form/FormElement.d.ts +4 -0
- package/es/extensions/forms/Form/FormElement.js +31 -0
- package/es/extensions/forms/Form/FormElement.js.map +1 -0
- package/es/extensions/forms/Form/FormHandler.d.ts +6 -0
- package/es/extensions/forms/Form/FormHandler.js +33 -0
- package/es/extensions/forms/Form/FormHandler.js.map +1 -0
- package/es/extensions/forms/{DataContext → Form}/SubmitButton.d.ts +3 -4
- package/es/extensions/forms/Form/SubmitButton.js +25 -0
- package/es/extensions/forms/Form/SubmitButton.js.map +1 -0
- package/es/extensions/forms/Form/index.d.ts +9 -0
- package/es/extensions/forms/Form/index.js +10 -0
- package/es/extensions/forms/Form/index.js.map +1 -0
- package/es/extensions/forms/Iterate/Array.d.ts +17 -0
- package/es/extensions/forms/Iterate/Array.js +80 -0
- package/es/extensions/forms/Iterate/Array.js.map +1 -0
- package/es/extensions/forms/Iterate/ArrayPushButton.d.ts +10 -0
- package/es/extensions/forms/Iterate/ArrayPushButton.js +42 -0
- package/es/extensions/forms/Iterate/ArrayPushButton.js.map +1 -0
- package/es/extensions/forms/Iterate/ArrayRemoveElementButton.d.ts +8 -0
- package/es/extensions/forms/Iterate/ArrayRemoveElementButton.js +30 -0
- package/es/extensions/forms/Iterate/ArrayRemoveElementButton.js.map +1 -0
- package/es/extensions/forms/Iterate/IterateElementContext.d.ts +11 -0
- package/es/extensions/forms/Iterate/IterateElementContext.js +4 -0
- package/es/extensions/forms/Iterate/IterateElementContext.js.map +1 -0
- package/es/extensions/forms/Iterate/index.d.ts +11 -0
- package/es/extensions/forms/Iterate/index.js +12 -0
- package/es/extensions/forms/Iterate/index.js.map +1 -0
- package/es/extensions/forms/Layout/ButtonRow.d.ts +1 -1
- package/es/extensions/forms/Layout/ButtonRow.js +2 -2
- package/es/extensions/forms/Layout/ButtonRow.js.map +1 -1
- package/es/extensions/forms/Layout/Card.d.ts +1 -1
- package/es/extensions/forms/Layout/Card.js +4 -4
- package/es/extensions/forms/Layout/Card.js.map +1 -1
- package/es/extensions/forms/Layout/FlexContainer.d.ts +1 -1
- package/es/extensions/forms/Layout/FlexContainer.js +3 -3
- package/es/extensions/forms/Layout/FlexContainer.js.map +1 -1
- package/es/extensions/forms/Layout/FlexItem.d.ts +1 -1
- package/es/extensions/forms/Layout/FlexItem.js +2 -2
- package/es/extensions/forms/Layout/FlexItem.js.map +1 -1
- package/es/extensions/forms/Layout/MainHeading.d.ts +4 -2
- package/es/extensions/forms/Layout/MainHeading.js +10 -4
- package/es/extensions/forms/Layout/MainHeading.js.map +1 -1
- package/es/extensions/forms/Layout/Section.d.ts +1 -1
- package/es/extensions/forms/Layout/Section.js +2 -2
- package/es/extensions/forms/Layout/Section.js.map +1 -1
- package/es/extensions/forms/Layout/SubHeading.d.ts +4 -2
- package/es/extensions/forms/Layout/SubHeading.js +10 -4
- package/es/extensions/forms/Layout/SubHeading.js.map +1 -1
- package/es/extensions/forms/Layout/index.d.ts +0 -2
- package/es/extensions/forms/Layout/index.js +1 -3
- package/es/extensions/forms/Layout/index.js.map +1 -1
- package/es/extensions/forms/StepsLayout/Buttons.d.ts +1 -1
- package/es/extensions/forms/StepsLayout/Buttons.js +2 -2
- package/es/extensions/forms/StepsLayout/Buttons.js.map +1 -1
- package/es/extensions/forms/StepsLayout/NextButton.d.ts +1 -1
- package/es/extensions/forms/StepsLayout/NextButton.js.map +1 -1
- package/es/extensions/forms/StepsLayout/PreviousButton.d.ts +1 -1
- package/es/extensions/forms/StepsLayout/PreviousButton.js.map +1 -1
- package/es/extensions/forms/StepsLayout/Step.d.ts +1 -1
- package/es/extensions/forms/StepsLayout/Step.js +2 -2
- package/es/extensions/forms/StepsLayout/Step.js.map +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.js +2 -2
- package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/es/extensions/forms/Value/Boolean.d.ts +2 -3
- package/es/extensions/forms/Value/Boolean.js +4 -4
- package/es/extensions/forms/Value/Boolean.js.map +1 -1
- package/es/extensions/forms/Value/Number.d.ts +2 -3
- package/es/extensions/forms/Value/Number.js +5 -4
- package/es/extensions/forms/Value/Number.js.map +1 -1
- package/es/extensions/forms/Value/String.d.ts +2 -3
- package/es/extensions/forms/Value/String.js +4 -4
- package/es/extensions/forms/Value/String.js.map +1 -1
- package/es/extensions/forms/Value/index.d.ts +0 -4
- package/es/extensions/forms/Value/index.js +0 -4
- package/es/extensions/forms/Value/index.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.d.ts +2 -3
- package/es/extensions/forms/ValueBlock/ValueBlock.js +2 -2
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/hooks/index.d.ts +1 -0
- package/es/extensions/forms/hooks/index.js +1 -0
- package/es/extensions/forms/hooks/index.js.map +1 -0
- package/es/extensions/forms/hooks/useDataValue.d.ts +12 -0
- package/{extensions/forms/Field/hooks/useField.js → es/extensions/forms/hooks/useDataValue.js} +59 -25
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -0
- package/es/extensions/forms/index.d.ts +4 -4
- package/es/extensions/forms/index.js +3 -2
- package/es/extensions/forms/index.js.map +1 -1
- package/es/extensions/forms/types.d.ts +95 -2
- package/es/extensions/forms/types.js +42 -0
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/index.d.ts +0 -1
- package/es/extensions/forms/utils/index.js +0 -1
- package/es/extensions/forms/utils/index.js.map +1 -1
- package/es/extensions/lib.d.ts +0 -2
- package/es/extensions/payment-card/style/dnb-payment-card.css +7 -7
- package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/es/extensions/payment-card/style/dnb-payment-card.scss +7 -7
- 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/useMedia.js +30 -21
- package/es/shared/useMedia.js.map +1 -1
- package/es/style/dnb-ui-components.css +119 -2
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-elements.css +17 -11
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +7 -7
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +19 -11
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +131 -136
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -7
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/customisations.scss +4 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +40 -21
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +155 -152
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +11 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +3 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +38 -21
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +7 -7
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.css +19 -11
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.scss +4 -0
- package/es/style/themes/theme-ui/ui-theme-components.css +131 -136
- package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/es/style/themes/theme-ui/ui-theme-elements.css +17 -11
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +7 -7
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +17 -11
- 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/At.d.ts +1 -1
- package/extensions/forms/DataContext/At.js.map +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -0
- package/extensions/forms/DataContext/Context.js +2 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider.js +7 -3
- package/extensions/forms/DataContext/Provider.js.map +1 -1
- package/extensions/forms/DataContext/index.d.ts +0 -2
- package/extensions/forms/DataContext/index.js +0 -2
- package/extensions/forms/DataContext/index.js.map +1 -1
- package/extensions/forms/Field/ArraySelection.d.ts +2 -3
- package/extensions/forms/Field/ArraySelection.js +4 -4
- package/extensions/forms/Field/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/CountryCode.d.ts +2 -3
- package/extensions/forms/Field/CountryCode.js +4 -5
- package/extensions/forms/Field/CountryCode.js.map +1 -1
- package/extensions/forms/Field/Currency.d.ts +2 -3
- package/extensions/forms/Field/Currency.js.map +1 -1
- package/extensions/forms/Field/Date.d.ts +2 -3
- package/extensions/forms/Field/Date.js +4 -4
- package/extensions/forms/Field/Date.js.map +1 -1
- package/extensions/forms/Field/Number.d.ts +2 -3
- package/extensions/forms/Field/Number.js +4 -4
- package/extensions/forms/Field/Number.js.map +1 -1
- package/extensions/forms/Field/Option.d.ts +2 -3
- package/extensions/forms/Field/Option.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber.d.ts +2 -3
- package/extensions/forms/Field/PhoneNumber.js +4 -4
- package/extensions/forms/Field/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity.d.ts +2 -2
- package/extensions/forms/Field/PostalCodeAndCity.js +4 -4
- package/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/Selection.d.ts +2 -3
- package/extensions/forms/Field/Selection.js +6 -7
- package/extensions/forms/Field/Selection.js.map +1 -1
- package/extensions/forms/Field/String.d.ts +2 -3
- package/extensions/forms/Field/String.js +5 -7
- package/extensions/forms/Field/String.js.map +1 -1
- package/extensions/forms/Field/Toggle.d.ts +2 -3
- package/extensions/forms/Field/Toggle.js +5 -5
- package/extensions/forms/Field/Toggle.js.map +1 -1
- package/extensions/forms/Field/index.d.ts +0 -4
- package/extensions/forms/Field/index.js +0 -4
- package/extensions/forms/Field/index.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -3
- package/extensions/forms/FieldBlock/FieldBlock.js +74 -9
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +8 -0
- package/extensions/forms/FieldBlock/FieldBlockContext.js +4 -0
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -0
- package/extensions/forms/FieldBlock/index.d.ts +1 -0
- package/extensions/forms/FieldBlock/index.js +3 -1
- package/extensions/forms/FieldBlock/index.js.map +1 -1
- package/extensions/forms/Form/FormElement.d.ts +4 -0
- package/extensions/forms/Form/FormElement.js +31 -0
- package/extensions/forms/Form/FormElement.js.map +1 -0
- package/extensions/forms/Form/FormHandler.d.ts +6 -0
- package/extensions/forms/Form/FormHandler.js +33 -0
- package/extensions/forms/Form/FormHandler.js.map +1 -0
- package/extensions/forms/{DataContext → Form}/SubmitButton.d.ts +3 -4
- package/extensions/forms/Form/SubmitButton.js +25 -0
- package/extensions/forms/Form/SubmitButton.js.map +1 -0
- package/extensions/forms/Form/index.d.ts +9 -0
- package/extensions/forms/Form/index.js +10 -0
- package/extensions/forms/Form/index.js.map +1 -0
- package/extensions/forms/Iterate/Array.d.ts +17 -0
- package/extensions/forms/Iterate/Array.js +81 -0
- package/extensions/forms/Iterate/Array.js.map +1 -0
- package/extensions/forms/Iterate/ArrayPushButton.d.ts +10 -0
- package/extensions/forms/Iterate/ArrayPushButton.js +42 -0
- package/extensions/forms/Iterate/ArrayPushButton.js.map +1 -0
- package/extensions/forms/Iterate/ArrayRemoveElementButton.d.ts +8 -0
- package/extensions/forms/Iterate/ArrayRemoveElementButton.js +30 -0
- package/extensions/forms/Iterate/ArrayRemoveElementButton.js.map +1 -0
- package/extensions/forms/Iterate/IterateElementContext.d.ts +11 -0
- package/extensions/forms/Iterate/IterateElementContext.js +4 -0
- package/extensions/forms/Iterate/IterateElementContext.js.map +1 -0
- package/extensions/forms/Iterate/index.d.ts +11 -0
- package/extensions/forms/Iterate/index.js +12 -0
- package/extensions/forms/Iterate/index.js.map +1 -0
- package/extensions/forms/Layout/ButtonRow.d.ts +1 -1
- package/extensions/forms/Layout/ButtonRow.js +2 -2
- package/extensions/forms/Layout/ButtonRow.js.map +1 -1
- package/extensions/forms/Layout/Card.d.ts +1 -1
- package/extensions/forms/Layout/Card.js +4 -4
- package/extensions/forms/Layout/Card.js.map +1 -1
- package/extensions/forms/Layout/FlexContainer.d.ts +1 -1
- package/extensions/forms/Layout/FlexContainer.js +3 -3
- package/extensions/forms/Layout/FlexContainer.js.map +1 -1
- package/extensions/forms/Layout/FlexItem.d.ts +1 -1
- package/extensions/forms/Layout/FlexItem.js +2 -2
- package/extensions/forms/Layout/FlexItem.js.map +1 -1
- package/extensions/forms/Layout/MainHeading.d.ts +4 -2
- package/extensions/forms/Layout/MainHeading.js +10 -4
- package/extensions/forms/Layout/MainHeading.js.map +1 -1
- package/extensions/forms/Layout/Section.d.ts +1 -1
- package/extensions/forms/Layout/Section.js +2 -2
- package/extensions/forms/Layout/Section.js.map +1 -1
- package/extensions/forms/Layout/SubHeading.d.ts +4 -2
- package/extensions/forms/Layout/SubHeading.js +10 -4
- package/extensions/forms/Layout/SubHeading.js.map +1 -1
- package/extensions/forms/Layout/index.d.ts +0 -2
- package/extensions/forms/Layout/index.js +1 -3
- package/extensions/forms/Layout/index.js.map +1 -1
- package/extensions/forms/StepsLayout/Buttons.d.ts +1 -1
- package/extensions/forms/StepsLayout/Buttons.js +2 -2
- package/extensions/forms/StepsLayout/Buttons.js.map +1 -1
- package/extensions/forms/StepsLayout/NextButton.d.ts +1 -1
- package/extensions/forms/StepsLayout/NextButton.js.map +1 -1
- package/extensions/forms/StepsLayout/PreviousButton.d.ts +1 -1
- package/extensions/forms/StepsLayout/PreviousButton.js.map +1 -1
- package/extensions/forms/StepsLayout/Step.d.ts +1 -1
- package/extensions/forms/StepsLayout/Step.js +2 -2
- package/extensions/forms/StepsLayout/Step.js.map +1 -1
- package/extensions/forms/StepsLayout/StepsLayout.d.ts +1 -1
- package/extensions/forms/StepsLayout/StepsLayout.js +2 -2
- package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/extensions/forms/Value/Boolean.d.ts +2 -3
- package/extensions/forms/Value/Boolean.js +4 -4
- package/extensions/forms/Value/Boolean.js.map +1 -1
- package/extensions/forms/Value/Number.d.ts +2 -3
- package/extensions/forms/Value/Number.js +5 -4
- package/extensions/forms/Value/Number.js.map +1 -1
- package/extensions/forms/Value/String.d.ts +2 -3
- package/extensions/forms/Value/String.js +4 -4
- package/extensions/forms/Value/String.js.map +1 -1
- package/extensions/forms/Value/index.d.ts +0 -4
- package/extensions/forms/Value/index.js +0 -4
- package/extensions/forms/Value/index.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.d.ts +2 -3
- package/extensions/forms/ValueBlock/ValueBlock.js +2 -2
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/hooks/index.d.ts +1 -0
- package/extensions/forms/hooks/index.js +1 -0
- package/extensions/forms/hooks/index.js.map +1 -0
- package/extensions/forms/hooks/useDataValue.d.ts +12 -0
- package/{es/extensions/forms/Field/hooks/useField.js → extensions/forms/hooks/useDataValue.js} +59 -25
- package/extensions/forms/hooks/useDataValue.js.map +1 -0
- package/extensions/forms/index.d.ts +4 -4
- package/extensions/forms/index.js +3 -2
- package/extensions/forms/index.js.map +1 -1
- package/extensions/forms/types.d.ts +95 -2
- package/extensions/forms/types.js +60 -0
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/index.d.ts +0 -1
- package/extensions/forms/utils/index.js +0 -1
- package/extensions/forms/utils/index.js.map +1 -1
- package/extensions/lib.d.ts +0 -2
- package/extensions/payment-card/style/dnb-payment-card.css +7 -7
- package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/extensions/payment-card/style/dnb-payment-card.scss +7 -7
- package/package.json +2 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/useMedia.js +33 -23
- package/shared/useMedia.js.map +1 -1
- package/style/dnb-ui-components.css +119 -2
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-elements.css +17 -11
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/dnb-ui-extensions.css +7 -7
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +19 -11
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +131 -136
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -7
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/customisations.scss +4 -0
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +40 -21
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +155 -152
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +11 -3
- package/style/themes/theme-sbanken/sbanken-theme-components.scss +3 -3
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +38 -21
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +7 -7
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.css +19 -11
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.scss +4 -0
- package/style/themes/theme-ui/ui-theme-components.css +131 -136
- package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/style/themes/theme-ui/ui-theme-elements.css +17 -11
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +7 -7
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +17 -11
- 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/extensions/forms/DataContext/SubmitButton.js.map +0 -1
- package/cjs/extensions/forms/Field/FirstName.d.ts +0 -7
- package/cjs/extensions/forms/Field/FirstName.js +0 -31
- package/cjs/extensions/forms/Field/FirstName.js.map +0 -1
- package/cjs/extensions/forms/Field/LastName.d.ts +0 -7
- package/cjs/extensions/forms/Field/LastName.js +0 -31
- package/cjs/extensions/forms/Field/LastName.js.map +0 -1
- package/cjs/extensions/forms/Field/hooks/index.d.ts +0 -1
- package/cjs/extensions/forms/Field/hooks/index.js.map +0 -1
- package/cjs/extensions/forms/Field/hooks/useField.d.ts +0 -9
- package/cjs/extensions/forms/Field/hooks/useField.js.map +0 -1
- package/cjs/extensions/forms/FieldGroup/FieldGroup.d.ts +0 -17
- package/cjs/extensions/forms/FieldGroup/FieldGroup.js +0 -95
- package/cjs/extensions/forms/FieldGroup/FieldGroup.js.map +0 -1
- package/cjs/extensions/forms/FieldGroup/index.d.ts +0 -2
- package/cjs/extensions/forms/FieldGroup/index.js +0 -27
- package/cjs/extensions/forms/FieldGroup/index.js.map +0 -1
- package/cjs/extensions/forms/Layout/InfoCardSection.d.ts +0 -8
- package/cjs/extensions/forms/Layout/InfoCardSection.js +0 -25
- package/cjs/extensions/forms/Layout/InfoCardSection.js.map +0 -1
- package/cjs/extensions/forms/Value/FirstName.d.ts +0 -7
- package/cjs/extensions/forms/Value/FirstName.js +0 -28
- package/cjs/extensions/forms/Value/FirstName.js.map +0 -1
- package/cjs/extensions/forms/Value/LastName.d.ts +0 -7
- package/cjs/extensions/forms/Value/LastName.js +0 -28
- package/cjs/extensions/forms/Value/LastName.js.map +0 -1
- package/cjs/extensions/forms/Value/hooks/index.d.ts +0 -1
- package/cjs/extensions/forms/Value/hooks/index.js +0 -14
- package/cjs/extensions/forms/Value/hooks/index.js.map +0 -1
- package/cjs/extensions/forms/Value/hooks/useValue.d.ts +0 -2
- package/cjs/extensions/forms/Value/hooks/useValue.js +0 -31
- package/cjs/extensions/forms/Value/hooks/useValue.js.map +0 -1
- package/cjs/extensions/forms/component-types.d.ts +0 -4
- package/cjs/extensions/forms/component-types.js +0 -1
- package/cjs/extensions/forms/component-types.js.map +0 -1
- package/cjs/extensions/forms/field-types.d.ts +0 -58
- package/cjs/extensions/forms/field-types.js +0 -1
- package/cjs/extensions/forms/field-types.js.map +0 -1
- package/cjs/extensions/forms/utils/components.d.ts +0 -3
- package/cjs/extensions/forms/utils/components.js +0 -32
- package/cjs/extensions/forms/utils/components.js.map +0 -1
- package/cjs/extensions/forms/value-types.d.ts +0 -15
- package/cjs/extensions/forms/value-types.js +0 -1
- package/cjs/extensions/forms/value-types.js.map +0 -1
- package/es/extensions/forms/DataContext/SubmitButton.js +0 -20
- package/es/extensions/forms/DataContext/SubmitButton.js.map +0 -1
- package/es/extensions/forms/Field/FirstName.d.ts +0 -7
- package/es/extensions/forms/Field/FirstName.js +0 -19
- package/es/extensions/forms/Field/FirstName.js.map +0 -1
- package/es/extensions/forms/Field/LastName.d.ts +0 -7
- package/es/extensions/forms/Field/LastName.js +0 -19
- package/es/extensions/forms/Field/LastName.js.map +0 -1
- package/es/extensions/forms/Field/hooks/index.d.ts +0 -1
- package/es/extensions/forms/Field/hooks/index.js +0 -1
- package/es/extensions/forms/Field/hooks/index.js.map +0 -1
- package/es/extensions/forms/Field/hooks/useField.d.ts +0 -9
- package/es/extensions/forms/Field/hooks/useField.js.map +0 -1
- package/es/extensions/forms/FieldGroup/FieldGroup.d.ts +0 -17
- package/es/extensions/forms/FieldGroup/FieldGroup.js +0 -77
- package/es/extensions/forms/FieldGroup/FieldGroup.js.map +0 -1
- package/es/extensions/forms/FieldGroup/index.d.ts +0 -2
- package/es/extensions/forms/FieldGroup/index.js +0 -3
- package/es/extensions/forms/FieldGroup/index.js.map +0 -1
- package/es/extensions/forms/Layout/InfoCardSection.d.ts +0 -8
- package/es/extensions/forms/Layout/InfoCardSection.js +0 -17
- package/es/extensions/forms/Layout/InfoCardSection.js.map +0 -1
- package/es/extensions/forms/Value/FirstName.d.ts +0 -7
- package/es/extensions/forms/Value/FirstName.js +0 -16
- package/es/extensions/forms/Value/FirstName.js.map +0 -1
- package/es/extensions/forms/Value/LastName.d.ts +0 -7
- package/es/extensions/forms/Value/LastName.js +0 -16
- package/es/extensions/forms/Value/LastName.js.map +0 -1
- package/es/extensions/forms/Value/hooks/index.d.ts +0 -1
- package/es/extensions/forms/Value/hooks/index.js +0 -1
- package/es/extensions/forms/Value/hooks/index.js.map +0 -1
- package/es/extensions/forms/Value/hooks/useValue.d.ts +0 -2
- package/es/extensions/forms/Value/hooks/useValue.js +0 -22
- package/es/extensions/forms/Value/hooks/useValue.js.map +0 -1
- package/es/extensions/forms/component-types.d.ts +0 -4
- package/es/extensions/forms/component-types.js +0 -1
- package/es/extensions/forms/component-types.js.map +0 -1
- package/es/extensions/forms/field-types.d.ts +0 -58
- package/es/extensions/forms/field-types.js +0 -1
- package/es/extensions/forms/field-types.js.map +0 -1
- package/es/extensions/forms/utils/components.d.ts +0 -3
- package/es/extensions/forms/utils/components.js +0 -23
- package/es/extensions/forms/utils/components.js.map +0 -1
- package/es/extensions/forms/value-types.d.ts +0 -15
- package/es/extensions/forms/value-types.js +0 -1
- package/es/extensions/forms/value-types.js.map +0 -1
- package/extensions/forms/DataContext/SubmitButton.js +0 -20
- package/extensions/forms/DataContext/SubmitButton.js.map +0 -1
- package/extensions/forms/Field/FirstName.d.ts +0 -7
- package/extensions/forms/Field/FirstName.js +0 -19
- package/extensions/forms/Field/FirstName.js.map +0 -1
- package/extensions/forms/Field/LastName.d.ts +0 -7
- package/extensions/forms/Field/LastName.js +0 -19
- package/extensions/forms/Field/LastName.js.map +0 -1
- package/extensions/forms/Field/hooks/index.d.ts +0 -1
- package/extensions/forms/Field/hooks/index.js +0 -1
- package/extensions/forms/Field/hooks/index.js.map +0 -1
- package/extensions/forms/Field/hooks/useField.d.ts +0 -9
- package/extensions/forms/Field/hooks/useField.js.map +0 -1
- package/extensions/forms/FieldGroup/FieldGroup.d.ts +0 -17
- package/extensions/forms/FieldGroup/FieldGroup.js +0 -83
- package/extensions/forms/FieldGroup/FieldGroup.js.map +0 -1
- package/extensions/forms/FieldGroup/index.d.ts +0 -2
- package/extensions/forms/FieldGroup/index.js +0 -3
- package/extensions/forms/FieldGroup/index.js.map +0 -1
- package/extensions/forms/Layout/InfoCardSection.d.ts +0 -8
- package/extensions/forms/Layout/InfoCardSection.js +0 -17
- package/extensions/forms/Layout/InfoCardSection.js.map +0 -1
- package/extensions/forms/Value/FirstName.d.ts +0 -7
- package/extensions/forms/Value/FirstName.js +0 -16
- package/extensions/forms/Value/FirstName.js.map +0 -1
- package/extensions/forms/Value/LastName.d.ts +0 -7
- package/extensions/forms/Value/LastName.js +0 -16
- package/extensions/forms/Value/LastName.js.map +0 -1
- package/extensions/forms/Value/hooks/index.d.ts +0 -1
- package/extensions/forms/Value/hooks/index.js +0 -1
- package/extensions/forms/Value/hooks/index.js.map +0 -1
- package/extensions/forms/Value/hooks/useValue.d.ts +0 -2
- package/extensions/forms/Value/hooks/useValue.js +0 -22
- package/extensions/forms/Value/hooks/useValue.js.map +0 -1
- package/extensions/forms/component-types.d.ts +0 -4
- package/extensions/forms/component-types.js +0 -1
- package/extensions/forms/component-types.js.map +0 -1
- package/extensions/forms/field-types.d.ts +0 -58
- package/extensions/forms/field-types.js +0 -1
- package/extensions/forms/field-types.js.map +0 -1
- package/extensions/forms/utils/components.d.ts +0 -3
- package/extensions/forms/utils/components.js +0 -23
- package/extensions/forms/utils/components.js.map +0 -1
- package/extensions/forms/value-types.d.ts +0 -15
- package/extensions/forms/value-types.js +0 -1
- package/extensions/forms/value-types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerInput.js","names":["React","PropTypes","addDays","addMonths","addYears","isValid","parseISO","classnames","TextMask","Button","Input","SubmitButton","keycode","warn","validateDOMAttributes","dispatchCustomElementEvent","convertStringToDate","DatePickerContext","DatePickerInput","PureComponent","constructor","props","_defineProperty","_listenForPropChanges","focusState","e","focusMode","success","clipboardData","window","getData","preventDefault","separators","possibleFormats","forEach","date","sep","push","replace","split","reverse","join","i","l","length","date_format","mode","state","context","setState","updateState","hoverDate","hasHadValidDate","startDate","endDate","event","_objectSpread","callOnChangeHandler","changeMonthViews","isRange","getDates","reduce","acc","returnObject","getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","typedDates","start_date","end_date","keyCode","target","isDate","getAttribute","match","isInRange","count","callOnChange","wait","selectAll","focus","setSelectionRange","selectionStart","selectionEnd","selectStart","persist","prepareCounting","size","parseFloat","firstSelectionStart","secondSelectionStart","test","index","refList","findIndex","current","nextSibling","prevSibling","endPos","value","setDate","type","fallback","year","getFullYear","month","getMonth","day","getDate","Date","isValidDate","callOnChangeAsInvalid","callOnType","params","id","startDateList","generateDateList","endDateList","createElement","className","_span","maskOrder","separatorRexExp","maskList","cur","shift","_startDayRef","createRef","_startMonthRef","_startYearRef","_endDayRef","_endMonthRef","_endYearRef","componentWillUnmount","_shortcuts","remove","osShortcut","getPlaceholderChar","indexOf","maskPlaceholder","map","slice","placeholderChar","input_element","translation","DatePicker","isRangeLabel","onKeyDown","onKeyDownHandler","onPaste","shortcutHandler","onFocus","onFocusHandler","onBlur","onBlurHandler","DateField","isValidElement","InputElement","inputSizeClassName","Fragment","key","_extends","mask","inputRef","onChange","hidden","formatDate","open_picker_text","selectedDateTitle","render","_this$props","title","submitAttributes","onSubmit","showInput","locale","disabled","skeleton","opened","status","status_state","status_props","attributes","_objectWithoutProperties","_excluded","UsedButton","innerRef","ref","lang","code","label","input_state","renderInputElement","submit_element","icon","variant","on_submit","on_click","process","env","NODE_ENV","propTypes","string","instanceOf","RegExp","object","bool","oneOf","oneOfType","func","node","select","guide","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","t","Promise","r","setTimeout"],"sources":["../../../../src/components/date-picker/DatePickerInput.js"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\n// date-fns\nimport addDays from 'date-fns/addDays'\nimport addMonths from 'date-fns/addMonths'\nimport addYears from 'date-fns/addYears'\nimport isValid from 'date-fns/isValid'\nimport parseISO from 'date-fns/parseISO'\n\nimport classnames from 'classnames'\nimport TextMask from '../input-masked/TextMask'\nimport Button from '../button/Button'\nimport Input, { SubmitButton } from '../input/Input'\nimport keycode from 'keycode'\nimport {\n warn,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { convertStringToDate } from './DatePickerCalc'\nimport DatePickerContext from './DatePickerContext'\n\nexport default class DatePickerInput extends React.PureComponent {\n static contextType = DatePickerContext\n\n static propTypes = {\n id: PropTypes.string,\n title: PropTypes.string,\n selectedDateTitle: PropTypes.string,\n maskOrder: PropTypes.string,\n maskPlaceholder: PropTypes.string,\n separatorRexExp: PropTypes.instanceOf(RegExp),\n submitAttributes: PropTypes.object,\n isRange: PropTypes.bool,\n size: PropTypes.oneOf(['default', 'small', 'medium', 'large']),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n input_element: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n locale: PropTypes.object,\n disabled: PropTypes.bool,\n skeleton: PropTypes.bool,\n opened: PropTypes.bool,\n showInput: PropTypes.bool,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n onFocus: PropTypes.func,\n }\n\n static defaultProps = {\n id: null,\n title: null,\n selectedDateTitle: null,\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå',\n separatorRexExp: /[-/ ]/g,\n submitAttributes: null,\n isRange: null,\n size: null,\n status: null,\n status_state: 'error',\n status_props: null,\n input_element: null,\n disabled: null,\n locale: null,\n skeleton: null,\n opened: false,\n showInput: null,\n onChange: null,\n onSubmit: null,\n onFocus: null,\n }\n\n state = {\n _listenForPropChanges: true,\n focusState: 'virgin',\n }\n\n constructor(props) {\n super(props)\n\n const separators = props.maskOrder.match(props.separatorRexExp)\n this.maskList = props.maskOrder\n .split(props.separatorRexExp)\n .reduce((acc, cur) => {\n if (cur) {\n acc.push(cur)\n if (separators.length > 0) {\n acc.push(separators.shift())\n }\n }\n return acc\n }, [])\n\n this._startDayRef = React.createRef()\n this._startMonthRef = React.createRef()\n this._startYearRef = React.createRef()\n this._endDayRef = React.createRef()\n this._endMonthRef = React.createRef()\n this._endYearRef = React.createRef()\n }\n\n componentWillUnmount() {\n if (this._shortcuts) {\n this._shortcuts.remove(this.osShortcut)\n }\n }\n\n shortcutHandler = async (e) => {\n if (this.focusMode) {\n const success = (\n e.clipboardData ||\n (typeof window !== 'undefined' && window.clipboardData)\n ).getData('text')\n if (success) {\n e.preventDefault()\n try {\n const separators = ['.', '/']\n const possibleFormats = ['yyyy-MM-dd']\n\n possibleFormats.forEach((date) => {\n separators.forEach((sep) => {\n possibleFormats.push(date.replace(/-/g, sep))\n })\n })\n possibleFormats.forEach((date) => {\n possibleFormats.push(date.split('').reverse().join(''))\n })\n\n let date\n for (let i = 0, l = possibleFormats.length; i < l; ++i) {\n date = convertStringToDate(success, {\n date_format: possibleFormats[i],\n })\n if (date) {\n break\n }\n }\n const mode = this.focusMode === 'start' ? 'startDate' : 'endDate'\n if (date && !this.state[mode]) {\n this.context.setState({\n [mode]: date,\n })\n }\n } catch (e) {\n warn(e)\n }\n }\n }\n }\n\n callOnChangeAsInvalid = (state) => {\n this.context.updateState(\n {\n hoverDate: null,\n },\n () => {\n if (this.context.hasHadValidDate) {\n const { startDate, endDate, event } = {\n ...this.context,\n ...state,\n }\n this.context.callOnChangeHandler({ startDate, endDate, event })\n }\n }\n )\n }\n\n callOnChange = ({ startDate, endDate, event }) => {\n const state = { changeMonthViews: true }\n if (typeof startDate !== 'undefined' && isValid(startDate)) {\n state.startDate = startDate\n }\n if (!this.props.isRange) {\n endDate = startDate\n }\n if (typeof endDate !== 'undefined' && isValid(endDate)) {\n state.endDate = endDate\n }\n\n this.context.updateState(state, () => {\n if (\n (typeof startDate !== 'undefined' && isValid(startDate)) ||\n (typeof endDate !== 'undefined' && isValid(endDate))\n ) {\n this.context.callOnChangeHandler({ event })\n }\n })\n }\n\n callOnType = ({ event }) => {\n const getDates = () =>\n ['start', 'end'].reduce((acc, mode) => {\n acc[`${mode}Date`] = [\n this[`_${mode}Year`] || this.context[`__${mode}Year`] || 'yyyy',\n this[`_${mode}Month`] || this.context[`__${mode}Month`] || 'mm',\n this[`_${mode}Day`] || this.context[`__${mode}Day`] || 'dd',\n ].join('-')\n return acc\n }, {})\n\n // Get the typed dates, so we can ...\n let { startDate, endDate } = getDates()\n\n startDate = parseISO(startDate)\n endDate = parseISO(endDate)\n\n // ... check if they where valid\n if (!isValid(startDate)) {\n startDate = null\n }\n if (!isValid(endDate)) {\n endDate = null\n }\n\n let returnObject = this.context.getReturnObject({\n startDate,\n endDate,\n event,\n })\n\n // Now, lets correct\n if (\n returnObject.is_valid === false ||\n returnObject.is_valid_start_date === false ||\n returnObject.is_valid_end_date === false\n ) {\n const { startDate, endDate } = getDates()\n\n const typedDates = this.props.isRange\n ? {\n start_date: startDate,\n end_date: endDate,\n }\n : { date: startDate }\n\n returnObject = {\n ...returnObject,\n ...typedDates,\n }\n }\n\n dispatchCustomElementEvent(this.context, 'on_type', returnObject)\n }\n\n prepareCounting = async ({ keyCode, target, event }) => {\n try {\n const isDate = target\n .getAttribute('class')\n .match(/__input--([day|month|year]+)($|\\s)/)[1]\n\n const isInRange = target\n .getAttribute('id')\n .match(/-([start|end]+)-/)[1]\n\n let date =\n isInRange === 'start'\n ? this.context.startDate\n : this.context.endDate\n\n // do nothing if date is not set yet\n if (!date) {\n return\n }\n\n const count = keyCode === 'up' ? 1 : -1\n\n if (keyCode === 'up' || keyCode === 'down') {\n switch (isDate) {\n case 'day':\n date = addDays(date, count)\n break\n case 'month':\n date = addMonths(date, count)\n break\n case 'year':\n date = addYears(date, count)\n break\n }\n }\n\n this.callOnChange({\n [isInRange === 'start' ? 'startDate' : 'endDate']: date,\n event,\n })\n\n await wait(1) // to get the correct position afterwards\n\n selectAll(target)\n } catch (e) {\n warn(e)\n }\n }\n\n selectStart = (target) => {\n target.focus()\n target.setSelectionRange(0, 0)\n }\n\n onFocusHandler = (event) => {\n try {\n selectAll(event.target)\n } catch (e) {\n warn(e)\n }\n\n this.setState({\n focusState: 'focus',\n _listenForPropChanges: false,\n })\n }\n\n onBlurHandler = () => {\n this.focusMode = null\n this.setState({\n focusState: 'blur',\n _listenForPropChanges: false,\n })\n }\n\n onKeyDownHandler = async (event) => {\n const keyCode = keycode(event)\n const target = event.target\n\n if (target.selectionStart !== target.selectionEnd) {\n this.selectStart(target)\n }\n\n // only to process key up and down press\n switch (keyCode) {\n case 'up':\n case 'down':\n event.persist()\n event.preventDefault()\n this.prepareCounting({ event, keyCode, target })\n return false\n case 'tab':\n // case 'backspace': // We need backspace down here\n return false\n }\n\n // the rest is for value entry\n\n const size = parseFloat(target.getAttribute('size'))\n const firstSelectionStart = target.selectionStart\n\n await wait(1) // to get the correct position afterwards\n\n const secondSelectionStart = target.selectionStart\n const isValid = /[0-9]/.test(keyCode)\n const index = this.refList.findIndex(\n ({ current }) => current === target\n )\n\n if (\n index < this.refList.length - 1 &&\n ((secondSelectionStart === size &&\n isValid &&\n keyCode !== 'left' &&\n keyCode !== 'backspace') ||\n (firstSelectionStart === size && keyCode === 'right'))\n ) {\n try {\n // stop in case there is no next input element\n if (!this.refList[index + 1].current) {\n return\n }\n const nextSibling = this.refList[index + 1].current\n if (nextSibling) {\n nextSibling.focus()\n nextSibling.setSelectionRange(0, 0)\n }\n } catch (e) {\n warn(e)\n }\n } else if (firstSelectionStart === 0 && index > 0) {\n switch (keyCode) {\n case 'left':\n case 'backspace':\n try {\n const prevSibling = this.refList[index - 1].current\n if (prevSibling) {\n const endPos = prevSibling.value.length\n prevSibling.focus()\n prevSibling.setSelectionRange(endPos, endPos)\n }\n } catch (e) {\n warn(e)\n }\n break\n }\n }\n }\n\n set_startDay = (event) => {\n this.setDate(event, 'start', 'Day')\n }\n\n set_startMonth = (event) => {\n this.setDate(event, 'start', 'Month')\n }\n\n set_startYear = (event) => {\n this.setDate(event, 'start', 'Year')\n }\n\n set_endDay = (event) => {\n this.setDate(event, 'end', 'Day')\n }\n\n set_endMonth = (event) => {\n this.setDate(event, 'end', 'Month')\n }\n\n set_endYear = (event) => {\n this.setDate(event, 'end', 'Year')\n }\n\n setDate = (event, mode, type) => {\n event.persist() // since we have later a state update and afterwards the callback\n\n const value = event.target.value\n\n this[`_${mode}${type}`] = value\n\n if (this.context[`${mode}Date`]) {\n this[`tmp_${mode}Date`] = this.context[`${mode}Date`]\n }\n\n const fallback = this[`tmp_${mode}Date`]\n\n // provide fallbacks to create a temp fallback\n const year =\n this[`_${mode}Year`] || (fallback && fallback.getFullYear())\n const month =\n this[`_${mode}Month`] || (fallback && fallback.getMonth() + 1)\n const day = this[`_${mode}Day`] || (fallback && fallback.getDate())\n\n // calculate new date\n const date = new Date(\n parseFloat(year),\n parseFloat(month) - 1,\n parseFloat(day)\n )\n\n const isValidDate =\n !/[^0-9]/.test(day) &&\n !/[^0-9]/.test(month) &&\n !/[^0-9]/.test(year) &&\n isValid(date) &&\n date.getDate() == parseFloat(day) &&\n date.getMonth() + 1 == parseFloat(month) &&\n date.getFullYear() == parseFloat(year)\n\n // update the date\n if (isValidDate) {\n this.callOnChange({\n [`${mode}Date`]: date,\n event,\n })\n } else {\n this.context.updateState({ [`${mode}Date`]: null })\n this.context.updateState({ [`__${mode}${type}`]: value })\n\n this.callOnChangeAsInvalid({\n [`${mode}Date`]: null,\n event,\n })\n }\n\n this.callOnType({\n event,\n })\n }\n\n renderInputElement = (params) => {\n const { id, isRange } = this.props\n this.refList = []\n const startDateList = this.generateDateList(params, 'start')\n const endDateList = this.generateDateList(params, 'end')\n return (\n <span id={`${id}-input`} className=\"dnb-date-picker__input__wrapper\">\n {startDateList}\n {isRange && (\n <span className=\"dnb-date-picker--separator\" aria-hidden>\n {' – '}\n </span>\n )}\n {isRange && endDateList}\n </span>\n )\n }\n\n getPlaceholderChar(value) {\n const index = this.props.maskOrder.indexOf(value)\n return this.props.maskPlaceholder[index]\n }\n\n generateDateList(params, mode) {\n return this.maskList.map((value, i) => {\n const state = value.slice(0, 1)\n const placeholderChar = this.getPlaceholderChar(value)\n const { input_element, separatorRexExp, isRange, size } = this.props\n const { day, month, year } = this.context.translation.DatePicker\n const isRangeLabel = isRange\n ? `${this.context.translation.DatePicker[mode]} `\n : ''\n\n if (!separatorRexExp.test(value)) {\n if (!input_element) {\n params = {\n ...params,\n onKeyDown: this.onKeyDownHandler,\n onPaste: this.shortcutHandler,\n onFocus: (e) => {\n this.focusMode = mode\n this.onFocusHandler(e)\n },\n onBlur: this.onBlurHandler,\n placeholderChar,\n }\n }\n\n // this makes it possible to use a vanilla <input /> like: input_element=\"input\"\n const DateField =\n input_element && React.isValidElement(input_element)\n ? input_element\n : InputElement\n\n const inputSizeClassName =\n size && `dnb-date-picker__input--${size}`\n\n switch (state) {\n case 'd':\n this.refList.push(this[`_${mode}DayRef`])\n\n return (\n <React.Fragment key={'dd' + i}>\n <DateField\n {...params}\n id={`${this.props.id}-${mode}-day`}\n key={'di' + i}\n className={classnames(\n params.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--day',\n inputSizeClassName\n )}\n size=\"2\"\n mask={[/[0-3]/, /[0-9]/]}\n inputRef={this[`_${mode}DayRef`]}\n onChange={this[`set_${mode}Day`]}\n value={this.context[`__${mode}Day`] || ''}\n aria-labelledby={`${this.props.id}-${mode}-day-label`}\n />\n <label\n key={'dl' + i}\n hidden\n id={`${this.props.id}-${mode}-day-label`}\n >\n {isRangeLabel + day}\n </label>\n </React.Fragment>\n )\n case 'm':\n this.refList.push(this[`_${mode}MonthRef`])\n\n return (\n <React.Fragment key={'mm' + i}>\n <DateField\n {...params}\n id={`${this.props.id}-${mode}-month`}\n key={'mi' + i}\n className={classnames(\n params.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--month',\n inputSizeClassName\n )}\n size=\"2\"\n mask={[/[0-1]/, /[0-9]/]}\n inputRef={this[`_${mode}MonthRef`]}\n onChange={this[`set_${mode}Month`]}\n value={this.context[`__${mode}Month`] || ''}\n aria-labelledby={`${this.props.id}-${mode}-month-label`}\n />\n <label\n key={'ml' + i}\n hidden\n id={`${this.props.id}-${mode}-month-label`}\n >\n {isRangeLabel + month}\n </label>\n </React.Fragment>\n )\n case 'y':\n this.refList.push(this[`_${mode}YearRef`])\n\n return (\n <React.Fragment key={'yy' + i}>\n <DateField\n {...params}\n id={`${this.props.id}-${mode}-year`}\n key={'yi' + i}\n className={classnames(\n params.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--year',\n inputSizeClassName\n )}\n size=\"4\"\n mask={[/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/]}\n inputRef={this[`_${mode}YearRef`]}\n onChange={this[`set_${mode}Year`]}\n value={this.context[`__${mode}Year`] || ''}\n aria-labelledby={`${this.props.id}-${mode}-year-label`}\n />\n <label\n key={'yl' + i}\n hidden\n id={`${this.props.id}-${mode}-year-label`}\n >\n {isRangeLabel + year}\n </label>\n </React.Fragment>\n )\n }\n }\n return (\n <span\n key={'s' + i}\n className=\"dnb-date-picker--separator\"\n aria-hidden\n >\n {placeholderChar}\n </span>\n )\n })\n }\n\n formatDate() {\n const { open_picker_text } = this.context.translation.DatePicker\n\n const { selectedDateTitle } = this.props\n\n return selectedDateTitle\n ? `${selectedDateTitle}, ${open_picker_text}`\n : open_picker_text\n }\n\n render() {\n const {\n id,\n title,\n\n submitAttributes,\n isRange, // eslint-disable-line\n maskOrder, // eslint-disable-line\n maskPlaceholder, // eslint-disable-line\n separatorRexExp, // eslint-disable-line\n onChange, // eslint-disable-line\n onFocus, // eslint-disable-line\n onSubmit, // eslint-disable-line\n selectedDateTitle, // eslint-disable-line\n showInput, // eslint-disable-line\n input_element,\n locale,\n disabled,\n skeleton,\n opened,\n size,\n status,\n status_state,\n status_props,\n\n ...attributes\n } = this.props\n\n const { focusState } = this.state\n\n validateDOMAttributes(this.props, attributes)\n validateDOMAttributes(null, submitAttributes)\n\n const UsedButton = showInput ? SubmitButton : Button\n if (!showInput) {\n // Use Button inner ref\n submitAttributes.innerRef = submitAttributes.ref\n submitAttributes.ref = null\n }\n\n return (\n <fieldset className=\"dnb-date-picker__fieldset\" lang={locale?.code}>\n {this.context.props.label && (\n <legend className=\"dnb-sr-only\">\n {this.context.props.label}\n </legend>\n )}\n <Input\n id={`${id}__input`}\n input_state={disabled ? 'disabled' : focusState}\n input_element={\n input_element && typeof input_element !== 'string'\n ? typeof input_element === 'function'\n ? input_element(this.props)\n : input_element\n : this.renderInputElement\n }\n disabled={disabled || skeleton}\n skeleton={skeleton}\n size={size}\n status={!opened ? status : null}\n status_state={status_state}\n {...status_props}\n submit_element={\n <UsedButton\n id={id}\n disabled={disabled}\n skeleton={skeleton}\n className={classnames(\n showInput && 'dnb-button--input-button',\n opened ? 'dnb-button--active' : null\n )}\n aria-label={this.formatDate()}\n title={title}\n size={size}\n status={status}\n status_state={status_state}\n type=\"button\"\n icon=\"calendar\"\n variant=\"secondary\"\n on_submit={onSubmit}\n on_click={onSubmit}\n {...submitAttributes}\n {...status_props}\n />\n }\n lang={locale?.code}\n {...attributes}\n />\n </fieldset>\n )\n }\n}\n\nconst selectAll = (target) => {\n target.focus()\n target.select()\n}\n\nconst InputElement = (props) => {\n return (\n <TextMask\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n spellCheck={false}\n autoCorrect=\"off\"\n {...props}\n />\n )\n}\n\nconst wait = (t) => new Promise((r) => setTimeout(r, t))\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePickerInput.js","names":["React","PropTypes","addDays","addMonths","addYears","isValid","parseISO","classnames","TextMask","Button","Input","SubmitButton","keycode","warn","validateDOMAttributes","dispatchCustomElementEvent","convertStringToDate","DatePickerContext","DatePickerInput","PureComponent","constructor","props","_defineProperty","_listenForPropChanges","focusState","e","focusMode","success","clipboardData","window","getData","preventDefault","separators","possibleFormats","forEach","date","sep","push","replace","split","reverse","join","i","l","length","date_format","mode","state","context","setState","updateState","hoverDate","hasHadValidDate","startDate","endDate","event","_objectSpread","callOnChangeHandler","changeMonthViews","isRange","getDates","reduce","acc","returnObject","getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","typedDates","start_date","end_date","keyCode","target","isDate","getAttribute","match","isInRange","count","callOnChange","wait","selectAll","focus","setSelectionRange","selectionStart","selectionEnd","selectStart","persist","prepareCounting","size","parseFloat","firstSelectionStart","secondSelectionStart","test","index","refList","findIndex","current","nextSibling","prevSibling","endPos","value","setDate","type","fallback","year","getFullYear","month","getMonth","day","getDate","Date","isValidDate","callOnChangeAsInvalid","callOnType","params","id","startDateList","generateDateList","endDateList","createElement","className","_span","maskOrder","separatorRexExp","maskList","cur","shift","_startDayRef","createRef","_startMonthRef","_startYearRef","_endDayRef","_endMonthRef","_endYearRef","componentWillUnmount","_shortcuts","remove","osShortcut","getPlaceholderChar","indexOf","maskPlaceholder","map","slice","placeholderChar","input_element","translation","DatePicker","isRangeLabel","onKeyDown","onKeyDownHandler","onPaste","shortcutHandler","onFocus","onFocusHandler","onBlur","onBlurHandler","DateField","isValidElement","InputElement","inputSizeClassName","Fragment","key","_extends","mask","inputRef","onChange","hidden","formatDate","open_picker_text","selectedDateTitle","render","_this$props","title","submitAttributes","onSubmit","showInput","locale","disabled","skeleton","opened","status","status_state","status_props","attributes","_objectWithoutProperties","_excluded","UsedButton","innerRef","ref","lang","code","label","input_state","renderInputElement","submit_element","icon","variant","on_submit","on_click","process","env","NODE_ENV","propTypes","string","instanceOf","RegExp","object","bool","oneOf","oneOfType","func","node","select","guide","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","t","Promise","r","setTimeout"],"sources":["../../../../src/components/date-picker/DatePickerInput.js"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\n// date-fns\nimport addDays from 'date-fns/addDays'\nimport addMonths from 'date-fns/addMonths'\nimport addYears from 'date-fns/addYears'\nimport isValid from 'date-fns/isValid'\nimport parseISO from 'date-fns/parseISO'\n\nimport classnames from 'classnames'\nimport TextMask from '../input-masked/TextMask'\nimport Button from '../button/Button'\nimport Input, { SubmitButton } from '../input/Input'\nimport keycode from 'keycode'\nimport {\n warn,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { convertStringToDate } from './DatePickerCalc'\nimport DatePickerContext from './DatePickerContext'\n\nexport default class DatePickerInput extends React.PureComponent {\n static contextType = DatePickerContext\n\n static propTypes = {\n id: PropTypes.string,\n title: PropTypes.string,\n selectedDateTitle: PropTypes.string,\n maskOrder: PropTypes.string,\n maskPlaceholder: PropTypes.string,\n separatorRexExp: PropTypes.instanceOf(RegExp),\n submitAttributes: PropTypes.object,\n isRange: PropTypes.bool,\n size: PropTypes.oneOf(['default', 'small', 'medium', 'large']),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n input_element: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n locale: PropTypes.object,\n disabled: PropTypes.bool,\n skeleton: PropTypes.bool,\n opened: PropTypes.bool,\n showInput: PropTypes.bool,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n onFocus: PropTypes.func,\n }\n\n static defaultProps = {\n id: null,\n title: null,\n selectedDateTitle: null,\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå',\n separatorRexExp: /[-/ ]/g,\n submitAttributes: null,\n isRange: null,\n size: null,\n status: null,\n status_state: 'error',\n status_props: null,\n input_element: null,\n disabled: null,\n locale: null,\n skeleton: null,\n opened: false,\n showInput: null,\n onChange: null,\n onSubmit: null,\n onFocus: null,\n }\n\n state = {\n _listenForPropChanges: true,\n focusState: 'virgin',\n }\n\n constructor(props) {\n super(props)\n\n const separators = props.maskOrder.match(props.separatorRexExp)\n this.maskList = props.maskOrder\n .split(props.separatorRexExp)\n .reduce((acc, cur) => {\n if (cur) {\n acc.push(cur)\n if (separators.length > 0) {\n acc.push(separators.shift())\n }\n }\n return acc\n }, [])\n\n this._startDayRef = React.createRef()\n this._startMonthRef = React.createRef()\n this._startYearRef = React.createRef()\n this._endDayRef = React.createRef()\n this._endMonthRef = React.createRef()\n this._endYearRef = React.createRef()\n }\n\n componentWillUnmount() {\n if (this._shortcuts) {\n this._shortcuts.remove(this.osShortcut)\n }\n }\n\n shortcutHandler = async (e) => {\n if (this.focusMode) {\n const success = (\n e.clipboardData ||\n (typeof window !== 'undefined' && window.clipboardData)\n ).getData('text')\n if (success) {\n e.preventDefault()\n try {\n const separators = ['.', '/']\n const possibleFormats = ['yyyy-MM-dd']\n\n possibleFormats.forEach((date) => {\n separators.forEach((sep) => {\n possibleFormats.push(date.replace(/-/g, sep))\n })\n })\n possibleFormats.forEach((date) => {\n possibleFormats.push(date.split('').reverse().join(''))\n })\n\n let date\n for (let i = 0, l = possibleFormats.length; i < l; ++i) {\n date = convertStringToDate(success, {\n date_format: possibleFormats[i],\n })\n if (date) {\n break\n }\n }\n const mode = this.focusMode === 'start' ? 'startDate' : 'endDate'\n if (date && !this.state[mode]) {\n this.context.setState({\n [mode]: date,\n })\n }\n } catch (e) {\n warn(e)\n }\n }\n }\n }\n\n callOnChangeAsInvalid = (state) => {\n this.context.updateState(\n {\n hoverDate: null,\n },\n () => {\n if (this.context.hasHadValidDate) {\n const { startDate, endDate, event } = {\n ...this.context,\n ...state,\n }\n this.context.callOnChangeHandler({ startDate, endDate, event })\n }\n }\n )\n }\n\n callOnChange = ({ startDate, endDate, event }) => {\n const state = { changeMonthViews: true }\n if (typeof startDate !== 'undefined' && isValid(startDate)) {\n state.startDate = startDate\n }\n if (!this.props.isRange) {\n endDate = startDate\n }\n if (typeof endDate !== 'undefined' && isValid(endDate)) {\n state.endDate = endDate\n }\n\n this.context.updateState(state, () => {\n if (\n (typeof startDate !== 'undefined' && isValid(startDate)) ||\n (typeof endDate !== 'undefined' && isValid(endDate))\n ) {\n this.context.callOnChangeHandler({ event })\n }\n })\n }\n\n callOnType = ({ event }) => {\n const getDates = () =>\n ['start', 'end'].reduce((acc, mode) => {\n acc[`${mode}Date`] = [\n this[`_${mode}Year`] || this.context[`__${mode}Year`] || 'yyyy',\n this[`_${mode}Month`] || this.context[`__${mode}Month`] || 'mm',\n this[`_${mode}Day`] || this.context[`__${mode}Day`] || 'dd',\n ].join('-')\n return acc\n }, {})\n\n // Get the typed dates, so we can ...\n let { startDate, endDate } = getDates()\n\n startDate = parseISO(startDate)\n endDate = parseISO(endDate)\n\n // ... check if they were valid\n if (!isValid(startDate)) {\n startDate = null\n }\n if (!isValid(endDate)) {\n endDate = null\n }\n\n let returnObject = this.context.getReturnObject({\n startDate,\n endDate,\n event,\n })\n\n // Now, lets correct\n if (\n returnObject.is_valid === false ||\n returnObject.is_valid_start_date === false ||\n returnObject.is_valid_end_date === false\n ) {\n const { startDate, endDate } = getDates()\n\n const typedDates = this.props.isRange\n ? {\n start_date: startDate,\n end_date: endDate,\n }\n : { date: startDate }\n\n returnObject = {\n ...returnObject,\n ...typedDates,\n }\n }\n\n dispatchCustomElementEvent(this.context, 'on_type', returnObject)\n }\n\n prepareCounting = async ({ keyCode, target, event }) => {\n try {\n const isDate = target\n .getAttribute('class')\n .match(/__input--([day|month|year]+)($|\\s)/)[1]\n\n const isInRange = target\n .getAttribute('id')\n .match(/-([start|end]+)-/)[1]\n\n let date =\n isInRange === 'start'\n ? this.context.startDate\n : this.context.endDate\n\n // do nothing if date is not set yet\n if (!date) {\n return\n }\n\n const count = keyCode === 'up' ? 1 : -1\n\n if (keyCode === 'up' || keyCode === 'down') {\n switch (isDate) {\n case 'day':\n date = addDays(date, count)\n break\n case 'month':\n date = addMonths(date, count)\n break\n case 'year':\n date = addYears(date, count)\n break\n }\n }\n\n this.callOnChange({\n [isInRange === 'start' ? 'startDate' : 'endDate']: date,\n event,\n })\n\n await wait(1) // to get the correct position afterwards\n\n selectAll(target)\n } catch (e) {\n warn(e)\n }\n }\n\n selectStart = (target) => {\n target.focus()\n target.setSelectionRange(0, 0)\n }\n\n onFocusHandler = (event) => {\n try {\n selectAll(event.target)\n } catch (e) {\n warn(e)\n }\n\n this.setState({\n focusState: 'focus',\n _listenForPropChanges: false,\n })\n }\n\n onBlurHandler = () => {\n this.focusMode = null\n this.setState({\n focusState: 'blur',\n _listenForPropChanges: false,\n })\n }\n\n onKeyDownHandler = async (event) => {\n const keyCode = keycode(event)\n const target = event.target\n\n if (target.selectionStart !== target.selectionEnd) {\n this.selectStart(target)\n }\n\n // only to process key up and down press\n switch (keyCode) {\n case 'up':\n case 'down':\n event.persist()\n event.preventDefault()\n this.prepareCounting({ event, keyCode, target })\n return false\n case 'tab':\n // case 'backspace': // We need backspace down here\n return false\n }\n\n // the rest is for value entry\n\n const size = parseFloat(target.getAttribute('size'))\n const firstSelectionStart = target.selectionStart\n\n await wait(1) // to get the correct position afterwards\n\n const secondSelectionStart = target.selectionStart\n const isValid = /[0-9]/.test(keyCode)\n const index = this.refList.findIndex(\n ({ current }) => current === target\n )\n\n if (\n index < this.refList.length - 1 &&\n ((secondSelectionStart === size &&\n isValid &&\n keyCode !== 'left' &&\n keyCode !== 'backspace') ||\n (firstSelectionStart === size && keyCode === 'right'))\n ) {\n try {\n // stop in case there is no next input element\n if (!this.refList[index + 1].current) {\n return\n }\n const nextSibling = this.refList[index + 1].current\n if (nextSibling) {\n nextSibling.focus()\n nextSibling.setSelectionRange(0, 0)\n }\n } catch (e) {\n warn(e)\n }\n } else if (firstSelectionStart === 0 && index > 0) {\n switch (keyCode) {\n case 'left':\n case 'backspace':\n try {\n const prevSibling = this.refList[index - 1].current\n if (prevSibling) {\n const endPos = prevSibling.value.length\n prevSibling.focus()\n prevSibling.setSelectionRange(endPos, endPos)\n }\n } catch (e) {\n warn(e)\n }\n break\n }\n }\n }\n\n set_startDay = (event) => {\n this.setDate(event, 'start', 'Day')\n }\n\n set_startMonth = (event) => {\n this.setDate(event, 'start', 'Month')\n }\n\n set_startYear = (event) => {\n this.setDate(event, 'start', 'Year')\n }\n\n set_endDay = (event) => {\n this.setDate(event, 'end', 'Day')\n }\n\n set_endMonth = (event) => {\n this.setDate(event, 'end', 'Month')\n }\n\n set_endYear = (event) => {\n this.setDate(event, 'end', 'Year')\n }\n\n setDate = (event, mode, type) => {\n event.persist() // since we have later a state update and afterwards the callback\n\n const value = event.target.value\n\n this[`_${mode}${type}`] = value\n\n if (this.context[`${mode}Date`]) {\n this[`tmp_${mode}Date`] = this.context[`${mode}Date`]\n }\n\n const fallback = this[`tmp_${mode}Date`]\n\n // provide fallbacks to create a temp fallback\n const year =\n this[`_${mode}Year`] || (fallback && fallback.getFullYear())\n const month =\n this[`_${mode}Month`] || (fallback && fallback.getMonth() + 1)\n const day = this[`_${mode}Day`] || (fallback && fallback.getDate())\n\n // calculate new date\n const date = new Date(\n parseFloat(year),\n parseFloat(month) - 1,\n parseFloat(day)\n )\n\n const isValidDate =\n !/[^0-9]/.test(day) &&\n !/[^0-9]/.test(month) &&\n !/[^0-9]/.test(year) &&\n isValid(date) &&\n date.getDate() == parseFloat(day) &&\n date.getMonth() + 1 == parseFloat(month) &&\n date.getFullYear() == parseFloat(year)\n\n // update the date\n if (isValidDate) {\n this.callOnChange({\n [`${mode}Date`]: date,\n event,\n })\n } else {\n this.context.updateState({ [`${mode}Date`]: null })\n this.context.updateState({ [`__${mode}${type}`]: value })\n\n this.callOnChangeAsInvalid({\n [`${mode}Date`]: null,\n event,\n })\n }\n\n this.callOnType({\n event,\n })\n }\n\n renderInputElement = (params) => {\n const { id, isRange } = this.props\n this.refList = []\n const startDateList = this.generateDateList(params, 'start')\n const endDateList = this.generateDateList(params, 'end')\n return (\n <span id={`${id}-input`} className=\"dnb-date-picker__input__wrapper\">\n {startDateList}\n {isRange && (\n <span className=\"dnb-date-picker--separator\" aria-hidden>\n {' – '}\n </span>\n )}\n {isRange && endDateList}\n </span>\n )\n }\n\n getPlaceholderChar(value) {\n const index = this.props.maskOrder.indexOf(value)\n return this.props.maskPlaceholder[index]\n }\n\n generateDateList(params, mode) {\n return this.maskList.map((value, i) => {\n const state = value.slice(0, 1)\n const placeholderChar = this.getPlaceholderChar(value)\n const { input_element, separatorRexExp, isRange, size } = this.props\n const { day, month, year } = this.context.translation.DatePicker\n const isRangeLabel = isRange\n ? `${this.context.translation.DatePicker[mode]} `\n : ''\n\n if (!separatorRexExp.test(value)) {\n if (!input_element) {\n params = {\n ...params,\n onKeyDown: this.onKeyDownHandler,\n onPaste: this.shortcutHandler,\n onFocus: (e) => {\n this.focusMode = mode\n this.onFocusHandler(e)\n },\n onBlur: this.onBlurHandler,\n placeholderChar,\n }\n }\n\n // this makes it possible to use a vanilla <input /> like: input_element=\"input\"\n const DateField =\n input_element && React.isValidElement(input_element)\n ? input_element\n : InputElement\n\n const inputSizeClassName =\n size && `dnb-date-picker__input--${size}`\n\n switch (state) {\n case 'd':\n this.refList.push(this[`_${mode}DayRef`])\n\n return (\n <React.Fragment key={'dd' + i}>\n <DateField\n {...params}\n id={`${this.props.id}-${mode}-day`}\n key={'di' + i}\n className={classnames(\n params.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--day',\n inputSizeClassName\n )}\n size=\"2\"\n mask={[/[0-3]/, /[0-9]/]}\n inputRef={this[`_${mode}DayRef`]}\n onChange={this[`set_${mode}Day`]}\n value={this.context[`__${mode}Day`] || ''}\n aria-labelledby={`${this.props.id}-${mode}-day-label`}\n />\n <label\n key={'dl' + i}\n hidden\n id={`${this.props.id}-${mode}-day-label`}\n >\n {isRangeLabel + day}\n </label>\n </React.Fragment>\n )\n case 'm':\n this.refList.push(this[`_${mode}MonthRef`])\n\n return (\n <React.Fragment key={'mm' + i}>\n <DateField\n {...params}\n id={`${this.props.id}-${mode}-month`}\n key={'mi' + i}\n className={classnames(\n params.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--month',\n inputSizeClassName\n )}\n size=\"2\"\n mask={[/[0-1]/, /[0-9]/]}\n inputRef={this[`_${mode}MonthRef`]}\n onChange={this[`set_${mode}Month`]}\n value={this.context[`__${mode}Month`] || ''}\n aria-labelledby={`${this.props.id}-${mode}-month-label`}\n />\n <label\n key={'ml' + i}\n hidden\n id={`${this.props.id}-${mode}-month-label`}\n >\n {isRangeLabel + month}\n </label>\n </React.Fragment>\n )\n case 'y':\n this.refList.push(this[`_${mode}YearRef`])\n\n return (\n <React.Fragment key={'yy' + i}>\n <DateField\n {...params}\n id={`${this.props.id}-${mode}-year`}\n key={'yi' + i}\n className={classnames(\n params.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--year',\n inputSizeClassName\n )}\n size=\"4\"\n mask={[/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/]}\n inputRef={this[`_${mode}YearRef`]}\n onChange={this[`set_${mode}Year`]}\n value={this.context[`__${mode}Year`] || ''}\n aria-labelledby={`${this.props.id}-${mode}-year-label`}\n />\n <label\n key={'yl' + i}\n hidden\n id={`${this.props.id}-${mode}-year-label`}\n >\n {isRangeLabel + year}\n </label>\n </React.Fragment>\n )\n }\n }\n return (\n <span\n key={'s' + i}\n className=\"dnb-date-picker--separator\"\n aria-hidden\n >\n {placeholderChar}\n </span>\n )\n })\n }\n\n formatDate() {\n const { open_picker_text } = this.context.translation.DatePicker\n\n const { selectedDateTitle } = this.props\n\n return selectedDateTitle\n ? `${selectedDateTitle}, ${open_picker_text}`\n : open_picker_text\n }\n\n render() {\n const {\n id,\n title,\n\n submitAttributes,\n isRange, // eslint-disable-line\n maskOrder, // eslint-disable-line\n maskPlaceholder, // eslint-disable-line\n separatorRexExp, // eslint-disable-line\n onChange, // eslint-disable-line\n onFocus, // eslint-disable-line\n onSubmit, // eslint-disable-line\n selectedDateTitle, // eslint-disable-line\n showInput, // eslint-disable-line\n input_element,\n locale,\n disabled,\n skeleton,\n opened,\n size,\n status,\n status_state,\n status_props,\n\n ...attributes\n } = this.props\n\n const { focusState } = this.state\n\n validateDOMAttributes(this.props, attributes)\n validateDOMAttributes(null, submitAttributes)\n\n const UsedButton = showInput ? SubmitButton : Button\n if (!showInput) {\n // Use Button inner ref\n submitAttributes.innerRef = submitAttributes.ref\n submitAttributes.ref = null\n }\n\n return (\n <fieldset className=\"dnb-date-picker__fieldset\" lang={locale?.code}>\n {this.context.props.label && (\n <legend className=\"dnb-sr-only\">\n {this.context.props.label}\n </legend>\n )}\n <Input\n id={`${id}__input`}\n input_state={disabled ? 'disabled' : focusState}\n input_element={\n input_element && typeof input_element !== 'string'\n ? typeof input_element === 'function'\n ? input_element(this.props)\n : input_element\n : this.renderInputElement\n }\n disabled={disabled || skeleton}\n skeleton={skeleton}\n size={size}\n status={!opened ? status : null}\n status_state={status_state}\n {...status_props}\n submit_element={\n <UsedButton\n id={id}\n disabled={disabled}\n skeleton={skeleton}\n className={classnames(\n showInput && 'dnb-button--input-button',\n opened ? 'dnb-button--active' : null\n )}\n aria-label={this.formatDate()}\n title={title}\n size={size}\n status={status}\n status_state={status_state}\n type=\"button\"\n icon=\"calendar\"\n variant=\"secondary\"\n on_submit={onSubmit}\n on_click={onSubmit}\n {...submitAttributes}\n {...status_props}\n />\n }\n lang={locale?.code}\n {...attributes}\n />\n </fieldset>\n )\n }\n}\n\nconst selectAll = (target) => {\n target.focus()\n target.select()\n}\n\nconst InputElement = (props) => {\n return (\n <TextMask\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n spellCheck={false}\n autoCorrect=\"off\"\n {...props}\n />\n )\n}\n\nconst wait = (t) => new Promise((r) => setTimeout(r, t))\n"],"mappings":"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"}
|
|
@@ -269,7 +269,7 @@ const useCallEvent = ({
|
|
|
269
269
|
num = -0;
|
|
270
270
|
}
|
|
271
271
|
const numberValue = Number(num);
|
|
272
|
-
const cleanedValue = numberValue === 0 ? '' : num;
|
|
272
|
+
const cleanedValue = numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num;
|
|
273
273
|
if (name === 'on_change' && numberValue === 0) {
|
|
274
274
|
correctCaretPosition(event.target, maskParams, props);
|
|
275
275
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputMaskedHooks.js","names":["React","classnames","cleanNumber","getCurrencySymbol","isTrue","dispatchCustomElementEvent","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","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","isNumberMask","decimalSeparators","isUnidentified","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","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} 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 // We may have to check against a negative value: && 1 / +0 === 1 / numberValue\n const cleanedValue = numberValue === 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 = {\n decimalSymbol,\n thousandsSeparatorSymbol,\n ...number_mask,\n }\n } else if (as_currency) {\n currency_mask = {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null\n ),\n ...currency_mask,\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","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","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","isNumberMask","decimalSeparators","isUnidentified","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} 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 = {\n decimalSymbol,\n thousandsSeparatorSymbol,\n ...number_mask,\n }\n } else if (as_currency) {\n currency_mask = {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null\n ),\n ...currency_mask,\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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"}
|
|
@@ -201,11 +201,13 @@ export default class ModalContent extends React.PureComponent {
|
|
|
201
201
|
clearTimeout(this._focusTimeout);
|
|
202
202
|
this._focusTimeout = setTimeout(() => {
|
|
203
203
|
try {
|
|
204
|
+
var _focusElement, _focusElement$focus, _focusElement2, _focusElement2$select;
|
|
204
205
|
let focusElement = elem;
|
|
205
206
|
if (typeof focus_selector === 'string') {
|
|
206
207
|
focusElement = elem.querySelector(focus_selector);
|
|
207
208
|
}
|
|
208
|
-
focusElement.focus();
|
|
209
|
+
(_focusElement = focusElement) === null || _focusElement === void 0 ? void 0 : (_focusElement$focus = _focusElement.focus) === null || _focusElement$focus === void 0 ? void 0 : _focusElement$focus.call(_focusElement);
|
|
210
|
+
(_focusElement2 = focusElement) === null || _focusElement2 === void 0 ? void 0 : (_focusElement2$select = _focusElement2.select) === null || _focusElement2$select === void 0 ? void 0 : _focusElement2$select.call(_focusElement2);
|
|
209
211
|
const noH1Elem = elem.querySelector('h1, h2, h3');
|
|
210
212
|
if ((noH1Elem === null || noH1Elem === void 0 ? void 0 : noH1Elem.tagName) !== 'H1') {
|
|
211
213
|
warn('A Dialog or Drawer needs a h1 as its first element!');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalContent.js","names":["React","classnames","keycode","disableBodyScroll","enableBodyScroll","clearAllBodyScrollLocks","warn","isTrue","makeUniqueId","InteractionInvalidation","combineLabelledBy","combineDescribedBy","dispatchCustomElementEvent","ModalContext","IS_IOS","IS_SAFARI","IS_MAC","isAndroid","getListOfModalRoots","getModalRoot","addToIndex","removeFromIndex","getThemeClasses","Context","ModalContent","PureComponent","constructor","props","_defineProperty","triggeredBy","triggeredByEvent","color","modalRoots","firstLevel","_this$props","_ii","setBypassSelector","root_id","bypass_invalidation_selectors","filter","Boolean","activate","forEach","modal","_iiLocal","_scrollRef","current","document","addEventListener","onKeyDownHandler","animation_duration","timeoutDuration","parseFloat","clearTimeout","_androidFocusTimeout","setTimeout","_document$activeEleme","_document$activeEleme2","activeElement","tagName","scrollIntoView","e","event","stopPropagation","closeModalContent","_overlayClickRef","target","currentTarget","prevent_overlay_close","ifIsLatest","mostCurrent","preventDefault","setState","_contentRef","content_ref","createRef","scroll_ref","_id","id","componentDidMount","no_animation","removeScrollPossibility","setFocus","setAndroidFocusHelper","process","env","NODE_ENV","lockBody","_lockTimeout","componentWillUnmount","_focusTimeout","removeLocks","_this$_ii","revert","revertScrollPossibility","length","removeAndroidFocusHelper","state","removeEventListener","window","_androidFocusHelper","focus_selector","elem","focusElement","querySelector","focus","noH1Elem","_ref","_event$persist","params","_objectWithoutProperties","_excluded","persist","call","close","_objectSpread","render","_this$context","_this$props2","hide","title","labelled_by","close_title","dialog_title","hide_close_button","close_button_attributes","no_animation_on_mobile","fullscreen","container_placement","content_class","overlay_class","content_id","children","dialog_role","rest","_excluded2","contentId","useDialogRole","role","contentParams","undefined","className","context","theme","onMouseDown","onContentMouseDownHandler","onClick","onContentClickHandler","content","createElement","Provider","value","setBackgroundColor","onCloseClickHandler","preventClick","contentRef","scrollRef","_extends","style"],"sources":["../../../../src/components/modal/ModalContent.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport keycode from 'keycode'\nimport {\n disableBodyScroll,\n enableBodyScroll,\n clearAllBodyScrollLocks,\n} from './bodyScrollLock'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n InteractionInvalidation,\n combineLabelledBy,\n combineDescribedBy,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport ModalContext from './ModalContext'\nimport { IS_IOS, IS_SAFARI, IS_MAC, isAndroid } from '../../shared/helpers'\nimport { ModalContentProps } from './types'\nimport {\n getListOfModalRoots,\n getModalRoot,\n addToIndex,\n removeFromIndex,\n} from './helpers'\nimport { getThemeClasses } from '../../shared/Theme'\nimport { Context } from '../../shared'\nimport { ContextProps } from '../../shared/Context'\n\ninterface ModalContentState {\n triggeredBy: string\n triggeredByEvent: Event\n color: string\n}\n\ndeclare global {\n interface Window {\n __modalStack: any[]\n }\n}\n\ninterface CSSPropertiesWithVars extends React.CSSProperties {\n '--modal-background-color': string\n}\n\nexport default class ModalContent extends React.PureComponent<\n ModalContentProps,\n ModalContentState\n> {\n state = { triggeredBy: null, triggeredByEvent: null, color: null }\n\n _contentRef: React.RefObject<HTMLElement>\n _scrollRef: React.RefObject<HTMLElement>\n _overlayClickRef: { current: null | HTMLElement }\n _id: string\n _lockTimeout: NodeJS.Timeout\n _focusTimeout: NodeJS.Timeout\n _androidFocusTimeout: NodeJS.Timeout\n _ii: InteractionInvalidation\n _iiLocal: InteractionInvalidation\n\n static contextType = Context\n\n context!: ContextProps\n\n constructor(props: ModalContentProps) {\n super(props)\n this._contentRef = this.props.content_ref || React.createRef()\n this._scrollRef = this.props.scroll_ref || React.createRef()\n this._overlayClickRef = React.createRef()\n\n // NB: The \"\"._id\" is used in the __modalStack as \"last._id\"\n this._id = props.id\n }\n\n componentDidMount() {\n const {\n id = null,\n no_animation = false,\n animation_duration = null,\n } = this.props\n\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n // Add it to the index at first\n // we use it later with getListOfModalRoots\n addToIndex(this)\n\n // Because of nested modals/drawers, we run this regardless\n // has to be run at first – so the scrollbar gets removed\n this.removeScrollPossibility() // forces browser to re-paint\n\n this.setFocus()\n this.setAndroidFocusHelper()\n\n dispatchCustomElementEvent(this, 'on_open', {\n id,\n })\n\n if (isTrue(no_animation) || process.env.NODE_ENV === 'test') {\n this.lockBody() // forces browser to re-paint\n } else {\n this._lockTimeout = setTimeout(this.lockBody, timeoutDuration * 1.2) // a little over --modal-animation-duration\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this._focusTimeout)\n clearTimeout(this._lockTimeout)\n this.removeLocks()\n }\n\n lockBody = () => {\n const modalRoots = getListOfModalRoots()\n const firstLevel = modalRoots[0]\n\n if (firstLevel === this) {\n this._ii = new InteractionInvalidation()\n this._ii.setBypassSelector(\n [\n // Bypass modal content\n '.dnb-modal__content *',\n `#dnb-modal-${this.props.root_id || 'root'}`,\n `#dnb-modal-${this.props.root_id || 'root'} *`,\n\n // TODO: Eventually in future, make it possible to bypass invalidation from outside\n // '.dnb-modal--bypass_invalidation',\n // '.dnb-modal--bypass_invalidation_deep *',\n\n ...(this.props?.bypass_invalidation_selectors || []),\n ].filter(Boolean)\n )\n this._ii.activate()\n } else {\n modalRoots.forEach((modal) => {\n if (\n modal !== this &&\n typeof modal._iiLocal === 'undefined' &&\n typeof modal._scrollRef !== 'undefined'\n ) {\n modal._iiLocal = new InteractionInvalidation()\n modal._iiLocal.activate(modal._scrollRef.current)\n }\n })\n }\n\n if (typeof document !== 'undefined') {\n /** To ensure, we have always a working keydown, we call it both on the element and document */\n document.addEventListener('keydown', this.onKeyDownHandler)\n }\n }\n\n removeLocks() {\n const modalRoots = getListOfModalRoots()\n const firstLevel = modalRoots[0]\n\n removeFromIndex(this)\n\n if (firstLevel === this) {\n this._ii?.revert()\n this.revertScrollPossibility()\n } else {\n try {\n const modal = modalRoots[modalRoots.length - 2]\n if (modal !== this && modal._iiLocal) {\n modal._iiLocal.revert()\n delete modal._iiLocal\n }\n } catch (e) {\n warn(e)\n }\n }\n\n this.removeAndroidFocusHelper()\n\n const id = this.props.id\n const { triggeredBy, triggeredByEvent } = this.state\n dispatchCustomElementEvent(this, 'on_close', {\n id,\n event: triggeredByEvent,\n triggeredBy: triggeredBy || 'unmount',\n })\n\n if (typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.onKeyDownHandler)\n }\n }\n\n setAndroidFocusHelper() {\n if (typeof window !== 'undefined' && isAndroid()) {\n window.addEventListener('resize', this._androidFocusHelper)\n }\n }\n\n removeAndroidFocusHelper() {\n window.removeEventListener('resize', this._androidFocusHelper)\n clearTimeout(this._androidFocusTimeout)\n }\n\n _androidFocusHelper = () => {\n const { animation_duration = null } = this.props\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n clearTimeout(this._androidFocusTimeout)\n this._androidFocusTimeout = setTimeout(() => {\n try {\n if (\n document.activeElement?.tagName == 'INPUT' ||\n document.activeElement?.tagName == 'TEXTAREA'\n ) {\n document.activeElement.scrollIntoView()\n }\n } catch (e) {\n //\n }\n }, timeoutDuration / 2) // Older Android needs a delay here\n }\n\n setFocus() {\n const {\n focus_selector = null,\n no_animation = null,\n animation_duration = null,\n } = this.props\n const elem = this._contentRef.current\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n if (elem) {\n clearTimeout(this._focusTimeout)\n this._focusTimeout = setTimeout(\n () => {\n try {\n let focusElement = elem\n\n // Try to use the \"first-focus\" method first\n if (typeof focus_selector === 'string') {\n focusElement = elem.querySelector(focus_selector)\n }\n\n focusElement.focus()\n\n const noH1Elem = elem.querySelector('h1, h2, h3')\n if (noH1Elem?.tagName !== 'H1') {\n warn('A Dialog or Drawer needs a h1 as its first element!')\n }\n } catch (e) {\n warn(e)\n }\n },\n isTrue(no_animation) ? 0 : timeoutDuration || 0\n ) // with this delay, the user can press esc without an focus action first\n }\n }\n\n removeScrollPossibility() {\n if (this._scrollRef.current) {\n disableBodyScroll(this._scrollRef.current)\n }\n }\n\n revertScrollPossibility() {\n enableBodyScroll(this._scrollRef.current)\n clearAllBodyScrollLocks()\n }\n\n preventClick = (event) => {\n if (event) {\n event.stopPropagation()\n }\n }\n\n onCloseClickHandler = (event: React.SyntheticEvent) => {\n this.closeModalContent(event, { triggeredBy: 'button' })\n }\n\n onContentMouseDownHandler = (event: React.SyntheticEvent) => {\n this._overlayClickRef.current =\n event.target === event.currentTarget\n ? (event.target as HTMLElement)\n : null\n }\n\n onContentClickHandler = (event: React.SyntheticEvent) => {\n /**\n * Prevent false-positive Modal close,\n * when e.g. selecting text inside and moving the mouse outside,\n * we would still get this event fired. There we check if the current click,\n * has the same target as where the click got initiated.\n */\n if (this._overlayClickRef.current !== event.target) {\n return // stop here\n }\n this._overlayClickRef.current = null\n\n const { prevent_overlay_close } = this.props\n\n if (!isTrue(prevent_overlay_close)) {\n this.closeModalContent(event, {\n triggeredBy: 'overlay',\n ifIsLatest: false,\n })\n }\n }\n\n onKeyDownHandler = (event) => {\n switch (keycode(event)) {\n case 'esc': {\n const mostCurrent = getModalRoot(-1)\n\n if (mostCurrent === this) {\n event.preventDefault()\n this.closeModalContent(event, {\n triggeredBy: 'keyboard',\n })\n }\n\n break\n }\n }\n }\n\n closeModalContent(event, { triggeredBy, ...params }) {\n event?.persist?.()\n this.setState({ triggeredBy, triggeredByEvent: event }, () => {\n this.props.close(event, {\n triggeredBy,\n ...params,\n })\n })\n }\n\n setBackgroundColor = (color: string) => {\n this.setState({ color })\n }\n\n render() {\n const {\n hide,\n title,\n labelled_by,\n id: _id, // eslint-disable-line\n close_title = 'Lukk',\n dialog_title = 'Vindu',\n hide_close_button = false,\n close_button_attributes,\n no_animation = false,\n no_animation_on_mobile = false,\n fullscreen = 'auto',\n container_placement = 'right',\n close,\n content_class,\n overlay_class,\n content_id,\n children, // eslint-disable-line\n dialog_role = null,\n ...rest\n } = this.props\n const { color } = this.state\n\n const contentId = content_id || makeUniqueId('modal-')\n\n const useDialogRole = !(IS_MAC || IS_SAFARI || IS_IOS)\n let role = dialog_role || 'dialog'\n if (!useDialogRole && role === 'dialog') {\n role = 'region'\n }\n\n const contentParams = {\n /**\n * Do not use role=\"dialog\" on Safari\n *\n * VoiceOver has troubles with role=\"dialog\" and \"Modal in Modal\",\n * the result is, only the first Modal gets focus (set by Safari)\n *\n * Tests have shown: Both VoiceOver are working fine with the:\n * \"aria-labelledby\" and \"aria-describedby\" approach\n *\n */\n role,\n 'aria-modal': useDialogRole ? true : undefined,\n\n /**\n * ARIA references\n */\n 'aria-labelledby': combineLabelledBy(\n this.props,\n title ? contentId + '-title' : null,\n labelled_by\n ),\n 'aria-describedby': combineDescribedBy(\n this.props,\n contentId + '-content'\n ),\n\n /**\n * If no labelled_by and no title is given,\n * set a fallback \"dialog_title\"\n */\n 'aria-label': !title && !labelled_by ? dialog_title : undefined,\n\n className: classnames(\n 'dnb-modal__content',\n isTrue(fullscreen)\n ? 'dnb-modal__content--fullscreen'\n : fullscreen === 'auto' && 'dnb-modal__content--auto-fullscreen',\n container_placement\n ? `dnb-modal__content--${container_placement || 'right'}`\n : null,\n getThemeClasses(this.context?.theme),\n content_class\n ),\n onMouseDown: this.onContentMouseDownHandler,\n onClick: this.onContentClickHandler,\n }\n\n const content =\n typeof children === 'function'\n ? children({ ...rest, close })\n : children\n\n return (\n <ModalContext.Provider\n value={{\n id: this.props.id,\n title,\n hide_close_button,\n close_button_attributes,\n close_title,\n hide,\n setBackgroundColor: this.setBackgroundColor,\n onCloseClickHandler: this.onCloseClickHandler,\n preventClick: this.preventClick,\n onKeyDownHandler: this.onKeyDownHandler,\n contentRef: this._contentRef,\n scrollRef: this._scrollRef,\n contentId,\n close,\n }}\n >\n <div\n id={contentId}\n /** Sets the color on scroll overflow (at the bottom) */\n style={\n (color\n ? { '--modal-background-color': `var(--color-${color})` }\n : null) as CSSPropertiesWithVars\n }\n {...contentParams}\n >\n {content}\n </div>\n\n <span\n className={classnames(\n 'dnb-modal__overlay',\n hide && 'dnb-modal__overlay--hide',\n isTrue(no_animation) && 'dnb-modal__overlay--no-animation',\n isTrue(no_animation_on_mobile) &&\n 'dnb-modal__overlay--no-animation-on-mobile',\n overlay_class\n )}\n aria-hidden={true}\n />\n </ModalContext.Provider>\n )\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ModalContent.js","names":["React","classnames","keycode","disableBodyScroll","enableBodyScroll","clearAllBodyScrollLocks","warn","isTrue","makeUniqueId","InteractionInvalidation","combineLabelledBy","combineDescribedBy","dispatchCustomElementEvent","ModalContext","IS_IOS","IS_SAFARI","IS_MAC","isAndroid","getListOfModalRoots","getModalRoot","addToIndex","removeFromIndex","getThemeClasses","Context","ModalContent","PureComponent","constructor","props","_defineProperty","triggeredBy","triggeredByEvent","color","modalRoots","firstLevel","_this$props","_ii","setBypassSelector","root_id","bypass_invalidation_selectors","filter","Boolean","activate","forEach","modal","_iiLocal","_scrollRef","current","document","addEventListener","onKeyDownHandler","animation_duration","timeoutDuration","parseFloat","clearTimeout","_androidFocusTimeout","setTimeout","_document$activeEleme","_document$activeEleme2","activeElement","tagName","scrollIntoView","e","event","stopPropagation","closeModalContent","_overlayClickRef","target","currentTarget","prevent_overlay_close","ifIsLatest","mostCurrent","preventDefault","setState","_contentRef","content_ref","createRef","scroll_ref","_id","id","componentDidMount","no_animation","removeScrollPossibility","setFocus","setAndroidFocusHelper","process","env","NODE_ENV","lockBody","_lockTimeout","componentWillUnmount","_focusTimeout","removeLocks","_this$_ii","revert","revertScrollPossibility","length","removeAndroidFocusHelper","state","removeEventListener","window","_androidFocusHelper","focus_selector","elem","_focusElement","_focusElement$focus","_focusElement2","_focusElement2$select","focusElement","querySelector","focus","call","select","noH1Elem","_ref","_event$persist","params","_objectWithoutProperties","_excluded","persist","close","_objectSpread","render","_this$context","_this$props2","hide","title","labelled_by","close_title","dialog_title","hide_close_button","close_button_attributes","no_animation_on_mobile","fullscreen","container_placement","content_class","overlay_class","content_id","children","dialog_role","rest","_excluded2","contentId","useDialogRole","role","contentParams","undefined","className","context","theme","onMouseDown","onContentMouseDownHandler","onClick","onContentClickHandler","content","createElement","Provider","value","setBackgroundColor","onCloseClickHandler","preventClick","contentRef","scrollRef","_extends","style"],"sources":["../../../../src/components/modal/ModalContent.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport keycode from 'keycode'\nimport {\n disableBodyScroll,\n enableBodyScroll,\n clearAllBodyScrollLocks,\n} from './bodyScrollLock'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n InteractionInvalidation,\n combineLabelledBy,\n combineDescribedBy,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport ModalContext from './ModalContext'\nimport { IS_IOS, IS_SAFARI, IS_MAC, isAndroid } from '../../shared/helpers'\nimport { ModalContentProps } from './types'\nimport {\n getListOfModalRoots,\n getModalRoot,\n addToIndex,\n removeFromIndex,\n} from './helpers'\nimport { getThemeClasses } from '../../shared/Theme'\nimport { Context } from '../../shared'\nimport { ContextProps } from '../../shared/Context'\n\ninterface ModalContentState {\n triggeredBy: string\n triggeredByEvent: Event\n color: string\n}\n\ndeclare global {\n interface Window {\n __modalStack: any[]\n }\n}\n\ninterface CSSPropertiesWithVars extends React.CSSProperties {\n '--modal-background-color': string\n}\n\nexport default class ModalContent extends React.PureComponent<\n ModalContentProps,\n ModalContentState\n> {\n state = { triggeredBy: null, triggeredByEvent: null, color: null }\n\n _contentRef: React.RefObject<HTMLElement>\n _scrollRef: React.RefObject<HTMLElement>\n _overlayClickRef: { current: null | HTMLElement }\n _id: string\n _lockTimeout: NodeJS.Timeout\n _focusTimeout: NodeJS.Timeout\n _androidFocusTimeout: NodeJS.Timeout\n _ii: InteractionInvalidation\n _iiLocal: InteractionInvalidation\n\n static contextType = Context\n\n context!: ContextProps\n\n constructor(props: ModalContentProps) {\n super(props)\n this._contentRef = this.props.content_ref || React.createRef()\n this._scrollRef = this.props.scroll_ref || React.createRef()\n this._overlayClickRef = React.createRef()\n\n // NB: The \"\"._id\" is used in the __modalStack as \"last._id\"\n this._id = props.id\n }\n\n componentDidMount() {\n const {\n id = null,\n no_animation = false,\n animation_duration = null,\n } = this.props\n\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n // Add it to the index at first\n // we use it later with getListOfModalRoots\n addToIndex(this)\n\n // Because of nested modals/drawers, we run this regardless\n // has to be run at first – so the scrollbar gets removed\n this.removeScrollPossibility() // forces browser to re-paint\n\n this.setFocus()\n this.setAndroidFocusHelper()\n\n dispatchCustomElementEvent(this, 'on_open', {\n id,\n })\n\n if (isTrue(no_animation) || process.env.NODE_ENV === 'test') {\n this.lockBody() // forces browser to re-paint\n } else {\n this._lockTimeout = setTimeout(this.lockBody, timeoutDuration * 1.2) // a little over --modal-animation-duration\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this._focusTimeout)\n clearTimeout(this._lockTimeout)\n this.removeLocks()\n }\n\n lockBody = () => {\n const modalRoots = getListOfModalRoots()\n const firstLevel = modalRoots[0]\n\n if (firstLevel === this) {\n this._ii = new InteractionInvalidation()\n this._ii.setBypassSelector(\n [\n // Bypass modal content\n '.dnb-modal__content *',\n `#dnb-modal-${this.props.root_id || 'root'}`,\n `#dnb-modal-${this.props.root_id || 'root'} *`,\n\n // TODO: Eventually in future, make it possible to bypass invalidation from outside\n // '.dnb-modal--bypass_invalidation',\n // '.dnb-modal--bypass_invalidation_deep *',\n\n ...(this.props?.bypass_invalidation_selectors || []),\n ].filter(Boolean)\n )\n this._ii.activate()\n } else {\n modalRoots.forEach((modal) => {\n if (\n modal !== this &&\n typeof modal._iiLocal === 'undefined' &&\n typeof modal._scrollRef !== 'undefined'\n ) {\n modal._iiLocal = new InteractionInvalidation()\n modal._iiLocal.activate(modal._scrollRef.current)\n }\n })\n }\n\n if (typeof document !== 'undefined') {\n /** To ensure, we have always a working keydown, we call it both on the element and document */\n document.addEventListener('keydown', this.onKeyDownHandler)\n }\n }\n\n removeLocks() {\n const modalRoots = getListOfModalRoots()\n const firstLevel = modalRoots[0]\n\n removeFromIndex(this)\n\n if (firstLevel === this) {\n this._ii?.revert()\n this.revertScrollPossibility()\n } else {\n try {\n const modal = modalRoots[modalRoots.length - 2]\n if (modal !== this && modal._iiLocal) {\n modal._iiLocal.revert()\n delete modal._iiLocal\n }\n } catch (e) {\n warn(e)\n }\n }\n\n this.removeAndroidFocusHelper()\n\n const id = this.props.id\n const { triggeredBy, triggeredByEvent } = this.state\n dispatchCustomElementEvent(this, 'on_close', {\n id,\n event: triggeredByEvent,\n triggeredBy: triggeredBy || 'unmount',\n })\n\n if (typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.onKeyDownHandler)\n }\n }\n\n setAndroidFocusHelper() {\n if (typeof window !== 'undefined' && isAndroid()) {\n window.addEventListener('resize', this._androidFocusHelper)\n }\n }\n\n removeAndroidFocusHelper() {\n window.removeEventListener('resize', this._androidFocusHelper)\n clearTimeout(this._androidFocusTimeout)\n }\n\n _androidFocusHelper = () => {\n const { animation_duration = null } = this.props\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n clearTimeout(this._androidFocusTimeout)\n this._androidFocusTimeout = setTimeout(() => {\n try {\n if (\n document.activeElement?.tagName == 'INPUT' ||\n document.activeElement?.tagName == 'TEXTAREA'\n ) {\n document.activeElement.scrollIntoView()\n }\n } catch (e) {\n //\n }\n }, timeoutDuration / 2) // Older Android needs a delay here\n }\n\n setFocus() {\n const {\n focus_selector = null,\n no_animation = null,\n animation_duration = null,\n } = this.props\n const elem = this._contentRef.current\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n if (elem) {\n clearTimeout(this._focusTimeout)\n this._focusTimeout = setTimeout(\n () => {\n try {\n let focusElement = elem as HTMLInputElement\n\n // Try to use the \"first-focus\" method first\n if (typeof focus_selector === 'string') {\n focusElement = elem.querySelector(focus_selector)\n }\n\n focusElement?.focus?.()\n focusElement?.select?.()\n\n const noH1Elem = elem.querySelector('h1, h2, h3')\n if (noH1Elem?.tagName !== 'H1') {\n warn('A Dialog or Drawer needs a h1 as its first element!')\n }\n } catch (e) {\n warn(e)\n }\n },\n isTrue(no_animation) ? 0 : timeoutDuration || 0\n ) // with this delay, the user can press esc without an focus action first\n }\n }\n\n removeScrollPossibility() {\n if (this._scrollRef.current) {\n disableBodyScroll(this._scrollRef.current)\n }\n }\n\n revertScrollPossibility() {\n enableBodyScroll(this._scrollRef.current)\n clearAllBodyScrollLocks()\n }\n\n preventClick = (event) => {\n if (event) {\n event.stopPropagation()\n }\n }\n\n onCloseClickHandler = (event: React.SyntheticEvent) => {\n this.closeModalContent(event, { triggeredBy: 'button' })\n }\n\n onContentMouseDownHandler = (event: React.SyntheticEvent) => {\n this._overlayClickRef.current =\n event.target === event.currentTarget\n ? (event.target as HTMLElement)\n : null\n }\n\n onContentClickHandler = (event: React.SyntheticEvent) => {\n /**\n * Prevent false-positive Modal close,\n * when e.g. selecting text inside and moving the mouse outside,\n * we would still get this event fired. There we check if the current click,\n * has the same target as where the click got initiated.\n */\n if (this._overlayClickRef.current !== event.target) {\n return // stop here\n }\n this._overlayClickRef.current = null\n\n const { prevent_overlay_close } = this.props\n\n if (!isTrue(prevent_overlay_close)) {\n this.closeModalContent(event, {\n triggeredBy: 'overlay',\n ifIsLatest: false,\n })\n }\n }\n\n onKeyDownHandler = (event) => {\n switch (keycode(event)) {\n case 'esc': {\n const mostCurrent = getModalRoot(-1)\n\n if (mostCurrent === this) {\n event.preventDefault()\n this.closeModalContent(event, {\n triggeredBy: 'keyboard',\n })\n }\n\n break\n }\n }\n }\n\n closeModalContent(event, { triggeredBy, ...params }) {\n event?.persist?.()\n this.setState({ triggeredBy, triggeredByEvent: event }, () => {\n this.props.close(event, {\n triggeredBy,\n ...params,\n })\n })\n }\n\n setBackgroundColor = (color: string) => {\n this.setState({ color })\n }\n\n render() {\n const {\n hide,\n title,\n labelled_by,\n id: _id, // eslint-disable-line\n close_title = 'Lukk',\n dialog_title = 'Vindu',\n hide_close_button = false,\n close_button_attributes,\n no_animation = false,\n no_animation_on_mobile = false,\n fullscreen = 'auto',\n container_placement = 'right',\n close,\n content_class,\n overlay_class,\n content_id,\n children, // eslint-disable-line\n dialog_role = null,\n ...rest\n } = this.props\n const { color } = this.state\n\n const contentId = content_id || makeUniqueId('modal-')\n\n const useDialogRole = !(IS_MAC || IS_SAFARI || IS_IOS)\n let role = dialog_role || 'dialog'\n if (!useDialogRole && role === 'dialog') {\n role = 'region'\n }\n\n const contentParams = {\n /**\n * Do not use role=\"dialog\" on Safari\n *\n * VoiceOver has troubles with role=\"dialog\" and \"Modal in Modal\",\n * the result is, only the first Modal gets focus (set by Safari)\n *\n * Tests have shown: Both VoiceOver are working fine with the:\n * \"aria-labelledby\" and \"aria-describedby\" approach\n *\n */\n role,\n 'aria-modal': useDialogRole ? true : undefined,\n\n /**\n * ARIA references\n */\n 'aria-labelledby': combineLabelledBy(\n this.props,\n title ? contentId + '-title' : null,\n labelled_by\n ),\n 'aria-describedby': combineDescribedBy(\n this.props,\n contentId + '-content'\n ),\n\n /**\n * If no labelled_by and no title is given,\n * set a fallback \"dialog_title\"\n */\n 'aria-label': !title && !labelled_by ? dialog_title : undefined,\n\n className: classnames(\n 'dnb-modal__content',\n isTrue(fullscreen)\n ? 'dnb-modal__content--fullscreen'\n : fullscreen === 'auto' && 'dnb-modal__content--auto-fullscreen',\n container_placement\n ? `dnb-modal__content--${container_placement || 'right'}`\n : null,\n getThemeClasses(this.context?.theme),\n content_class\n ),\n onMouseDown: this.onContentMouseDownHandler,\n onClick: this.onContentClickHandler,\n }\n\n const content =\n typeof children === 'function'\n ? children({ ...rest, close })\n : children\n\n return (\n <ModalContext.Provider\n value={{\n id: this.props.id,\n title,\n hide_close_button,\n close_button_attributes,\n close_title,\n hide,\n setBackgroundColor: this.setBackgroundColor,\n onCloseClickHandler: this.onCloseClickHandler,\n preventClick: this.preventClick,\n onKeyDownHandler: this.onKeyDownHandler,\n contentRef: this._contentRef,\n scrollRef: this._scrollRef,\n contentId,\n close,\n }}\n >\n <div\n id={contentId}\n /** Sets the color on scroll overflow (at the bottom) */\n style={\n (color\n ? { '--modal-background-color': `var(--color-${color})` }\n : null) as CSSPropertiesWithVars\n }\n {...contentParams}\n >\n {content}\n </div>\n\n <span\n className={classnames(\n 'dnb-modal__overlay',\n hide && 'dnb-modal__overlay--hide',\n isTrue(no_animation) && 'dnb-modal__overlay--no-animation',\n isTrue(no_animation_on_mobile) &&\n 'dnb-modal__overlay--no-animation-on-mobile',\n overlay_class\n )}\n aria-hidden={true}\n />\n </ModalContext.Provider>\n )\n }\n}\n"],"mappings":"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"}
|