@dnb/eufemia 10.75.3 → 10.76.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 +39 -0
- package/cjs/components/DateFormat.d.ts +12 -0
- package/cjs/components/DateFormat.js +24 -0
- package/cjs/components/DateFormat.js.map +1 -0
- package/cjs/components/PortalRoot.d.ts +12 -0
- package/cjs/components/PortalRoot.js +24 -0
- package/cjs/components/PortalRoot.js.map +1 -0
- package/cjs/components/breadcrumb/Breadcrumb.d.ts +4 -0
- package/cjs/components/breadcrumb/Breadcrumb.js +9 -4
- package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/cjs/components/breadcrumb/BreadcrumbDocs.js +5 -0
- package/cjs/components/breadcrumb/BreadcrumbDocs.js.map +1 -1
- package/cjs/components/card/Card.d.ts +4 -0
- package/cjs/components/card/Card.js +13 -4
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/card/CardDocs.js +1 -1
- package/cjs/components/card/CardDocs.js.map +1 -1
- package/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/cjs/components/date-format/DateFormat.d.ts +30 -0
- package/cjs/components/date-format/DateFormat.js +86 -0
- package/cjs/components/date-format/DateFormat.js.map +1 -0
- package/cjs/components/date-format/DateFormatDocs.d.ts +2 -0
- package/cjs/components/date-format/DateFormatDocs.js +34 -0
- package/cjs/components/date-format/DateFormatDocs.js.map +1 -0
- package/cjs/components/date-format/DateFormatUtils.d.ts +11 -0
- package/cjs/components/date-format/DateFormatUtils.js +36 -0
- package/cjs/components/date-format/DateFormatUtils.js.map +1 -0
- package/cjs/components/date-format/index.d.ts +7 -0
- package/cjs/components/date-format/index.js +24 -0
- package/cjs/components/date-format/index.js.map +1 -0
- package/cjs/components/date-picker/DatePicker.js +5 -8
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalc.d.ts +0 -13
- package/cjs/components/date-picker/DatePickerCalc.js +0 -44
- package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendar.js +11 -10
- package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendarNavigator.js +7 -7
- package/cjs/components/date-picker/DatePickerCalendarNavigator.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.js +2 -1
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/date-picker/DatePickerPortal.d.ts +1 -1
- package/cjs/components/date-picker/DatePickerPortal.js +4 -4
- package/cjs/components/date-picker/DatePickerPortal.js.map +1 -1
- package/cjs/components/form-status/FormStatus.js +1 -1
- package/cjs/components/form-status/FormStatus.js.map +1 -1
- package/cjs/components/form-status/style/dnb-form-status.css +1 -1
- package/cjs/components/form-status/style/dnb-form-status.min.css +1 -1
- package/cjs/components/form-status/style/dnb-form-status.scss +1 -1
- package/cjs/components/form-status/style/themes/dnb-form-status-theme-sbanken.css +11 -2
- package/cjs/components/form-status/style/themes/dnb-form-status-theme-sbanken.min.css +1 -1
- package/cjs/components/form-status/style/themes/dnb-form-status-theme-sbanken.scss +6 -2
- package/cjs/components/global-status/style/themes/dnb-global-status-theme-sbanken.css +1 -1
- package/cjs/components/global-status/style/themes/dnb-global-status-theme-sbanken.min.css +1 -1
- package/cjs/components/global-status/style/themes/dnb-global-status-theme-sbanken.scss +1 -1
- package/cjs/components/help-button/style/dnb-help-button-inline.css +1 -1
- package/cjs/components/help-button/style/dnb-help-button-inline.min.css +1 -1
- package/cjs/components/help-button/style/dnb-help-button-inline.scss +1 -1
- package/cjs/components/help-button/style/dnb-help-button.css +1 -1
- package/cjs/components/help-button/style/dnb-help-button.min.css +1 -1
- package/cjs/components/index.d.ts +3 -1
- package/cjs/components/index.js +14 -0
- package/cjs/components/index.js.map +1 -1
- package/cjs/components/info-card/style/dnb-info-card.css +1 -1
- package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
- package/cjs/components/info-card/style/dnb-info-card.scss +1 -1
- package/cjs/components/lib.d.ts +5 -1
- package/cjs/components/lib.js +16 -0
- package/cjs/components/lib.js.map +1 -1
- package/cjs/components/modal/ModalRoot.d.ts +2 -7
- package/cjs/components/modal/ModalRoot.js +9 -65
- package/cjs/components/modal/ModalRoot.js.map +1 -1
- package/cjs/components/portal-root/PortalRoot.d.ts +7 -0
- package/cjs/components/portal-root/PortalRoot.js +65 -0
- package/cjs/components/portal-root/PortalRoot.js.map +1 -0
- package/cjs/components/portal-root/PortalRootDocs.d.ts +2 -0
- package/cjs/components/portal-root/PortalRootDocs.js +19 -0
- package/cjs/components/portal-root/PortalRootDocs.js.map +1 -0
- package/cjs/components/portal-root/index.d.ts +7 -0
- package/cjs/components/portal-root/index.js +24 -0
- package/cjs/components/portal-root/index.js.map +1 -0
- package/cjs/components/section/style/themes/dnb-section-theme-sbanken.css +1 -1
- package/cjs/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -1
- package/cjs/components/section/style/themes/dnb-section-theme-sbanken.scss +1 -1
- package/cjs/components/step-indicator/StepIndicator.js +6 -2
- package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorDocs.js +1 -1
- package/cjs/components/step-indicator/StepIndicatorDocs.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.d.ts +2 -1
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +5 -3
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/cjs/components/switch/Switch.d.ts +12 -3
- package/cjs/components/switch/Switch.js +39 -15
- package/cjs/components/switch/Switch.js.map +1 -1
- package/cjs/components/switch/SwitchDocs.js +5 -0
- package/cjs/components/switch/SwitchDocs.js.map +1 -1
- package/cjs/components/tooltip/TooltipPortal.js +28 -59
- package/cjs/components/tooltip/TooltipPortal.js.map +1 -1
- package/cjs/components/tooltip/style/dnb-tooltip.css +8 -1
- package/cjs/components/tooltip/style/dnb-tooltip.min.css +1 -1
- package/cjs/components/tooltip/style/dnb-tooltip.scss +8 -1
- package/cjs/components/upload/Upload.js +31 -7
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/UploadContext.d.ts +1 -0
- package/cjs/components/upload/UploadContext.js +2 -1
- package/cjs/components/upload/UploadContext.js.map +1 -1
- package/cjs/components/upload/UploadDocs.js +11 -1
- package/cjs/components/upload/UploadDocs.js.map +1 -1
- package/cjs/components/upload/UploadDropzone.d.ts +3 -1
- package/cjs/components/upload/UploadDropzone.js +5 -4
- package/cjs/components/upload/UploadDropzone.js.map +1 -1
- package/cjs/components/upload/UploadFileInput.d.ts +3 -1
- package/cjs/components/upload/UploadFileInput.js +7 -5
- package/cjs/components/upload/UploadFileInput.js.map +1 -1
- package/cjs/components/upload/style/dnb-upload.css +10 -2
- package/cjs/components/upload/style/dnb-upload.min.css +1 -1
- package/cjs/components/upload/style/dnb-upload.scss +12 -2
- package/cjs/components/upload/types.d.ts +4 -0
- package/cjs/components/upload/types.js.map +1 -1
- package/cjs/elements/lists/style/lists-mixins.scss +1 -1
- package/cjs/extensions/forms/Connectors/Bring/address.d.ts +48 -0
- package/cjs/extensions/forms/Connectors/Bring/address.js +185 -0
- package/cjs/extensions/forms/Connectors/Bring/address.js.map +1 -0
- package/cjs/extensions/forms/Connectors/Bring/index.d.ts +1 -0
- package/cjs/extensions/forms/Connectors/Bring/index.js +3 -1
- package/cjs/extensions/forms/Connectors/Bring/index.js.map +1 -1
- package/cjs/extensions/forms/Connectors/Bring/postalCode.js +10 -1
- package/cjs/extensions/forms/Connectors/Bring/postalCode.js.map +1 -1
- package/cjs/extensions/forms/Connectors/createContext.js +3 -0
- package/cjs/extensions/forms/Connectors/createContext.js.map +1 -1
- package/cjs/extensions/forms/Field/Address/Address.d.ts +3 -0
- package/cjs/extensions/forms/Field/Address/Address.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +1 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +11 -8
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js +3 -3
- package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +15 -6
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/style/dnb-selection.css +0 -2
- package/cjs/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
- package/cjs/extensions/forms/Field/Selection/style/dnb-selection.scss +0 -2
- package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +36 -0
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js +26 -7
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/Field/style/field-sizes.scss +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +2 -2
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
- package/cjs/extensions/forms/Form/Card/Card.d.ts +3 -6
- package/cjs/extensions/forms/Form/Card/Card.js +1 -1
- package/cjs/extensions/forms/Form/Card/Card.js.map +1 -1
- package/cjs/extensions/forms/Form/Card/CardDocs.d.ts +1 -0
- package/cjs/extensions/forms/Form/Card/CardDocs.js +14 -11
- package/cjs/extensions/forms/Form/Card/CardDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/Date/Date.js +22 -7
- package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Value/style/value-sizes.scss +2 -2
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +2 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +2 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/sv-SE.js +2 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +4 -6
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/payment-card/style/dnb-payment-card.css +1 -0
- package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +6 -3
- package/cjs/fragments/drawer-list/DrawerList.js +6 -5
- package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListPortal.d.ts +1 -0
- package/cjs/fragments/drawer-list/DrawerListPortal.js +31 -65
- package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.d.ts +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/cjs/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
- package/cjs/index.d.ts +3 -1
- package/cjs/index.js +14 -0
- package/cjs/index.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +2 -2
- package/cjs/shared/Eufemia.js +3 -6
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/build-info/BuildInfo.d.ts +2 -0
- package/cjs/shared/build-info/BuildInfo.js +16 -0
- package/cjs/shared/build-info/BuildInfo.js.map +1 -0
- package/cjs/shared/build-info/BuildInfoData.d.ts +2 -0
- package/cjs/shared/build-info/BuildInfoData.js +9 -0
- package/cjs/shared/build-info/BuildInfoData.js.map +1 -0
- package/cjs/shared/locales/en-GB.d.ts +3 -0
- package/cjs/shared/locales/en-GB.js +3 -0
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +3 -0
- package/cjs/shared/locales/index.d.ts +6 -0
- package/cjs/shared/locales/nb-NO.d.ts +3 -0
- package/cjs/shared/locales/nb-NO.js +3 -0
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/locales/sv-SE.d.ts +3 -0
- package/cjs/shared/locales/sv-SE.js +3 -0
- package/cjs/shared/locales/sv-SE.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +27 -14
- package/cjs/style/dnb-ui-components.min.css +4 -4
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-elements.css +1 -1
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +5 -6
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +4 -6
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/dnb-ui-fragments.css +1 -1
- package/cjs/style/dnb-ui-fragments.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +31 -20
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +5 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/properties.d.ts +2 -0
- package/cjs/style/themes/theme-eiendom/properties.js +3 -1
- package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/properties.d.ts +2 -0
- package/cjs/style/themes/theme-sbanken/properties.js +2 -0
- package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/properties.scss +3 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +44 -24
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/properties.d.ts +2 -0
- package/cjs/style/themes/theme-ui/properties.js +3 -1
- package/cjs/style/themes/theme-ui/properties.js.map +1 -1
- package/cjs/style/themes/theme-ui/properties.scss +3 -0
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +2 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +31 -20
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +5 -6
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +4 -6
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-properties.css +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-properties.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/DateFormat.d.ts +12 -0
- package/components/DateFormat.js +4 -0
- package/components/DateFormat.js.map +1 -0
- package/components/PortalRoot.d.ts +12 -0
- package/components/PortalRoot.js +4 -0
- package/components/PortalRoot.js.map +1 -0
- package/components/breadcrumb/Breadcrumb.d.ts +4 -0
- package/components/breadcrumb/Breadcrumb.js +9 -4
- package/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/components/breadcrumb/BreadcrumbDocs.js +5 -0
- package/components/breadcrumb/BreadcrumbDocs.js.map +1 -1
- package/components/card/Card.d.ts +4 -0
- package/components/card/Card.js +13 -4
- package/components/card/Card.js.map +1 -1
- package/components/card/CardDocs.js +1 -1
- package/components/card/CardDocs.js.map +1 -1
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/date-format/DateFormat.d.ts +30 -0
- package/components/date-format/DateFormat.js +77 -0
- package/components/date-format/DateFormat.js.map +1 -0
- package/components/date-format/DateFormatDocs.d.ts +2 -0
- package/components/date-format/DateFormatDocs.js +28 -0
- package/components/date-format/DateFormatDocs.js.map +1 -0
- package/components/date-format/DateFormatUtils.d.ts +11 -0
- package/components/date-format/DateFormatUtils.js +29 -0
- package/components/date-format/DateFormatUtils.js.map +1 -0
- package/components/date-format/index.d.ts +7 -0
- package/components/date-format/index.js +4 -0
- package/components/date-format/index.js.map +1 -0
- package/components/date-picker/DatePicker.js +3 -6
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerCalc.d.ts +0 -13
- package/components/date-picker/DatePickerCalc.js +0 -41
- package/components/date-picker/DatePickerCalc.js.map +1 -1
- package/components/date-picker/DatePickerCalendar.js +7 -6
- package/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/components/date-picker/DatePickerCalendarNavigator.js +4 -4
- package/components/date-picker/DatePickerCalendarNavigator.js.map +1 -1
- package/components/date-picker/DatePickerInput.js +2 -1
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/date-picker/DatePickerPortal.d.ts +1 -1
- package/components/date-picker/DatePickerPortal.js +4 -4
- package/components/date-picker/DatePickerPortal.js.map +1 -1
- package/components/form-status/FormStatus.js +1 -1
- package/components/form-status/FormStatus.js.map +1 -1
- package/components/form-status/style/dnb-form-status.css +1 -1
- package/components/form-status/style/dnb-form-status.min.css +1 -1
- package/components/form-status/style/dnb-form-status.scss +1 -1
- package/components/form-status/style/themes/dnb-form-status-theme-sbanken.css +11 -2
- package/components/form-status/style/themes/dnb-form-status-theme-sbanken.min.css +1 -1
- package/components/form-status/style/themes/dnb-form-status-theme-sbanken.scss +6 -2
- package/components/global-status/style/themes/dnb-global-status-theme-sbanken.css +1 -1
- package/components/global-status/style/themes/dnb-global-status-theme-sbanken.min.css +1 -1
- package/components/global-status/style/themes/dnb-global-status-theme-sbanken.scss +1 -1
- package/components/help-button/style/dnb-help-button-inline.css +1 -1
- package/components/help-button/style/dnb-help-button-inline.min.css +1 -1
- package/components/help-button/style/dnb-help-button-inline.scss +1 -1
- package/components/help-button/style/dnb-help-button.css +1 -1
- package/components/help-button/style/dnb-help-button.min.css +1 -1
- package/components/index.d.ts +3 -1
- package/components/index.js +3 -1
- package/components/index.js.map +1 -1
- package/components/info-card/style/dnb-info-card.css +1 -1
- package/components/info-card/style/dnb-info-card.min.css +1 -1
- package/components/info-card/style/dnb-info-card.scss +1 -1
- package/components/lib.d.ts +5 -1
- package/components/lib.js +5 -1
- package/components/lib.js.map +1 -1
- package/components/modal/ModalRoot.d.ts +2 -7
- package/components/modal/ModalRoot.js +9 -65
- package/components/modal/ModalRoot.js.map +1 -1
- package/components/portal-root/PortalRoot.d.ts +7 -0
- package/components/portal-root/PortalRoot.js +54 -0
- package/components/portal-root/PortalRoot.js.map +1 -0
- package/components/portal-root/PortalRootDocs.d.ts +2 -0
- package/components/portal-root/PortalRootDocs.js +13 -0
- package/components/portal-root/PortalRootDocs.js.map +1 -0
- package/components/portal-root/index.d.ts +7 -0
- package/components/portal-root/index.js +4 -0
- package/components/portal-root/index.js.map +1 -0
- package/components/section/style/themes/dnb-section-theme-sbanken.css +1 -1
- package/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -1
- package/components/section/style/themes/dnb-section-theme-sbanken.scss +1 -1
- package/components/step-indicator/StepIndicator.js +6 -2
- package/components/step-indicator/StepIndicator.js.map +1 -1
- package/components/step-indicator/StepIndicatorDocs.js +1 -1
- package/components/step-indicator/StepIndicatorDocs.js.map +1 -1
- package/components/step-indicator/StepIndicatorTriggerButton.d.ts +2 -1
- package/components/step-indicator/StepIndicatorTriggerButton.js +5 -3
- package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/components/switch/Switch.d.ts +12 -3
- package/components/switch/Switch.js +40 -16
- package/components/switch/Switch.js.map +1 -1
- package/components/switch/SwitchDocs.js +5 -0
- package/components/switch/SwitchDocs.js.map +1 -1
- package/components/tooltip/TooltipPortal.js +27 -60
- package/components/tooltip/TooltipPortal.js.map +1 -1
- package/components/tooltip/style/dnb-tooltip.css +8 -1
- package/components/tooltip/style/dnb-tooltip.min.css +1 -1
- package/components/tooltip/style/dnb-tooltip.scss +8 -1
- package/components/upload/Upload.js +31 -7
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/UploadContext.d.ts +1 -0
- package/components/upload/UploadContext.js +2 -1
- package/components/upload/UploadContext.js.map +1 -1
- package/components/upload/UploadDocs.js +11 -1
- package/components/upload/UploadDocs.js.map +1 -1
- package/components/upload/UploadDropzone.d.ts +3 -1
- package/components/upload/UploadDropzone.js +5 -4
- package/components/upload/UploadDropzone.js.map +1 -1
- package/components/upload/UploadFileInput.d.ts +3 -1
- package/components/upload/UploadFileInput.js +7 -5
- package/components/upload/UploadFileInput.js.map +1 -1
- package/components/upload/style/dnb-upload.css +10 -2
- package/components/upload/style/dnb-upload.min.css +1 -1
- package/components/upload/style/dnb-upload.scss +12 -2
- package/components/upload/types.d.ts +4 -0
- package/components/upload/types.js.map +1 -1
- package/elements/lists/style/lists-mixins.scss +1 -1
- package/es/components/DateFormat.d.ts +12 -0
- package/es/components/DateFormat.js +4 -0
- package/es/components/DateFormat.js.map +1 -0
- package/es/components/PortalRoot.d.ts +12 -0
- package/es/components/PortalRoot.js +4 -0
- package/es/components/PortalRoot.js.map +1 -0
- package/es/components/breadcrumb/Breadcrumb.d.ts +4 -0
- package/es/components/breadcrumb/Breadcrumb.js +9 -4
- package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/es/components/breadcrumb/BreadcrumbDocs.js +5 -0
- package/es/components/breadcrumb/BreadcrumbDocs.js.map +1 -1
- package/es/components/card/Card.d.ts +4 -0
- package/es/components/card/Card.js +12 -4
- package/es/components/card/Card.js.map +1 -1
- package/es/components/card/CardDocs.js +1 -1
- package/es/components/card/CardDocs.js.map +1 -1
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/date-format/DateFormat.d.ts +30 -0
- package/es/components/date-format/DateFormat.js +74 -0
- package/es/components/date-format/DateFormat.js.map +1 -0
- package/es/components/date-format/DateFormatDocs.d.ts +2 -0
- package/es/components/date-format/DateFormatDocs.js +28 -0
- package/es/components/date-format/DateFormatDocs.js.map +1 -0
- package/es/components/date-format/DateFormatUtils.d.ts +11 -0
- package/es/components/date-format/DateFormatUtils.js +27 -0
- package/es/components/date-format/DateFormatUtils.js.map +1 -0
- package/es/components/date-format/index.d.ts +7 -0
- package/es/components/date-format/index.js +4 -0
- package/es/components/date-format/index.js.map +1 -0
- package/es/components/date-picker/DatePicker.js +3 -6
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerCalc.d.ts +0 -13
- package/es/components/date-picker/DatePickerCalc.js +0 -39
- package/es/components/date-picker/DatePickerCalc.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendar.js +7 -6
- package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendarNavigator.js +4 -4
- package/es/components/date-picker/DatePickerCalendarNavigator.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.js +2 -1
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/date-picker/DatePickerPortal.d.ts +1 -1
- package/es/components/date-picker/DatePickerPortal.js +4 -4
- package/es/components/date-picker/DatePickerPortal.js.map +1 -1
- package/es/components/form-status/FormStatus.js +1 -1
- package/es/components/form-status/FormStatus.js.map +1 -1
- package/es/components/form-status/style/dnb-form-status.css +1 -1
- package/es/components/form-status/style/dnb-form-status.min.css +1 -1
- package/es/components/form-status/style/dnb-form-status.scss +1 -1
- package/es/components/form-status/style/themes/dnb-form-status-theme-sbanken.css +11 -2
- package/es/components/form-status/style/themes/dnb-form-status-theme-sbanken.min.css +1 -1
- package/es/components/form-status/style/themes/dnb-form-status-theme-sbanken.scss +6 -2
- package/es/components/global-status/style/themes/dnb-global-status-theme-sbanken.css +1 -1
- package/es/components/global-status/style/themes/dnb-global-status-theme-sbanken.min.css +1 -1
- package/es/components/global-status/style/themes/dnb-global-status-theme-sbanken.scss +1 -1
- package/es/components/help-button/style/dnb-help-button-inline.css +1 -1
- package/es/components/help-button/style/dnb-help-button-inline.min.css +1 -1
- package/es/components/help-button/style/dnb-help-button-inline.scss +1 -1
- package/es/components/help-button/style/dnb-help-button.css +1 -1
- package/es/components/help-button/style/dnb-help-button.min.css +1 -1
- package/es/components/index.d.ts +3 -1
- package/es/components/index.js +3 -1
- package/es/components/index.js.map +1 -1
- package/es/components/info-card/style/dnb-info-card.css +1 -1
- package/es/components/info-card/style/dnb-info-card.min.css +1 -1
- package/es/components/info-card/style/dnb-info-card.scss +1 -1
- package/es/components/lib.d.ts +5 -1
- package/es/components/lib.js +5 -1
- package/es/components/lib.js.map +1 -1
- package/es/components/modal/ModalRoot.d.ts +2 -7
- package/es/components/modal/ModalRoot.js +9 -61
- package/es/components/modal/ModalRoot.js.map +1 -1
- package/es/components/portal-root/PortalRoot.d.ts +7 -0
- package/es/components/portal-root/PortalRoot.js +54 -0
- package/es/components/portal-root/PortalRoot.js.map +1 -0
- package/es/components/portal-root/PortalRootDocs.d.ts +2 -0
- package/es/components/portal-root/PortalRootDocs.js +13 -0
- package/es/components/portal-root/PortalRootDocs.js.map +1 -0
- package/es/components/portal-root/index.d.ts +7 -0
- package/es/components/portal-root/index.js +4 -0
- package/es/components/portal-root/index.js.map +1 -0
- package/es/components/section/style/themes/dnb-section-theme-sbanken.css +1 -1
- package/es/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -1
- package/es/components/section/style/themes/dnb-section-theme-sbanken.scss +1 -1
- package/es/components/step-indicator/StepIndicator.js +6 -2
- package/es/components/step-indicator/StepIndicator.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorDocs.js +1 -1
- package/es/components/step-indicator/StepIndicatorDocs.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorTriggerButton.d.ts +2 -1
- package/es/components/step-indicator/StepIndicatorTriggerButton.js +5 -3
- package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/es/components/switch/Switch.d.ts +12 -3
- package/es/components/switch/Switch.js +40 -16
- package/es/components/switch/Switch.js.map +1 -1
- package/es/components/switch/SwitchDocs.js +5 -0
- package/es/components/switch/SwitchDocs.js.map +1 -1
- package/es/components/tooltip/TooltipPortal.js +27 -59
- package/es/components/tooltip/TooltipPortal.js.map +1 -1
- package/es/components/tooltip/style/dnb-tooltip.css +8 -1
- package/es/components/tooltip/style/dnb-tooltip.min.css +1 -1
- package/es/components/tooltip/style/dnb-tooltip.scss +8 -1
- package/es/components/upload/Upload.js +31 -7
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/UploadContext.d.ts +1 -0
- package/es/components/upload/UploadContext.js +2 -1
- package/es/components/upload/UploadContext.js.map +1 -1
- package/es/components/upload/UploadDocs.js +11 -1
- package/es/components/upload/UploadDocs.js.map +1 -1
- package/es/components/upload/UploadDropzone.d.ts +3 -1
- package/es/components/upload/UploadDropzone.js +5 -4
- package/es/components/upload/UploadDropzone.js.map +1 -1
- package/es/components/upload/UploadFileInput.d.ts +3 -1
- package/es/components/upload/UploadFileInput.js +7 -5
- package/es/components/upload/UploadFileInput.js.map +1 -1
- package/es/components/upload/style/dnb-upload.css +10 -2
- package/es/components/upload/style/dnb-upload.min.css +1 -1
- package/es/components/upload/style/dnb-upload.scss +12 -2
- package/es/components/upload/types.d.ts +4 -0
- package/es/components/upload/types.js.map +1 -1
- package/es/elements/lists/style/lists-mixins.scss +1 -1
- package/es/extensions/forms/Connectors/Bring/address.d.ts +48 -0
- package/es/extensions/forms/Connectors/Bring/address.js +169 -0
- package/es/extensions/forms/Connectors/Bring/address.js.map +1 -0
- package/es/extensions/forms/Connectors/Bring/index.d.ts +1 -0
- package/es/extensions/forms/Connectors/Bring/index.js +3 -1
- package/es/extensions/forms/Connectors/Bring/index.js.map +1 -1
- package/es/extensions/forms/Connectors/Bring/postalCode.js +9 -1
- package/es/extensions/forms/Connectors/Bring/postalCode.js.map +1 -1
- package/es/extensions/forms/Connectors/createContext.js +3 -0
- package/es/extensions/forms/Connectors/createContext.js.map +1 -1
- package/es/extensions/forms/Field/Address/Address.d.ts +3 -0
- package/es/extensions/forms/Field/Address/Address.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js +1 -1
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.js +5 -2
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Indeterminate/Indeterminate.js +3 -3
- package/es/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +15 -6
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/Selection/style/dnb-selection.css +0 -2
- package/es/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
- package/es/extensions/forms/Field/Selection/style/dnb-selection.scss +0 -2
- package/es/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +37 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/es/extensions/forms/Field/Upload/Upload.js +26 -7
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/Field/style/field-sizes.scss +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +2 -2
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
- package/es/extensions/forms/Form/Card/Card.d.ts +3 -6
- package/es/extensions/forms/Form/Card/Card.js +1 -1
- package/es/extensions/forms/Form/Card/Card.js.map +1 -1
- package/es/extensions/forms/Form/Card/CardDocs.d.ts +1 -0
- package/es/extensions/forms/Form/Card/CardDocs.js +12 -10
- package/es/extensions/forms/Form/Card/CardDocs.js.map +1 -1
- package/es/extensions/forms/Value/Date/Date.js +20 -5
- package/es/extensions/forms/Value/Date/Date.js.map +1 -1
- package/es/extensions/forms/Value/style/value-sizes.scss +2 -2
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/es/extensions/forms/constants/locales/en-GB.js +2 -1
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/es/extensions/forms/constants/locales/index.d.ts +2 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/constants/locales/sv-SE.d.ts +1 -0
- package/es/extensions/forms/constants/locales/sv-SE.js +2 -1
- package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +4 -6
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/payment-card/style/dnb-payment-card.css +1 -0
- package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +6 -3
- package/es/fragments/drawer-list/DrawerList.js +6 -5
- package/es/fragments/drawer-list/DrawerList.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.js +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListPortal.d.ts +1 -0
- package/es/fragments/drawer-list/DrawerListPortal.js +32 -66
- package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.d.ts +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/es/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
- package/es/index.d.ts +3 -1
- package/es/index.js +3 -1
- package/es/index.js.map +1 -1
- package/es/shared/Eufemia.d.ts +2 -2
- package/es/shared/Eufemia.js +3 -3
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/build-info/BuildInfo.cjs +22 -0
- package/es/shared/build-info/BuildInfo.d.ts +2 -0
- package/es/shared/build-info/BuildInfo.js +8 -0
- package/es/shared/build-info/BuildInfo.js.map +1 -0
- package/es/shared/build-info/BuildInfoData.cjs +2 -0
- package/es/shared/build-info/BuildInfoData.d.ts +2 -0
- package/es/shared/build-info/BuildInfoData.js +3 -0
- package/es/shared/build-info/BuildInfoData.js.map +1 -0
- package/es/shared/locales/en-GB.d.ts +3 -0
- package/es/shared/locales/en-GB.js +3 -0
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +3 -0
- package/es/shared/locales/index.d.ts +6 -0
- package/es/shared/locales/nb-NO.d.ts +3 -0
- package/es/shared/locales/nb-NO.js +3 -0
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/locales/sv-SE.d.ts +3 -0
- package/es/shared/locales/sv-SE.js +3 -0
- package/es/shared/locales/sv-SE.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +27 -14
- package/es/style/dnb-ui-components.min.css +4 -4
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-elements.css +1 -1
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +5 -6
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +4 -6
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/dnb-ui-fragments.css +1 -1
- package/es/style/dnb-ui-fragments.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +31 -20
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +5 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/properties.d.ts +2 -0
- package/es/style/themes/theme-eiendom/properties.js +3 -1
- package/es/style/themes/theme-eiendom/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/properties.d.ts +2 -0
- package/es/style/themes/theme-sbanken/properties.js +2 -0
- package/es/style/themes/theme-sbanken/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/properties.scss +3 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +44 -24
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/properties.d.ts +2 -0
- package/es/style/themes/theme-ui/properties.js +3 -1
- package/es/style/themes/theme-ui/properties.js.map +1 -1
- package/es/style/themes/theme-ui/properties.scss +3 -0
- package/es/style/themes/theme-ui/ui-theme-basis.css +2 -1
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +31 -20
- package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/es/style/themes/theme-ui/ui-theme-elements.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +5 -6
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +4 -6
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-properties.css +1 -0
- package/es/style/themes/theme-ui/ui-theme-properties.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.min.css +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/Connectors/Bring/address.d.ts +48 -0
- package/extensions/forms/Connectors/Bring/address.js +170 -0
- package/extensions/forms/Connectors/Bring/address.js.map +1 -0
- package/extensions/forms/Connectors/Bring/index.d.ts +1 -0
- package/extensions/forms/Connectors/Bring/index.js +2 -0
- package/extensions/forms/Connectors/Bring/index.js.map +1 -1
- package/extensions/forms/Connectors/Bring/postalCode.js +9 -1
- package/extensions/forms/Connectors/Bring/postalCode.js.map +1 -1
- package/extensions/forms/Connectors/createContext.js +3 -0
- package/extensions/forms/Connectors/createContext.js.map +1 -1
- package/extensions/forms/Field/Address/Address.d.ts +3 -0
- package/extensions/forms/Field/Address/Address.js.map +1 -1
- package/extensions/forms/Field/Boolean/BooleanDocs.js +1 -1
- package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/extensions/forms/Field/Date/Date.js +5 -2
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Indeterminate/Indeterminate.js +3 -3
- package/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +15 -6
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/Selection/style/dnb-selection.css +0 -2
- package/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
- package/extensions/forms/Field/Selection/style/dnb-selection.scss +0 -2
- package/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +37 -1
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/extensions/forms/Field/Upload/Upload.js +26 -7
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/Field/style/field-sizes.scss +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +2 -2
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
- package/extensions/forms/Form/Card/Card.d.ts +3 -6
- package/extensions/forms/Form/Card/Card.js +1 -1
- package/extensions/forms/Form/Card/Card.js.map +1 -1
- package/extensions/forms/Form/Card/CardDocs.d.ts +1 -0
- package/extensions/forms/Form/Card/CardDocs.js +12 -10
- package/extensions/forms/Form/Card/CardDocs.js.map +1 -1
- package/extensions/forms/Value/Date/Date.js +20 -5
- package/extensions/forms/Value/Date/Date.js.map +1 -1
- package/extensions/forms/Value/style/value-sizes.scss +2 -2
- package/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
- package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/extensions/forms/constants/locales/en-GB.js +2 -1
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/extensions/forms/constants/locales/index.d.ts +2 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/constants/locales/sv-SE.d.ts +1 -0
- package/extensions/forms/constants/locales/sv-SE.js +2 -1
- package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +4 -6
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/payment-card/style/dnb-payment-card.css +1 -0
- package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +6 -3
- package/fragments/drawer-list/DrawerList.js +6 -5
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.js +1 -1
- package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/fragments/drawer-list/DrawerListPortal.d.ts +1 -0
- package/fragments/drawer-list/DrawerListPortal.js +32 -66
- package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/fragments/drawer-list/DrawerListProvider.d.ts +1 -1
- package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
- package/index.d.ts +3 -1
- package/index.js +3 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +2 -2
- package/shared/Eufemia.js +3 -3
- package/shared/Eufemia.js.map +1 -1
- package/shared/build-info/BuildInfo.cjs +22 -0
- package/shared/build-info/BuildInfo.d.ts +2 -0
- package/shared/build-info/BuildInfo.js +8 -0
- package/shared/build-info/BuildInfo.js.map +1 -0
- package/shared/build-info/BuildInfoData.cjs +2 -0
- package/shared/build-info/BuildInfoData.d.ts +2 -0
- package/shared/build-info/BuildInfoData.js +3 -0
- package/shared/build-info/BuildInfoData.js.map +1 -0
- package/shared/locales/en-GB.d.ts +3 -0
- package/shared/locales/en-GB.js +3 -0
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +3 -0
- package/shared/locales/index.d.ts +6 -0
- package/shared/locales/nb-NO.d.ts +3 -0
- package/shared/locales/nb-NO.js +3 -0
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/locales/sv-SE.d.ts +3 -0
- package/shared/locales/sv-SE.js +3 -0
- package/shared/locales/sv-SE.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +27 -14
- package/style/dnb-ui-components.min.css +4 -4
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-elements.css +1 -1
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/dnb-ui-extensions.css +5 -6
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +4 -6
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/dnb-ui-fragments.css +1 -1
- package/style/dnb-ui-fragments.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +31 -20
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +5 -6
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -6
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-eiendom/properties.d.ts +2 -0
- package/style/themes/theme-eiendom/properties.js +3 -1
- package/style/themes/theme-eiendom/properties.js.map +1 -1
- package/style/themes/theme-sbanken/properties.d.ts +2 -0
- package/style/themes/theme-sbanken/properties.js +2 -0
- package/style/themes/theme-sbanken/properties.js.map +1 -1
- package/style/themes/theme-sbanken/properties.scss +3 -0
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-components.css +44 -24
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -6
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -6
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/properties.d.ts +2 -0
- package/style/themes/theme-ui/properties.js +3 -1
- package/style/themes/theme-ui/properties.js.map +1 -1
- package/style/themes/theme-ui/properties.scss +3 -0
- package/style/themes/theme-ui/ui-theme-basis.css +2 -1
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +31 -20
- package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/style/themes/theme-ui/ui-theme-elements.css +1 -1
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +5 -6
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +4 -6
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-properties.css +1 -0
- package/style/themes/theme-ui/ui-theme-properties.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.min.css +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/shared/BuildInfo.d.cts +0 -2
- package/cjs/shared/BuildInfo.js +0 -5
- package/cjs/shared/BuildInfo.js.map +0 -1
- package/es/shared/BuildInfo.cjs +0 -6
- package/es/shared/BuildInfo.d.cts +0 -2
- package/shared/BuildInfo.cjs +0 -6
- package/shared/BuildInfo.d.cts +0 -2
|
@@ -25,10 +25,10 @@ export default function Indeterminate(props) {
|
|
|
25
25
|
onChange === null || onChange === void 0 ? void 0 : onChange(value === valueOn ? valueOn : valueOff);
|
|
26
26
|
}, [onChange, setAllStates, valueOff, valueOn]);
|
|
27
27
|
const value = useMemo(() => {
|
|
28
|
-
if (typeof
|
|
29
|
-
return
|
|
28
|
+
if (typeof internalValue !== 'undefined') {
|
|
29
|
+
return internalValue ? valueOn : valueOff;
|
|
30
30
|
}
|
|
31
|
-
return
|
|
31
|
+
return valueProp;
|
|
32
32
|
}, [valueProp, internalValue, valueOn, valueOff]);
|
|
33
33
|
return React.createElement(Toggle, _extends({}, rest, {
|
|
34
34
|
variant: "checkbox",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Indeterminate.js","names":["React","useCallback","useMemo","Toggle","useDependencePaths","Indeterminate","props","dependencePaths","propagateIndeterminateState","valueOn","valueOff","value","valueProp","onChange","rest","_objectWithoutProperties","_excluded","indeterminate","internalValue","setAllStates","ariaControlsIds","changeHandler","createElement","_extends","variant","htmlAttributes"],"sources":["../../../../../../src/extensions/forms/Field/Indeterminate/Indeterminate.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport Toggle, { Props as ToggleAllProps } from '../Toggle/Toggle'\nimport useDependencePaths from './useDependencePaths'\nimport { Path } from '../../types'\n\nexport type Props = Partial<Omit<ToggleAllProps, 'textOn' | 'textOff'>> & {\n /**\n * An array of paths to the data object.\n */\n dependencePaths: Array<Path>\n\n /**\n * When `checked`, the dependent checkboxes will always be set to \"checked\" when in indeterminate state.\n * When `unchecked`, the dependent checkboxes will be set to \"unchecked\" when in indeterminate state.\n * When \"auto\", the dependent checkboxes will get the inverted state from where the (this) parent checkbox is in.\n * Default is `checked`.\n */\n propagateIndeterminateState?: 'checked' | 'unchecked' | 'auto'\n}\n\nexport default function Indeterminate(props: Props) {\n const {\n dependencePaths,\n propagateIndeterminateState = 'checked',\n valueOn = true,\n valueOff = false,\n value: valueProp,\n onChange,\n ...rest\n } = props\n\n const { indeterminate, internalValue, setAllStates, ariaControlsIds } =\n useDependencePaths(dependencePaths, propagateIndeterminateState)\n\n const changeHandler = useCallback(\n (value: unknown) => {\n setAllStates(value === valueOn)\n onChange?.(value === valueOn ? valueOn : valueOff)\n },\n [onChange, setAllStates, valueOff, valueOn]\n )\n\n const value = useMemo(() => {\n if (typeof
|
|
1
|
+
{"version":3,"file":"Indeterminate.js","names":["React","useCallback","useMemo","Toggle","useDependencePaths","Indeterminate","props","dependencePaths","propagateIndeterminateState","valueOn","valueOff","value","valueProp","onChange","rest","_objectWithoutProperties","_excluded","indeterminate","internalValue","setAllStates","ariaControlsIds","changeHandler","createElement","_extends","variant","htmlAttributes"],"sources":["../../../../../../src/extensions/forms/Field/Indeterminate/Indeterminate.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport Toggle, { Props as ToggleAllProps } from '../Toggle/Toggle'\nimport useDependencePaths from './useDependencePaths'\nimport { Path } from '../../types'\n\nexport type Props = Partial<Omit<ToggleAllProps, 'textOn' | 'textOff'>> & {\n /**\n * An array of paths to the data object.\n */\n dependencePaths: Array<Path>\n\n /**\n * When `checked`, the dependent checkboxes will always be set to \"checked\" when in indeterminate state.\n * When `unchecked`, the dependent checkboxes will be set to \"unchecked\" when in indeterminate state.\n * When \"auto\", the dependent checkboxes will get the inverted state from where the (this) parent checkbox is in.\n * Default is `checked`.\n */\n propagateIndeterminateState?: 'checked' | 'unchecked' | 'auto'\n}\n\nexport default function Indeterminate(props: Props) {\n const {\n dependencePaths,\n propagateIndeterminateState = 'checked',\n valueOn = true,\n valueOff = false,\n value: valueProp,\n onChange,\n ...rest\n } = props\n\n const { indeterminate, internalValue, setAllStates, ariaControlsIds } =\n useDependencePaths(dependencePaths, propagateIndeterminateState)\n\n const changeHandler = useCallback(\n (value: unknown) => {\n setAllStates(value === valueOn)\n onChange?.(value === valueOn ? valueOn : valueOff)\n },\n [onChange, setAllStates, valueOff, valueOn]\n )\n\n const value = useMemo(() => {\n if (typeof internalValue !== 'undefined') {\n return internalValue ? valueOn : valueOff\n }\n\n return valueProp\n }, [valueProp, internalValue, valueOn, valueOff])\n\n return (\n <Toggle\n {...rest}\n variant=\"checkbox\"\n htmlAttributes={{\n indeterminate,\n ['aria-controls']: ariaControlsIds,\n }}\n valueOn={valueOn}\n valueOff={valueOff}\n value={value}\n onChange={changeHandler}\n />\n )\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACnD,OAAOC,MAAM,MAAmC,kBAAkB;AAClE,OAAOC,kBAAkB,MAAM,sBAAsB;AAkBrD,eAAe,SAASC,aAAaA,CAACC,KAAY,EAAE;EAClD,MAAM;MACJC,eAAe;MACfC,2BAA2B,GAAG,SAAS;MACvCC,OAAO,GAAG,IAAI;MACdC,QAAQ,GAAG,KAAK;MAChBC,KAAK,EAAEC,SAAS;MAChBC;IAEF,CAAC,GAAGP,KAAK;IADJQ,IAAI,GAAAC,wBAAA,CACLT,KAAK,EAAAU,SAAA;EAET,MAAM;IAAEC,aAAa;IAAEC,aAAa;IAAEC,YAAY;IAAEC;EAAgB,CAAC,GACnEhB,kBAAkB,CAACG,eAAe,EAAEC,2BAA2B,CAAC;EAElE,MAAMa,aAAa,GAAGpB,WAAW,CAC9BU,KAAc,IAAK;IAClBQ,YAAY,CAACR,KAAK,KAAKF,OAAO,CAAC;IAC/BI,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGF,KAAK,KAAKF,OAAO,GAAGA,OAAO,GAAGC,QAAQ,CAAC;EACpD,CAAC,EACD,CAACG,QAAQ,EAAEM,YAAY,EAAET,QAAQ,EAAED,OAAO,CAC5C,CAAC;EAED,MAAME,KAAK,GAAGT,OAAO,CAAC,MAAM;IAC1B,IAAI,OAAOgB,aAAa,KAAK,WAAW,EAAE;MACxC,OAAOA,aAAa,GAAGT,OAAO,GAAGC,QAAQ;IAC3C;IAEA,OAAOE,SAAS;EAClB,CAAC,EAAE,CAACA,SAAS,EAAEM,aAAa,EAAET,OAAO,EAAEC,QAAQ,CAAC,CAAC;EAEjD,OACEV,KAAA,CAAAsB,aAAA,CAACnB,MAAM,EAAAoB,QAAA,KACDT,IAAI;IACRU,OAAO,EAAC,UAAU;IAClBC,cAAc,EAAE;MACdR,aAAa;MACb,CAAC,eAAe,GAAGG;IACrB,CAAE;IACFX,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEA,QAAS;IACnBC,KAAK,EAAEA,KAAM;IACbE,QAAQ,EAAEQ;EAAc,EACzB,CAAC;AAEN","ignoreList":[]}
|
|
@@ -20,7 +20,7 @@ const defaultCountryCode = '+47';
|
|
|
20
20
|
const defaultPlaceholder = '00 00 00 00';
|
|
21
21
|
const defaultMask = [/\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/];
|
|
22
22
|
function PhoneNumber(props) {
|
|
23
|
-
var _sharedContext$locale, _props$inputRef, _countryCodeRef$
|
|
23
|
+
var _sharedContext$locale, _props$inputRef, _countryCodeRef$curre2;
|
|
24
24
|
const sharedContext = useContext(SharedContext);
|
|
25
25
|
const {
|
|
26
26
|
label: defaultLabel,
|
|
@@ -192,15 +192,24 @@ function PhoneNumber(props) {
|
|
|
192
192
|
}
|
|
193
193
|
}, [value, props.value, lang, updateCurrentDataSet]);
|
|
194
194
|
const handleCountryCodeChange = useCallback(_ref2 => {
|
|
195
|
-
var _data$selectedKey;
|
|
195
|
+
var _data$selectedKey, _countryCodeRef$curre, _numberRef$current;
|
|
196
196
|
let {
|
|
197
197
|
data
|
|
198
198
|
} = _ref2;
|
|
199
199
|
const countryCode = countryCodeRef.current = (data === null || data === void 0 ? void 0 : (_data$selectedKey = data.selectedKey) === null || _data$selectedKey === void 0 ? void 0 : _data$selectedKey.trim()) || emptyValue;
|
|
200
200
|
currentCountryRef.current = data === null || data === void 0 ? void 0 : data.country;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
201
|
+
if (!numberMask && (_countryCodeRef$curre = countryCodeRef.current) !== null && _countryCodeRef$curre !== void 0 && _countryCodeRef$curre.includes(defaultCountryCode) && ((_numberRef$current = numberRef.current) === null || _numberRef$current === void 0 ? void 0 : _numberRef$current.length) > 8) {
|
|
202
|
+
const truncatedNumber = numberRef.current.substring(0, 8);
|
|
203
|
+
callOnChange({
|
|
204
|
+
countryCode,
|
|
205
|
+
phoneNumber: truncatedNumber
|
|
206
|
+
});
|
|
207
|
+
onNumberChange === null || onNumberChange === void 0 ? void 0 : onNumberChange(truncatedNumber);
|
|
208
|
+
} else {
|
|
209
|
+
callOnChange({
|
|
210
|
+
countryCode
|
|
211
|
+
});
|
|
212
|
+
}
|
|
204
213
|
onCountryCodeChange === null || onCountryCodeChange === void 0 ? void 0 : onCountryCodeChange(countryCode);
|
|
205
214
|
}, [emptyValue, callOnChange, onCountryCodeChange]);
|
|
206
215
|
const handleNumberChange = useCallback(value => {
|
|
@@ -256,7 +265,7 @@ function PhoneNumber(props) {
|
|
|
256
265
|
}
|
|
257
266
|
}
|
|
258
267
|
}, [callOnChange, countries, updateCurrentDataSet]);
|
|
259
|
-
const isDefault = (_countryCodeRef$
|
|
268
|
+
const isDefault = (_countryCodeRef$curre2 = countryCodeRef.current) === null || _countryCodeRef$curre2 === void 0 ? void 0 : _countryCodeRef$curre2.includes(defaultCountryCode);
|
|
260
269
|
const fieldBlockProps = _objectSpread({
|
|
261
270
|
id,
|
|
262
271
|
className: classnames('dnb-forms-field-phone-number', className),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneNumber.js","names":["React","useMemo","useContext","useCallback","useEffect","useRef","Autocomplete","classnames","useCountries","StringField","CompositionField","useFieldProps","pickSpacingProps","SharedContext","countryFilter","getCountryData","useTranslation","defaultCountryCode","defaultPlaceholder","defaultMask","PhoneNumber","props","_sharedContext$locale","_props$inputRef","_countryCodeRef$curre","sharedContext","label","defaultLabel","countryCodeLabel","defaultCountryCodeLabel","errorRequired","lang","locale","split","countryCodeRef","emptyValue","prevCountryCodeRef","current","numberRef","dataRef","langRef","wasFilled","currentCountryRef","errorMessages","_objectSpread","validateRequired","value","_ref","required","isChanged","error","countryCode","phoneNumber","splitValue","undefined","fromExternal","external","omitCountryCodeField","toEvent","schema","_props$schema","type","pattern","defaultProps","ref","preparedProps","inputRef","id","path","itemPath","className","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","placeholder","labelSrOnly","numberMask","countries","ccFilter","info","warning","size","hasError","disabled","width","help","validateInitially","continuousValidation","validateContinuously","validateUnchanged","setHasFocus","handleChange","setDisplayValue","onCountryCodeChange","onNumberChange","filterCountries","_inputRef$current","number","length","joinValue","filter","country","updateCurrentDataSet","formatCountryCode","cdc","sort","makeObject","prepareEventValues","_currentCountryRef$cu","arguments","cdcVal","replace","item","find","_item$country","iso","callOnChange","data","eventValues","callOnBlurOrFocus","hasFocus","handleCountryCodeChange","_ref2","_data$selectedKey","selectedKey","trim","handleNumberChange","handleOnBlur","handleOnFocus","handleCountryCodeFocus","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","revalidateInputValue","event","nativeEvent","test","_ref5","window","requestAnimationFrame","isDefault","includes","fieldBlockProps","createElement","mode","label_direction","label_sr_only","status","on_focus","on_blur","on_change","on_type","independent_width","search_numbers","keep_selection","selectall","autoComplete","no_animation","noAnimation","layout","mask","Array","fill","onFocus","onBlur","onChange","innerRef","breakout","outset","inputMode","_country$i18n$lang","name","i18n","en","code","selected_value","search_content","content","match","slice","array","Boolean","join","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { Autocomplete } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport {\n CountryISO,\n type CountryLang,\n type CountryType,\n} from '../../constants/countries'\nimport useCountries from '../SelectCountry/useCountries'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { Props as FieldBlockProps } from '../../FieldBlock'\nimport CompositionField from '../Composition'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldPropsWithExtraValue,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport {\n countryFilter,\n CountryFilterSet,\n getCountryData,\n} from '../SelectCountry'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DrawerListDataArrayItem } from '../../../../fragments/DrawerList'\n\nexport type AdditionalArgs = {\n phoneNumber: string\n countryCode: string\n iso: string\n}\n\nexport type Props = Omit<\n FieldPropsWithExtraValue<string, AdditionalArgs, undefined | string>,\n | 'layout'\n | 'layoutOptions'\n | 'labelSize'\n | 'labelDescription'\n | 'labelDescriptionInline'\n> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n pattern?: StringFieldProps['pattern']\n width?: 'large' | 'stretch'\n inputRef?: React.RefObject<HTMLInputElement>\n omitCountryCodeField?: boolean\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n\n /**\n * Defines the countries to filter. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n} & Pick<StringFieldProps, 'size'>\n\n// Important for the default value to be defined here, and not after the useFieldProps call, to avoid the UI jumping\n// back to +47 once the user empty the field so handleChange send out undefined.\nconst defaultCountryCode = '+47'\nconst defaultPlaceholder = '00 00 00 00'\nconst defaultMask = [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n]\n\ntype EventValues = {\n countryCode?: string\n phoneNumber?: string\n}\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n label: defaultLabel,\n countryCodeLabel: defaultCountryCodeLabel,\n errorRequired,\n } = useTranslation().PhoneNumber\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const countryCodeRef = useRef<Props['value']>(props?.emptyValue)\n const prevCountryCodeRef = useRef(countryCodeRef.current)\n const numberRef = useRef<Props['value']>(props?.emptyValue)\n const dataRef = useRef<Array<DrawerListDataArrayItem>>(null)\n const langRef = useRef<string>(lang)\n const wasFilled = useRef<boolean>(false)\n const currentCountryRef = useRef<CountryType>()\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, isChanged, error }) => {\n if (required) {\n const [countryCode, phoneNumber] = splitValue(value)\n\n if (countryCode !== prevCountryCodeRef.current) {\n if (countryCode) {\n prevCountryCodeRef.current = countryCode\n }\n return undefined\n }\n\n if (isChanged && !phoneNumber) {\n return error\n }\n }\n\n return undefined\n },\n []\n )\n\n const fromExternal = useCallback(\n (external: string) => {\n const [countryCode, phoneNumber] = splitValue(external)\n if (!countryCode && !phoneNumber && !props.omitCountryCodeField) {\n return countryCodeRef.current\n }\n return external\n },\n [props.omitCountryCodeField]\n )\n\n const toEvent = useCallback(\n (value: string) => {\n const [, phoneNumber] = splitValue(value)\n if (!phoneNumber) {\n return props.emptyValue\n }\n return value\n },\n [props.emptyValue]\n )\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n const defaultProps: Partial<Props> = {\n schema,\n errorMessages,\n }\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n ...props,\n ...defaultProps,\n validateRequired,\n fromExternal,\n toEvent,\n inputRef: props.inputRef ?? ref,\n }\n\n const {\n id,\n path,\n itemPath,\n value,\n className,\n inputRef,\n countryCodeFieldClassName,\n numberFieldClassName,\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = defaultLabel,\n labelSrOnly,\n numberMask,\n countries: ccFilter = 'Prioritized',\n emptyValue,\n info,\n warning,\n size,\n error,\n hasError,\n disabled,\n width = props.omitCountryCodeField ? 'medium' : 'large',\n help,\n required,\n validateInitially,\n continuousValidation,\n validateContinuously,\n validateUnchanged,\n omitCountryCodeField,\n setHasFocus,\n handleChange,\n setDisplayValue,\n onCountryCodeChange,\n onNumberChange,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n if (path || itemPath) {\n const number = inputRef.current?.value\n setDisplayValue(\n number?.length > 0\n ? joinValue([countryCodeRef.current, number])\n : undefined\n )\n }\n }, [inputRef, itemPath, path, setDisplayValue, value])\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n const { countries } = useCountries()\n\n const updateCurrentDataSet = useCallback(() => {\n dataRef.current = getCountryData({\n countries,\n lang,\n filter:\n // Make sure the whole cc list is displayed when cc filter is set to specific region\n ccFilter === 'Prioritized' && !wasFilled.current\n ? (country) =>\n `${formatCountryCode(country.cdc)}` ===\n countryCodeRef.current\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n makeObject,\n })\n }, [countries, lang, ccFilter, filter])\n\n const prepareEventValues = useCallback(\n ({\n countryCode = countryCodeRef.current || emptyValue,\n phoneNumber = numberRef.current || emptyValue,\n }: EventValues = {}) => {\n if (!currentCountryRef.current) {\n type Item = DrawerListDataArrayItem & { country: CountryType }\n\n const cdcVal = countryCode?.replace(/^\\+/, '')\n const item = dataRef.current.find((item: Item) => {\n const cdc = item?.country?.cdc\n return cdc === cdcVal\n }) as Item\n\n currentCountryRef.current = item?.country\n }\n\n return {\n ...(!omitCountryCodeField ? { countryCode } : {}),\n phoneNumber,\n iso: currentCountryRef.current?.iso as CountryISO,\n }\n },\n [emptyValue, omitCountryCodeField]\n )\n\n const callOnChange = useCallback(\n (data: EventValues) => {\n const eventValues = prepareEventValues(data)\n handleChange(\n joinValue([eventValues.countryCode, eventValues.phoneNumber]),\n eventValues\n )\n },\n [prepareEventValues, handleChange]\n )\n\n const callOnBlurOrFocus = useCallback(\n (hasFocus: boolean) => {\n setHasFocus(hasFocus, undefined, prepareEventValues())\n },\n [prepareEventValues, setHasFocus]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update countryCode and phoneNumber when value changes.\n */\n useMemo(() => {\n const [countryCode, phoneNumber] = splitValue(props.value || value)\n numberRef.current = phoneNumber\n\n if (lang !== langRef.current || !wasFilled.current) {\n if (!countryCodeRef.current || countryCode) {\n countryCodeRef.current = countryCode || defaultCountryCode\n }\n langRef.current = lang\n\n updateCurrentDataSet()\n }\n }, [value, props.value, lang, updateCurrentDataSet])\n\n const handleCountryCodeChange = useCallback(\n ({\n data,\n }: {\n data: { selectedKey: string; country: CountryType }\n }) => {\n const countryCode = (countryCodeRef.current =\n data?.selectedKey?.trim() || emptyValue)\n currentCountryRef.current = data?.country\n\n callOnChange({ countryCode })\n onCountryCodeChange?.(countryCode)\n },\n [emptyValue, callOnChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (value: string) => {\n const phoneNumber = (numberRef.current = value || emptyValue)\n\n callOnChange({ phoneNumber })\n onNumberChange?.(phoneNumber)\n },\n [emptyValue, callOnChange, onNumberChange]\n )\n\n const handleOnBlur = useCallback(() => {\n callOnBlurOrFocus(false)\n }, [callOnBlurOrFocus])\n\n const handleOnFocus = useCallback(() => {\n callOnBlurOrFocus(true)\n }, [callOnBlurOrFocus])\n\n const handleCountryCodeFocus = useCallback(\n ({ updateData }) => {\n if (!wasFilled.current) {\n wasFilled.current = true\n updateCurrentDataSet()\n updateData(dataRef.current)\n }\n handleOnFocus()\n },\n [handleOnFocus, updateCurrentDataSet]\n )\n\n const onTypeHandler = useCallback(\n ({ value, updateData, revalidateInputValue, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const cdcVal = /\\+\\d{1,3}\\s{1}\\d+/.test(value)\n ? splitValue(value)[0]\n : value\n const country = countries.find(({ cdc }) => cdc === cdcVal)\n if (country?.cdc) {\n const countryCode = (countryCodeRef.current = formatCountryCode(\n country.cdc\n ))\n\n updateCurrentDataSet()\n updateData(dataRef.current)\n callOnChange({ countryCode })\n\n // To ensure correct input value,\n // regardless if there is changed data before or not.\n window.requestAnimationFrame(() => {\n revalidateInputValue()\n })\n }\n }\n },\n [callOnChange, countries, updateCurrentDataSet]\n )\n\n const isDefault = countryCodeRef.current?.includes(defaultCountryCode)\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n className: classnames('dnb-forms-field-phone-number', className),\n width,\n label: undefined,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <CompositionField {...fieldBlockProps}>\n {!omitCountryCodeField && (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n mode=\"async\"\n placeholder={countryCodePlaceholder}\n label_direction=\"vertical\"\n label={countryCodeLabel ?? defaultCountryCodeLabel}\n label_sr_only={labelSrOnly}\n data={dataRef.current}\n value={countryCodeRef.current}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n on_focus={handleCountryCodeFocus}\n on_blur={handleOnBlur}\n on_change={handleCountryCodeChange}\n on_type={onTypeHandler}\n independent_width\n search_numbers\n keep_selection\n selectall\n autoComplete=\"tel-country-code\"\n no_animation={props.noAnimation}\n size={size}\n />\n )}\n <StringField\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n autoComplete=\"tel-national\"\n emptyValue={emptyValue}\n layout=\"vertical\"\n label={label}\n labelSrOnly={labelSrOnly}\n placeholder={\n placeholder ?? (isDefault ? defaultPlaceholder : undefined)\n }\n mask={\n numberMask ?? (isDefault ? defaultMask : Array(12).fill(/\\d/))\n }\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n onChange={handleNumberChange}\n value={numberRef.current}\n innerRef={inputRef}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width=\"stretch\"\n help={{ ...help, breakout: false, outset: false }}\n required={required}\n errorMessages={errorMessages}\n validateInitially={validateInitially}\n validateContinuously={continuousValidation || validateContinuously}\n validateUnchanged={validateUnchanged}\n inputMode=\"tel\"\n size={size}\n />\n </CompositionField>\n )\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n const name = country.i18n[lang] ?? country.i18n.en\n const code = formatCountryCode(country.cdc)\n return {\n selectedKey: code,\n selected_value: `${country.iso} (${code})`,\n search_content: [code, name],\n content: [name, code],\n country,\n }\n}\n\nfunction formatCountryCode(value: string) {\n return `+${value}`\n}\n\nfunction splitValue(value: string) {\n return (\n typeof value === 'string'\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n ).slice(1)\n}\n\nfunction joinValue(array: Array<string>) {\n return array.filter(Boolean).join(' ')\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PhoneNumber.js","names":["React","useMemo","useContext","useCallback","useEffect","useRef","Autocomplete","classnames","useCountries","StringField","CompositionField","useFieldProps","pickSpacingProps","SharedContext","countryFilter","getCountryData","useTranslation","defaultCountryCode","defaultPlaceholder","defaultMask","PhoneNumber","props","_sharedContext$locale","_props$inputRef","_countryCodeRef$curre2","sharedContext","label","defaultLabel","countryCodeLabel","defaultCountryCodeLabel","errorRequired","lang","locale","split","countryCodeRef","emptyValue","prevCountryCodeRef","current","numberRef","dataRef","langRef","wasFilled","currentCountryRef","errorMessages","_objectSpread","validateRequired","value","_ref","required","isChanged","error","countryCode","phoneNumber","splitValue","undefined","fromExternal","external","omitCountryCodeField","toEvent","schema","_props$schema","type","pattern","defaultProps","ref","preparedProps","inputRef","id","path","itemPath","className","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","placeholder","labelSrOnly","numberMask","countries","ccFilter","info","warning","size","hasError","disabled","width","help","validateInitially","continuousValidation","validateContinuously","validateUnchanged","setHasFocus","handleChange","setDisplayValue","onCountryCodeChange","onNumberChange","filterCountries","_inputRef$current","number","length","joinValue","filter","country","updateCurrentDataSet","formatCountryCode","cdc","sort","makeObject","prepareEventValues","_currentCountryRef$cu","arguments","cdcVal","replace","item","find","_item$country","iso","callOnChange","data","eventValues","callOnBlurOrFocus","hasFocus","handleCountryCodeChange","_ref2","_data$selectedKey","_countryCodeRef$curre","_numberRef$current","selectedKey","trim","includes","truncatedNumber","substring","handleNumberChange","handleOnBlur","handleOnFocus","handleCountryCodeFocus","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","revalidateInputValue","event","nativeEvent","test","_ref5","window","requestAnimationFrame","isDefault","fieldBlockProps","createElement","mode","label_direction","label_sr_only","status","on_focus","on_blur","on_change","on_type","independent_width","search_numbers","keep_selection","selectall","autoComplete","no_animation","noAnimation","layout","mask","Array","fill","onFocus","onBlur","onChange","innerRef","breakout","outset","inputMode","_country$i18n$lang","name","i18n","en","code","selected_value","search_content","content","match","slice","array","Boolean","join","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { Autocomplete } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport {\n CountryISO,\n type CountryLang,\n type CountryType,\n} from '../../constants/countries'\nimport useCountries from '../SelectCountry/useCountries'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { Props as FieldBlockProps } from '../../FieldBlock'\nimport CompositionField from '../Composition'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldPropsWithExtraValue,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport {\n countryFilter,\n CountryFilterSet,\n getCountryData,\n} from '../SelectCountry'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DrawerListDataArrayItem } from '../../../../fragments/DrawerList'\n\nexport type AdditionalArgs = {\n phoneNumber: string\n countryCode: string\n iso: string\n}\n\nexport type Props = Omit<\n FieldPropsWithExtraValue<string, AdditionalArgs, undefined | string>,\n | 'layout'\n | 'layoutOptions'\n | 'labelSize'\n | 'labelDescription'\n | 'labelDescriptionInline'\n> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n pattern?: StringFieldProps['pattern']\n width?: 'large' | 'stretch'\n inputRef?: React.RefObject<HTMLInputElement>\n omitCountryCodeField?: boolean\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n\n /**\n * Defines the countries to filter. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n} & Pick<StringFieldProps, 'size'>\n\n// Important for the default value to be defined here, and not after the useFieldProps call, to avoid the UI jumping\n// back to +47 once the user empty the field so handleChange send out undefined.\nconst defaultCountryCode = '+47'\nconst defaultPlaceholder = '00 00 00 00'\nconst defaultMask = [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n]\n\ntype EventValues = {\n countryCode?: string\n phoneNumber?: string\n}\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n label: defaultLabel,\n countryCodeLabel: defaultCountryCodeLabel,\n errorRequired,\n } = useTranslation().PhoneNumber\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const countryCodeRef = useRef<Props['value']>(props?.emptyValue)\n const prevCountryCodeRef = useRef(countryCodeRef.current)\n const numberRef = useRef<Props['value']>(props?.emptyValue)\n const dataRef = useRef<Array<DrawerListDataArrayItem>>(null)\n const langRef = useRef<string>(lang)\n const wasFilled = useRef<boolean>(false)\n const currentCountryRef = useRef<CountryType>()\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, isChanged, error }) => {\n if (required) {\n const [countryCode, phoneNumber] = splitValue(value)\n\n if (countryCode !== prevCountryCodeRef.current) {\n if (countryCode) {\n prevCountryCodeRef.current = countryCode\n }\n return undefined\n }\n\n if (isChanged && !phoneNumber) {\n return error\n }\n }\n\n return undefined\n },\n []\n )\n\n const fromExternal = useCallback(\n (external: string) => {\n const [countryCode, phoneNumber] = splitValue(external)\n if (!countryCode && !phoneNumber && !props.omitCountryCodeField) {\n return countryCodeRef.current\n }\n return external\n },\n [props.omitCountryCodeField]\n )\n\n const toEvent = useCallback(\n (value: string) => {\n const [, phoneNumber] = splitValue(value)\n if (!phoneNumber) {\n return props.emptyValue\n }\n return value\n },\n [props.emptyValue]\n )\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n const defaultProps: Partial<Props> = {\n schema,\n errorMessages,\n }\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n ...props,\n ...defaultProps,\n validateRequired,\n fromExternal,\n toEvent,\n inputRef: props.inputRef ?? ref,\n }\n\n const {\n id,\n path,\n itemPath,\n value,\n className,\n inputRef,\n countryCodeFieldClassName,\n numberFieldClassName,\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = defaultLabel,\n labelSrOnly,\n numberMask,\n countries: ccFilter = 'Prioritized',\n emptyValue,\n info,\n warning,\n size,\n error,\n hasError,\n disabled,\n width = props.omitCountryCodeField ? 'medium' : 'large',\n help,\n required,\n validateInitially,\n continuousValidation,\n validateContinuously,\n validateUnchanged,\n omitCountryCodeField,\n setHasFocus,\n handleChange,\n setDisplayValue,\n onCountryCodeChange,\n onNumberChange,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n if (path || itemPath) {\n const number = inputRef.current?.value\n setDisplayValue(\n number?.length > 0\n ? joinValue([countryCodeRef.current, number])\n : undefined\n )\n }\n }, [inputRef, itemPath, path, setDisplayValue, value])\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n const { countries } = useCountries()\n\n const updateCurrentDataSet = useCallback(() => {\n dataRef.current = getCountryData({\n countries,\n lang,\n filter:\n // Make sure the whole cc list is displayed when cc filter is set to specific region\n ccFilter === 'Prioritized' && !wasFilled.current\n ? (country) =>\n `${formatCountryCode(country.cdc)}` ===\n countryCodeRef.current\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n makeObject,\n })\n }, [countries, lang, ccFilter, filter])\n\n const prepareEventValues = useCallback(\n ({\n countryCode = countryCodeRef.current || emptyValue,\n phoneNumber = numberRef.current || emptyValue,\n }: EventValues = {}) => {\n if (!currentCountryRef.current) {\n type Item = DrawerListDataArrayItem & { country: CountryType }\n\n const cdcVal = countryCode?.replace(/^\\+/, '')\n const item = dataRef.current.find((item: Item) => {\n const cdc = item?.country?.cdc\n return cdc === cdcVal\n }) as Item\n\n currentCountryRef.current = item?.country\n }\n\n return {\n ...(!omitCountryCodeField ? { countryCode } : {}),\n phoneNumber,\n iso: currentCountryRef.current?.iso as CountryISO,\n }\n },\n [emptyValue, omitCountryCodeField]\n )\n\n const callOnChange = useCallback(\n (data: EventValues) => {\n const eventValues = prepareEventValues(data)\n handleChange(\n joinValue([eventValues.countryCode, eventValues.phoneNumber]),\n eventValues\n )\n },\n [prepareEventValues, handleChange]\n )\n\n const callOnBlurOrFocus = useCallback(\n (hasFocus: boolean) => {\n setHasFocus(hasFocus, undefined, prepareEventValues())\n },\n [prepareEventValues, setHasFocus]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update countryCode and phoneNumber when value changes.\n */\n useMemo(() => {\n const [countryCode, phoneNumber] = splitValue(props.value || value)\n numberRef.current = phoneNumber\n\n if (lang !== langRef.current || !wasFilled.current) {\n if (!countryCodeRef.current || countryCode) {\n countryCodeRef.current = countryCode || defaultCountryCode\n }\n langRef.current = lang\n\n updateCurrentDataSet()\n }\n }, [value, props.value, lang, updateCurrentDataSet])\n\n const handleCountryCodeChange = useCallback(\n ({\n data,\n }: {\n data: { selectedKey: string; country: CountryType }\n }) => {\n const countryCode = (countryCodeRef.current =\n data?.selectedKey?.trim() || emptyValue)\n currentCountryRef.current = data?.country\n\n // If the phone number is more than 8 digits, and the country code is the default one (+47),\n // we truncate the phone number to 8 digits.\n // This is to ensure that the phone number does not exceed the maximum length set by the mask.\n // TODO: This is a temporary solution, and should be removed once the mask is updated to handle this case.\n if (\n !numberMask &&\n countryCodeRef.current?.includes(defaultCountryCode) &&\n numberRef.current?.length > 8\n ) {\n const truncatedNumber = numberRef.current.substring(0, 8)\n callOnChange({\n countryCode,\n phoneNumber: truncatedNumber,\n })\n onNumberChange?.(truncatedNumber)\n } else {\n callOnChange({ countryCode })\n }\n onCountryCodeChange?.(countryCode)\n },\n [emptyValue, callOnChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (value: string) => {\n const phoneNumber = (numberRef.current = value || emptyValue)\n\n callOnChange({ phoneNumber })\n onNumberChange?.(phoneNumber)\n },\n [emptyValue, callOnChange, onNumberChange]\n )\n\n const handleOnBlur = useCallback(() => {\n callOnBlurOrFocus(false)\n }, [callOnBlurOrFocus])\n\n const handleOnFocus = useCallback(() => {\n callOnBlurOrFocus(true)\n }, [callOnBlurOrFocus])\n\n const handleCountryCodeFocus = useCallback(\n ({ updateData }) => {\n if (!wasFilled.current) {\n wasFilled.current = true\n updateCurrentDataSet()\n updateData(dataRef.current)\n }\n handleOnFocus()\n },\n [handleOnFocus, updateCurrentDataSet]\n )\n\n const onTypeHandler = useCallback(\n ({ value, updateData, revalidateInputValue, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const cdcVal = /\\+\\d{1,3}\\s{1}\\d+/.test(value)\n ? splitValue(value)[0]\n : value\n const country = countries.find(({ cdc }) => cdc === cdcVal)\n if (country?.cdc) {\n const countryCode = (countryCodeRef.current = formatCountryCode(\n country.cdc\n ))\n\n updateCurrentDataSet()\n updateData(dataRef.current)\n callOnChange({ countryCode })\n\n // To ensure correct input value,\n // regardless if there is changed data before or not.\n window.requestAnimationFrame(() => {\n revalidateInputValue()\n })\n }\n }\n },\n [callOnChange, countries, updateCurrentDataSet]\n )\n\n const isDefault = countryCodeRef.current?.includes(defaultCountryCode)\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n className: classnames('dnb-forms-field-phone-number', className),\n width,\n label: undefined,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <CompositionField {...fieldBlockProps}>\n {!omitCountryCodeField && (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n mode=\"async\"\n placeholder={countryCodePlaceholder}\n label_direction=\"vertical\"\n label={countryCodeLabel ?? defaultCountryCodeLabel}\n label_sr_only={labelSrOnly}\n data={dataRef.current}\n value={countryCodeRef.current}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n on_focus={handleCountryCodeFocus}\n on_blur={handleOnBlur}\n on_change={handleCountryCodeChange}\n on_type={onTypeHandler}\n independent_width\n search_numbers\n keep_selection\n selectall\n autoComplete=\"tel-country-code\"\n no_animation={props.noAnimation}\n size={size}\n />\n )}\n <StringField\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n autoComplete=\"tel-national\"\n emptyValue={emptyValue}\n layout=\"vertical\"\n label={label}\n labelSrOnly={labelSrOnly}\n placeholder={\n placeholder ?? (isDefault ? defaultPlaceholder : undefined)\n }\n mask={\n numberMask ?? (isDefault ? defaultMask : Array(12).fill(/\\d/))\n }\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n onChange={handleNumberChange}\n value={numberRef.current}\n innerRef={inputRef}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width=\"stretch\"\n help={{ ...help, breakout: false, outset: false }}\n required={required}\n errorMessages={errorMessages}\n validateInitially={validateInitially}\n validateContinuously={continuousValidation || validateContinuously}\n validateUnchanged={validateUnchanged}\n inputMode=\"tel\"\n size={size}\n />\n </CompositionField>\n )\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n const name = country.i18n[lang] ?? country.i18n.en\n const code = formatCountryCode(country.cdc)\n return {\n selectedKey: code,\n selected_value: `${country.iso} (${code})`,\n search_content: [code, name],\n content: [name, code],\n country,\n }\n}\n\nfunction formatCountryCode(value: string) {\n return `+${value}`\n}\n\nfunction splitValue(value: string) {\n return (\n typeof value === 'string'\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n ).slice(1)\n}\n\nfunction joinValue(array: Array<string>) {\n return array.filter(Boolean).join(' ')\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,13 +40,11 @@
|
|
|
40
40
|
-webkit-appearance: none;
|
|
41
41
|
appearance: none;
|
|
42
42
|
transform: none;
|
|
43
|
-
z-index: 1;
|
|
44
43
|
left: calc(var(--list-padding) * -1);
|
|
45
44
|
width: 100vw;
|
|
46
45
|
height: var(--list-height);
|
|
47
46
|
}
|
|
48
47
|
.dnb-forms-field-selection__variant--radio-list .dnb-radio .dnb-form-label {
|
|
49
|
-
z-index: 2;
|
|
50
48
|
padding-left: var(--list-padding);
|
|
51
49
|
}
|
|
52
50
|
.dnb-forms-field-selection__variant--radio-list .dnb-radio:not(:first-of-type)::before {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{align-self:center}.dnb-forms-field-selection__options-layout--horizontal .dnb-forms-field-block--layout-horizontal .dnb-form-label,.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{margin-bottom:0}.dnb-forms-field-selection--options-layout--vertical.dnb-forms-field-selection--layout-horizontal .dnb-forms-field-block__label{align-items:flex-start}.dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem}.dnb-forms-field-selection__variant--radio-list{--outline-color:var(--color-black-8);--outline-width:0.0625rem;--list-padding:1rem;--list-height:4rem}.dnb-forms-field-selection__variant--radio-list .dnb-radio-group__shell{row-gap:0}.dnb-forms-field-selection__variant--radio-list .dnb-toggle-button-group__fieldset{--border-color:var(--outline-color);--border-width:var(--outline-width);background-color:var(--color-white);border-color:transparent;border-radius:.5rem;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-selection__variant--radio-list .dnb-radio{justify-content:center;overflow:clip;padding:calc((var(--list-height) - 1.5rem)/2) var(--list-padding);position:relative}.dnb-forms-field-selection__variant--radio-list .dnb-radio .dnb-radio__input{-webkit-appearance:none;appearance:none;height:var(--list-height);left:calc(var(--list-padding)*-1);transform:none;width:100vw
|
|
1
|
+
.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{align-self:center}.dnb-forms-field-selection__options-layout--horizontal .dnb-forms-field-block--layout-horizontal .dnb-form-label,.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{margin-bottom:0}.dnb-forms-field-selection--options-layout--vertical.dnb-forms-field-selection--layout-horizontal .dnb-forms-field-block__label{align-items:flex-start}.dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem}.dnb-forms-field-selection__variant--radio-list{--outline-color:var(--color-black-8);--outline-width:0.0625rem;--list-padding:1rem;--list-height:4rem}.dnb-forms-field-selection__variant--radio-list .dnb-radio-group__shell{row-gap:0}.dnb-forms-field-selection__variant--radio-list .dnb-toggle-button-group__fieldset{--border-color:var(--outline-color);--border-width:var(--outline-width);background-color:var(--color-white);border-color:transparent;border-radius:.5rem;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-selection__variant--radio-list .dnb-radio{justify-content:center;overflow:clip;padding:calc((var(--list-height) - 1.5rem)/2) var(--list-padding);position:relative}.dnb-forms-field-selection__variant--radio-list .dnb-radio .dnb-radio__input{-webkit-appearance:none;appearance:none;height:var(--list-height);left:calc(var(--list-padding)*-1);transform:none;width:100vw}.dnb-forms-field-selection__variant--radio-list .dnb-radio .dnb-form-label{padding-left:var(--list-padding)}.dnb-forms-field-selection__variant--radio-list .dnb-radio:not(:first-of-type):before{background-color:var(--outline-color);bottom:0;content:"";height:var(--outline-width);left:0;position:absolute;right:0;top:0}.dnb-forms-field-selection .dnb-forms-field-block__contents{display:flex}.dnb-forms-field-selection .dnb-radio-group .dnb-height-animation,.dnb-forms-field-selection .dnb-radio-group>.dnb-flex-container,.dnb-forms-field-selection .dnb-toggle-button-group .dnb-height-animation,.dnb-forms-field-selection .dnb-toggle-button-group>.dnb-flex-container{flex-grow:1;width:100%}
|
|
@@ -55,7 +55,6 @@
|
|
|
55
55
|
.dnb-radio__input {
|
|
56
56
|
appearance: none;
|
|
57
57
|
transform: none;
|
|
58
|
-
z-index: 1;
|
|
59
58
|
|
|
60
59
|
left: calc(var(--list-padding) * -1);
|
|
61
60
|
width: 100vw;
|
|
@@ -63,7 +62,6 @@
|
|
|
63
62
|
}
|
|
64
63
|
|
|
65
64
|
.dnb-form-label {
|
|
66
|
-
z-index: 2;
|
|
67
65
|
padding-left: var(--list-padding);
|
|
68
66
|
}
|
|
69
67
|
|
|
@@ -5,7 +5,7 @@ import type { ToggleButtonProps } from '../../../../components/ToggleButton';
|
|
|
5
5
|
export type ToggleProps = {
|
|
6
6
|
valueOn: unknown;
|
|
7
7
|
valueOff: unknown;
|
|
8
|
-
variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons';
|
|
8
|
+
variant?: 'checkbox' | 'radio' | 'switch' | 'checkbox-button' | 'button' | 'buttons';
|
|
9
9
|
textOn?: string;
|
|
10
10
|
textOff?: string;
|
|
11
11
|
size?: ToggleButtonProps['size'] | CheckboxProps['size'];
|
|
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
6
6
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
7
|
import React, { useCallback, useMemo, useRef } from 'react';
|
|
8
8
|
import classnames from 'classnames';
|
|
9
|
-
import { Checkbox, ToggleButton } from '../../../../components';
|
|
9
|
+
import { Checkbox, Switch, ToggleButton, Radio } from '../../../../components';
|
|
10
10
|
import ButtonRow from '../../Form/ButtonRow';
|
|
11
11
|
import FieldBlock from '../../FieldBlock';
|
|
12
12
|
import { useFieldProps } from '../../hooks';
|
|
@@ -61,6 +61,9 @@ function Toggle(props) {
|
|
|
61
61
|
} = _ref;
|
|
62
62
|
handleChange === null || handleChange === void 0 ? void 0 : handleChange(value === 'on' ? valueOn : valueOff);
|
|
63
63
|
}, [handleChange, valueOn, valueOff]);
|
|
64
|
+
const handleSwitchChange = useCallback(args => {
|
|
65
|
+
handleChange === null || handleChange === void 0 ? void 0 : handleChange(args.checked ? valueOn : valueOff, args);
|
|
66
|
+
}, [handleChange, valueOn, valueOff]);
|
|
64
67
|
const cn = classnames('dnb-forms-field-toggle', className);
|
|
65
68
|
const fieldBlockProps = _objectSpread({
|
|
66
69
|
forId: id,
|
|
@@ -103,6 +106,21 @@ function Toggle(props) {
|
|
|
103
106
|
onChange: handleCheckboxChange,
|
|
104
107
|
onClick: handleClick
|
|
105
108
|
}, htmlAttributes)));
|
|
109
|
+
case 'switch':
|
|
110
|
+
return React.createElement(FieldBlock, _extends({}, fieldBlockProps, {
|
|
111
|
+
label: undefined
|
|
112
|
+
}), React.createElement(Switch, _extends({
|
|
113
|
+
id: id,
|
|
114
|
+
className: cn,
|
|
115
|
+
label: labelWithItemNo !== null && labelWithItemNo !== void 0 ? labelWithItemNo : isOn ? textOn !== null && textOn !== void 0 ? textOn : translations.yes : textOff !== null && textOff !== void 0 ? textOff : translations.no,
|
|
116
|
+
labelSrOnly: labelSrOnly,
|
|
117
|
+
checked: isOn,
|
|
118
|
+
disabled: disabled,
|
|
119
|
+
size: size !== 'small' ? size : undefined,
|
|
120
|
+
status: hasError ? 'error' : undefined,
|
|
121
|
+
onChange: handleSwitchChange,
|
|
122
|
+
onClick: handleClick
|
|
123
|
+
}, htmlAttributes)));
|
|
106
124
|
case 'button':
|
|
107
125
|
return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ToggleButton, _extends({
|
|
108
126
|
id: id,
|
|
@@ -139,6 +157,24 @@ function Toggle(props) {
|
|
|
139
157
|
value: "off",
|
|
140
158
|
role: "radio"
|
|
141
159
|
}, htmlAttributes))))));
|
|
160
|
+
case 'radio':
|
|
161
|
+
return React.createElement(FieldBlock, _extends({}, fieldBlockProps, {
|
|
162
|
+
asFieldset: true
|
|
163
|
+
}), React.createElement(Radio.Group, {
|
|
164
|
+
value: isOn ? 'on' : isOff ? 'off' : null,
|
|
165
|
+
on_change: handleToggleChange,
|
|
166
|
+
status: hasError ? 'error' : undefined,
|
|
167
|
+
disabled: disabled,
|
|
168
|
+
size: size !== 'small' ? size : 'default'
|
|
169
|
+
}, React.createElement(Radio, _extends({
|
|
170
|
+
label: textOn !== null && textOn !== void 0 ? textOn : translations.yes,
|
|
171
|
+
value: "on",
|
|
172
|
+
status: hasError ? 'error' : undefined
|
|
173
|
+
}, htmlAttributes)), React.createElement(Radio, _extends({
|
|
174
|
+
label: textOff !== null && textOff !== void 0 ? textOff : translations.no,
|
|
175
|
+
value: "off",
|
|
176
|
+
status: hasError ? 'error' : undefined
|
|
177
|
+
}, htmlAttributes))));
|
|
142
178
|
case 'checkbox-button':
|
|
143
179
|
return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ToggleButton, _extends({
|
|
144
180
|
id: id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toggle.js","names":["React","useCallback","useMemo","useRef","classnames","Checkbox","ToggleButton","ButtonRow","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","useTranslation","useIterateItemNo","Toggle","props","translations","ToggleField","preparedProps","_objectSpread","errorMessages","id","className","valueOn","valueOff","variant","disabled","textOn","textOff","value","size","hasError","htmlAttributes","handleChange","setDisplayValue","preventChangeRef","onClick","handleClick","args","preventDefault","_args$preventDefault","current","call","checked","event","handleCheckboxChange","handleToggleChange","_ref","cn","fieldBlockProps","forId","isOn","isOff","text","label","labelSuffix","required","labelSrOnly","labelWithItemNo","createElement","_extends","undefined","yes","no","status","onChange","on_change","role","asFieldset","bottom","Group","Provider","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport useTranslation from '../../hooks/useTranslation'\nimport { useIterateItemNo } from '../../Iterate/ItemNo/useIterateItemNo'\nimport type {\n CheckboxProps,\n OnChangeParams,\n OnClickParams,\n} from '../../../../components/Checkbox'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\n\nexport type ToggleProps = {\n valueOn: unknown\n valueOff: unknown\n variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons'\n textOn?: string\n textOff?: string\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n\n /**\n * Checkbox props\n */\n onClick?: (\n value: unknown,\n params: { event: React.MouseEvent<HTMLInputElement> }\n ) => void\n}\n\nexport type Props = Omit<FieldProps<unknown>, 'layout' | 'layoutOptions'> &\n ToggleProps\n\nfunction Toggle(props: Props) {\n const translations = useTranslation().ToggleField\n\n const preparedProps: Props = {\n ...props,\n errorMessages: props.errorMessages,\n }\n\n const {\n id,\n className,\n valueOn,\n valueOff,\n variant,\n disabled,\n textOn,\n textOff,\n value,\n size,\n hasError,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n const preventChangeRef = useRef(false)\n\n const onClick = preparedProps?.onClick\n const handleClick = useCallback(\n (args: OnClickParams) => {\n const preventDefault = () => {\n preventChangeRef.current = true\n args.preventDefault?.()\n }\n\n if (preventChangeRef.current) {\n args.checked = !args.checked\n preventChangeRef.current = false\n }\n\n const event = {\n ...args,\n preventDefault,\n }\n onClick?.(args.checked ? valueOn : valueOff, event)\n },\n [onClick, valueOff, valueOn]\n )\n const handleCheckboxChange = useCallback(\n (args: OnChangeParams) => {\n handleChange?.(args.checked ? valueOn : valueOff, args)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleToggleChange = useCallback(\n ({ value }) => {\n handleChange?.(value === 'on' ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n\n const cn = classnames('dnb-forms-field-toggle', className)\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disabled,\n ...pickSpacingProps(props),\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n useMemo(() => {\n const text = isOn ? textOn : textOff\n if (text) {\n setDisplayValue(text)\n }\n }, [isOn, setDisplayValue, textOff, textOn])\n\n const { label, labelSuffix, required, labelSrOnly } = props\n const labelWithItemNo = useIterateItemNo({\n label,\n labelSuffix,\n required,\n })\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps} label={undefined}>\n <Checkbox\n id={id}\n className={cn}\n label={\n labelWithItemNo ??\n (isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no)\n }\n labelSrOnly={labelSrOnly}\n checked={isOn}\n disabled={disabled}\n size={size !== 'small' ? size : undefined}\n status={hasError ? 'error' : undefined}\n onChange={handleCheckboxChange}\n onClick={handleClick}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'buttons':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <ButtonRow bottom=\"x-small\">\n <ToggleButton.Group role=\"radiogroup\">\n <ToggleButtonGroupContext.Provider\n value={{\n value: isOn ? 'on' : isOff ? 'off' : null, // use \"null\" to reset the value\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n size,\n }}\n >\n <ToggleButton\n text={textOn ?? translations.yes}\n value=\"on\"\n role=\"radio\"\n {...htmlAttributes}\n />\n <ToggleButton\n text={textOff ?? translations.no}\n value=\"off\"\n role=\"radio\"\n {...htmlAttributes}\n />\n </ToggleButtonGroupContext.Provider>\n </ToggleButton.Group>\n </ButtonRow>\n </FieldBlock>\n )\n case 'checkbox-button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n variant=\"checkbox\"\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Toggle.js","names":["React","useCallback","useMemo","useRef","classnames","Checkbox","Switch","ToggleButton","Radio","ButtonRow","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","useTranslation","useIterateItemNo","Toggle","props","translations","ToggleField","preparedProps","_objectSpread","errorMessages","id","className","valueOn","valueOff","variant","disabled","textOn","textOff","value","size","hasError","htmlAttributes","handleChange","setDisplayValue","preventChangeRef","onClick","handleClick","args","preventDefault","_args$preventDefault","current","call","checked","event","handleCheckboxChange","handleToggleChange","_ref","handleSwitchChange","cn","fieldBlockProps","forId","isOn","isOff","text","label","labelSuffix","required","labelSrOnly","labelWithItemNo","createElement","_extends","undefined","yes","no","status","onChange","on_change","role","asFieldset","bottom","Group","Provider","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport {\n Checkbox,\n Switch,\n ToggleButton,\n Radio,\n} from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport useTranslation from '../../hooks/useTranslation'\nimport { useIterateItemNo } from '../../Iterate/ItemNo/useIterateItemNo'\nimport type {\n CheckboxProps,\n OnChangeParams,\n OnClickParams,\n} from '../../../../components/Checkbox'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\nimport { SwitchOnChangeParams } from '../../../../components/Switch'\n\nexport type ToggleProps = {\n valueOn: unknown\n valueOff: unknown\n variant?:\n | 'checkbox'\n | 'radio'\n | 'switch'\n | 'checkbox-button'\n | 'button'\n | 'buttons'\n textOn?: string\n textOff?: string\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n\n /**\n * Checkbox props\n */\n onClick?: (\n value: unknown,\n params: { event: React.MouseEvent<HTMLInputElement> }\n ) => void\n}\n\nexport type Props = Omit<FieldProps<unknown>, 'layout' | 'layoutOptions'> &\n ToggleProps\n\nfunction Toggle(props: Props) {\n const translations = useTranslation().ToggleField\n\n const preparedProps: Props = {\n ...props,\n errorMessages: props.errorMessages,\n }\n\n const {\n id,\n className,\n valueOn,\n valueOff,\n variant,\n disabled,\n textOn,\n textOff,\n value,\n size,\n hasError,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n const preventChangeRef = useRef(false)\n\n const onClick = preparedProps?.onClick\n const handleClick = useCallback(\n (args: OnClickParams) => {\n const preventDefault = () => {\n preventChangeRef.current = true\n args.preventDefault?.()\n }\n\n if (preventChangeRef.current) {\n args.checked = !args.checked\n preventChangeRef.current = false\n }\n\n const event = {\n ...args,\n preventDefault,\n }\n onClick?.(args.checked ? valueOn : valueOff, event)\n },\n [onClick, valueOff, valueOn]\n )\n const handleCheckboxChange = useCallback(\n (args: OnChangeParams) => {\n handleChange?.(args.checked ? valueOn : valueOff, args)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleToggleChange = useCallback(\n ({ value }) => {\n handleChange?.(value === 'on' ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleSwitchChange = useCallback(\n (args: SwitchOnChangeParams) => {\n handleChange?.(args.checked ? valueOn : valueOff, args)\n },\n [handleChange, valueOn, valueOff]\n )\n\n const cn = classnames('dnb-forms-field-toggle', className)\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disabled,\n ...pickSpacingProps(props),\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n useMemo(() => {\n const text = isOn ? textOn : textOff\n if (text) {\n setDisplayValue(text)\n }\n }, [isOn, setDisplayValue, textOff, textOn])\n\n const { label, labelSuffix, required, labelSrOnly } = props\n const labelWithItemNo = useIterateItemNo({\n label,\n labelSuffix,\n required,\n })\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps} label={undefined}>\n <Checkbox\n id={id}\n className={cn}\n label={\n labelWithItemNo ??\n (isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no)\n }\n labelSrOnly={labelSrOnly}\n checked={isOn}\n disabled={disabled}\n size={size !== 'small' ? size : undefined}\n status={hasError ? 'error' : undefined}\n onChange={handleCheckboxChange}\n onClick={handleClick}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'switch':\n return (\n <FieldBlock {...fieldBlockProps} label={undefined}>\n <Switch\n id={id}\n className={cn}\n label={\n labelWithItemNo ??\n (isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no)\n }\n labelSrOnly={labelSrOnly}\n checked={isOn}\n disabled={disabled}\n size={size !== 'small' ? size : undefined}\n status={hasError ? 'error' : undefined}\n onChange={handleSwitchChange}\n onClick={handleClick}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'buttons':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <ButtonRow bottom=\"x-small\">\n <ToggleButton.Group role=\"radiogroup\">\n <ToggleButtonGroupContext.Provider\n value={{\n value: isOn ? 'on' : isOff ? 'off' : null, // use \"null\" to reset the value\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n size,\n }}\n >\n <ToggleButton\n text={textOn ?? translations.yes}\n value=\"on\"\n role=\"radio\"\n {...htmlAttributes}\n />\n <ToggleButton\n text={textOff ?? translations.no}\n value=\"off\"\n role=\"radio\"\n {...htmlAttributes}\n />\n </ToggleButtonGroupContext.Provider>\n </ToggleButton.Group>\n </ButtonRow>\n </FieldBlock>\n )\n case 'radio':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <Radio.Group\n value={isOn ? 'on' : isOff ? 'off' : null}\n on_change={handleToggleChange}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n size={size !== 'small' ? size : 'default'} // Radio does not support \"small\" size\n >\n <Radio\n label={textOn ?? translations.yes}\n value=\"on\"\n status={hasError ? 'error' : undefined}\n {...htmlAttributes}\n />\n <Radio\n label={textOff ?? translations.no}\n value=\"off\"\n status={hasError ? 'error' : undefined}\n {...htmlAttributes}\n />\n </Radio.Group>\n </FieldBlock>\n )\n case 'checkbox-button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n variant=\"checkbox\"\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@ import { UploadFile, UploadFileNative, UploadProps } from '../../../../component
|
|
|
3
3
|
import { SpacingProps } from '../../../../shared/types';
|
|
4
4
|
export type { UploadFile, UploadFileNative };
|
|
5
5
|
export type UploadValue = Array<UploadFile | UploadFileNative>;
|
|
6
|
-
export type Props = Omit<FieldProps<UploadValue, UploadValue | undefined>, 'layout' | 'layoutOptions' | 'onBlurValidator' | 'onChangeValidator' | 'contentWidth' | 'labelSize' | 'labelDescriptionInline' | 'labelSrOnly' | 'labelSize' | 'labelSuffix'> & SpacingProps & Pick<Partial<UploadProps>, 'title' | 'text' | 'acceptedFileTypes' | 'filesAmountLimit' | 'fileMaxSize' | 'onFileDelete' | 'onFileClick' | 'skeleton' | 'download' | 'allowDuplicates' | 'disableDragAndDrop'> & {
|
|
6
|
+
export type Props = Omit<FieldProps<UploadValue, UploadValue | undefined>, 'layout' | 'layoutOptions' | 'onBlurValidator' | 'onChangeValidator' | 'contentWidth' | 'labelSize' | 'labelDescriptionInline' | 'labelSrOnly' | 'labelSize' | 'labelSuffix'> & SpacingProps & Pick<Partial<UploadProps>, 'children' | 'title' | 'variant' | 'text' | 'acceptedFileTypes' | 'filesAmountLimit' | 'fileMaxSize' | 'onFileDelete' | 'onFileClick' | 'skeleton' | 'download' | 'allowDuplicates' | 'disableDragAndDrop'> & {
|
|
7
7
|
fileHandler?: (newFiles: UploadValue) => UploadValue | Promise<UploadValue>;
|
|
8
8
|
width?: 'large' | 'stretch';
|
|
9
9
|
};
|
|
@@ -78,6 +78,7 @@ function UploadComponent(props) {
|
|
|
78
78
|
const {
|
|
79
79
|
title = sharedTr.title,
|
|
80
80
|
text = sharedTr.text,
|
|
81
|
+
variant = 'normal',
|
|
81
82
|
acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],
|
|
82
83
|
filesAmountLimit = 100,
|
|
83
84
|
fileMaxSize = 5,
|
|
@@ -162,8 +163,10 @@ function UploadComponent(props) {
|
|
|
162
163
|
width,
|
|
163
164
|
help: undefined
|
|
164
165
|
}, pickSpacingProps(props));
|
|
166
|
+
const usedLabelDescription = labelDescription !== null && labelDescription !== void 0 ? labelDescription : text;
|
|
165
167
|
return React.createElement(FieldBlock, fieldBlockProps, React.createElement(Upload, _extends({
|
|
166
168
|
id: id,
|
|
169
|
+
variant: variant,
|
|
167
170
|
acceptedFileTypes: acceptedFileTypes,
|
|
168
171
|
filesAmountLimit: filesAmountLimit,
|
|
169
172
|
download: download,
|
|
@@ -175,17 +178,33 @@ function UploadComponent(props) {
|
|
|
175
178
|
onChange: changeHandler,
|
|
176
179
|
onFileDelete: onFileDelete,
|
|
177
180
|
onFileClick: onFileClick,
|
|
178
|
-
title:
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
left: text ? 'x-small' : false,
|
|
181
|
+
title: help && labelDescription === false ? React.createElement(LabelWithHelpButton, {
|
|
182
|
+
label: label !== null && label !== void 0 ? label : title,
|
|
183
|
+
id: id,
|
|
182
184
|
help: help
|
|
183
|
-
})
|
|
185
|
+
}) : label !== null && label !== void 0 ? label : title,
|
|
186
|
+
text: help && (labelDescription !== null && labelDescription !== void 0 ? labelDescription : text) ? React.createElement(LabelWithHelpButton, {
|
|
187
|
+
label: usedLabelDescription,
|
|
188
|
+
id: id,
|
|
189
|
+
help: help
|
|
190
|
+
}) : usedLabelDescription
|
|
184
191
|
}, htmlAttributes), help && React.createElement(HelpButtonInlineContent, {
|
|
185
192
|
contentId: `${id}-help`,
|
|
186
193
|
help: help,
|
|
187
|
-
roundedCorner:
|
|
188
|
-
})));
|
|
194
|
+
roundedCorner: variant === 'compact'
|
|
195
|
+
}), props.children));
|
|
196
|
+
}
|
|
197
|
+
function LabelWithHelpButton(props) {
|
|
198
|
+
const {
|
|
199
|
+
label,
|
|
200
|
+
id,
|
|
201
|
+
help
|
|
202
|
+
} = props;
|
|
203
|
+
return React.createElement(React.Fragment, null, label, React.createElement(HelpButtonInline, {
|
|
204
|
+
contentId: `${id}-help`,
|
|
205
|
+
left: label ? 'x-small' : false,
|
|
206
|
+
help: help
|
|
207
|
+
}));
|
|
189
208
|
}
|
|
190
209
|
export default UploadComponent;
|
|
191
210
|
UploadComponent._supportsSpacingProps = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Upload.js","names":["React","useCallback","useEffect","useMemo","useRef","classnames","FieldBlock","useFieldProps","useTranslation","useFormsTranslation","Upload","useUpload","pickSpacingProps","HelpButtonInline","HelpButtonInlineContent","useSharedTranslation","FormError","validateRequired","value","_ref","required","isChanged","error","hasError","some","file","errorMessage","hasFiles","length","undefined","UploadComponent","props","sharedTr","formsTr","errorMessages","errorRequired","fromInput","forEach","item","index","_item$file","name","preparedProps","_objectSpread","toInput","transformFiles","_useFieldProps","executeOnChangeRegardlessOfError","id","className","width","widthProp","label","labelDescription","help","htmlAttributes","disabled","handleChange","handleFocus","handleBlur","fileHandler","rest","_objectWithoutProperties","_excluded","title","text","acceptedFileTypes","filesAmountLimit","fileMaxSize","skeleton","onFileDelete","onFileClick","download","allowDuplicates","disableDragAndDrop","files","setFiles","filesRef","current","handleChangeAsync","_filesRef$current","existingFileIds","map","existingFiles","filter","includes","newFiles","newValidFiles","newFilesLoading","isLoading","incomingFiles","_incomingFiles$filter","incomingFileObj","foundIndex","findIndex","newFile","push","indexOfFirstNewFile","_ref2","updatedFiles","slice","changeHandler","_ref3","fieldBlockProps","forId","labelSrOnly","createElement","_extends","onChange","Fragment","contentId","left","roundedCorner","_supportsSpacingProps","Array","isArray","File","_lastModified","_item$file2","_type","_item$file3","lastModified","type"],"sources":["../../../../../../src/extensions/forms/Field/Upload/Upload.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport {\n useFieldProps,\n useTranslation as useFormsTranslation,\n} from '../../hooks'\nimport { FieldProps } from '../../types'\nimport Upload, {\n UploadFile,\n UploadFileNative,\n UploadProps,\n} from '../../../../components/Upload'\nimport useUpload from '../../../../components/upload/useUpload'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n} from '../../../../components/help-button/HelpButtonInline'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport { SpacingProps } from '../../../../shared/types'\nimport { FormError } from '../../utils'\n\nexport type { UploadFile, UploadFileNative }\nexport type UploadValue = Array<UploadFile | UploadFileNative>\nexport type Props = Omit<\n FieldProps<UploadValue, UploadValue | undefined>,\n | 'layout'\n | 'layoutOptions'\n | 'onBlurValidator'\n | 'onChangeValidator'\n | 'contentWidth'\n | 'labelSize'\n | 'labelDescriptionInline'\n | 'labelSrOnly'\n | 'labelSize'\n | 'labelSuffix'\n> &\n SpacingProps &\n Pick<\n Partial<UploadProps>,\n | 'title'\n | 'text'\n | 'acceptedFileTypes'\n | 'filesAmountLimit'\n | 'fileMaxSize'\n | 'onFileDelete'\n | 'onFileClick'\n | 'skeleton'\n | 'download'\n | 'allowDuplicates'\n | 'disableDragAndDrop'\n > & {\n fileHandler?: (\n newFiles: UploadValue\n ) => UploadValue | Promise<UploadValue>\n width?: 'large' | 'stretch'\n }\n\nconst validateRequired = (\n value: UploadValue,\n { required, isChanged, error }\n) => {\n const hasError = value?.some((file) => file.errorMessage)\n if (hasError) {\n return new FormError('Upload.errorInvalidFiles')\n }\n\n const hasFiles = value?.length > 0\n if (required && ((!isChanged && !hasFiles) || !hasFiles)) {\n return error\n }\n\n return undefined\n}\n\nfunction UploadComponent(props: Props) {\n const sharedTr = useSharedTranslation().Upload\n const formsTr = useFormsTranslation().Upload\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': formsTr.errorRequired,\n }),\n [formsTr.errorRequired]\n )\n\n const fromInput = useCallback((value: UploadValue) => {\n value.forEach((item, index) => {\n if (!item) {\n return\n }\n\n value[index] = item\n\n // Store the name in the value, to support session storage (serialization)\n value[index]['name'] = item['name'] || item.file?.name\n })\n\n return value\n }, [])\n\n const preparedProps = {\n errorMessages,\n validateRequired,\n fromInput,\n toInput: transformFiles,\n ...props,\n }\n\n const {\n id,\n className,\n width: widthProp = 'stretch',\n value,\n label,\n labelDescription,\n help,\n htmlAttributes,\n disabled,\n handleChange,\n handleFocus,\n handleBlur,\n fileHandler,\n ...rest\n } = useFieldProps(preparedProps, {\n executeOnChangeRegardlessOfError: true,\n })\n\n // Upload props\n const {\n title = sharedTr.title,\n text = sharedTr.text,\n acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],\n filesAmountLimit = 100,\n fileMaxSize = 5,\n skeleton,\n onFileDelete,\n onFileClick,\n download,\n allowDuplicates,\n disableDragAndDrop,\n } = rest\n\n const { files, setFiles } = useUpload(id)\n\n const filesRef = useRef<Array<UploadFile>>()\n\n useEffect(() => {\n filesRef.current = files\n }, [files])\n\n useEffect(() => {\n setFiles(value)\n }, [setFiles, value])\n\n const handleChangeAsync = useCallback(\n async (files: UploadValue) => {\n // Filter out existing files\n const existingFileIds =\n filesRef.current?.map((file) => file.id) || []\n const existingFiles = files.filter((file) =>\n existingFileIds.includes(file.id)\n )\n const newFiles = files.filter(\n (file) => !existingFileIds.includes(file.id)\n )\n const newValidFiles = newFiles.filter((file) => !file.errorMessage)\n\n if (newValidFiles.length > 0) {\n // Set loading\n const newFilesLoading = newFiles.map((file) => ({\n ...file,\n isLoading: !file.errorMessage,\n }))\n setFiles([...filesRef.current, ...newFilesLoading])\n\n const incomingFiles = await fileHandler(newValidFiles)\n\n if (!incomingFiles) {\n setFiles(existingFiles)\n handleChange(existingFiles)\n } else {\n // merge incoming files into existing order of newFiles.\n incomingFiles.forEach((file) => {\n const incomingFileObj = {\n ...file,\n isLoading: false,\n }\n const foundIndex = newFilesLoading.findIndex(\n (newFile) => newFile.isLoading\n )\n if (foundIndex >= 0) {\n newFilesLoading[foundIndex] = incomingFileObj\n } else {\n // if there's more files incoming than there's files loading (edge case), add them to end of array.\n newFilesLoading.push(incomingFileObj)\n }\n })\n\n const indexOfFirstNewFile = filesRef.current.findIndex(\n ({ id }) => id === newFiles[0].id\n )\n\n const updatedFiles = [\n ...filesRef.current.slice(0, indexOfFirstNewFile),\n ...(incomingFiles?.filter((file) => file != null) ?? []),\n ...filesRef.current.slice(\n indexOfFirstNewFile + incomingFiles.length\n ),\n ]\n setFiles(updatedFiles)\n handleChange(updatedFiles)\n }\n } else {\n handleChange(files)\n }\n },\n [setFiles, fileHandler, handleChange]\n )\n\n const changeHandler = useCallback(\n ({ files }: { files: UploadValue }) => {\n // Prevents the form-status from showing up\n handleBlur()\n handleFocus()\n\n if (fileHandler) {\n handleChangeAsync(files)\n } else {\n handleChange(files)\n }\n },\n [handleBlur, handleFocus, fileHandler, handleChangeAsync, handleChange]\n )\n\n const width = widthProp as FieldBlockWidth\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input`,\n labelSrOnly: true,\n className: classnames('dnb-forms-field-upload', className),\n width,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Upload\n id={id}\n acceptedFileTypes={acceptedFileTypes}\n filesAmountLimit={filesAmountLimit}\n download={download}\n allowDuplicates={allowDuplicates}\n disableDragAndDrop={disableDragAndDrop}\n disabled={disabled}\n fileMaxSize={fileMaxSize}\n skeleton={skeleton}\n onChange={changeHandler}\n onFileDelete={onFileDelete}\n onFileClick={onFileClick}\n title={label ?? title}\n text={\n help ? (\n <>\n {labelDescription ?? text}\n <HelpButtonInline\n contentId={`${id}-help`}\n left={text ? 'x-small' : false}\n help={help}\n />\n </>\n ) : (\n labelDescription ?? text\n )\n }\n {...htmlAttributes}\n >\n {help && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n help={help}\n roundedCorner={false}\n />\n )}\n </Upload>\n </FieldBlock>\n )\n}\n\nexport default UploadComponent\n\nUploadComponent._supportsSpacingProps = true\n\nexport function transformFiles(value: UploadValue) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined\n }\n\n value.map((item) => {\n if (item?.file && !(item.file instanceof File)) {\n // To support session storage, we recreated the file blob.\n item['file'] = new File([], item['name'] || item?.file['name'], {\n lastModified: (item.file as File)?.lastModified ?? 0,\n type: (item.file as File)?.type ?? '',\n })\n }\n return item\n })\n }\n\n return value\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Upload.js","names":["React","useCallback","useEffect","useMemo","useRef","classnames","FieldBlock","useFieldProps","useTranslation","useFormsTranslation","Upload","useUpload","pickSpacingProps","HelpButtonInline","HelpButtonInlineContent","useSharedTranslation","FormError","validateRequired","value","_ref","required","isChanged","error","hasError","some","file","errorMessage","hasFiles","length","undefined","UploadComponent","props","sharedTr","formsTr","errorMessages","errorRequired","fromInput","forEach","item","index","_item$file","name","preparedProps","_objectSpread","toInput","transformFiles","_useFieldProps","executeOnChangeRegardlessOfError","id","className","width","widthProp","label","labelDescription","help","htmlAttributes","disabled","handleChange","handleFocus","handleBlur","fileHandler","rest","_objectWithoutProperties","_excluded","title","text","variant","acceptedFileTypes","filesAmountLimit","fileMaxSize","skeleton","onFileDelete","onFileClick","download","allowDuplicates","disableDragAndDrop","files","setFiles","filesRef","current","handleChangeAsync","_filesRef$current","existingFileIds","map","existingFiles","filter","includes","newFiles","newValidFiles","newFilesLoading","isLoading","incomingFiles","_incomingFiles$filter","incomingFileObj","foundIndex","findIndex","newFile","push","indexOfFirstNewFile","_ref2","updatedFiles","slice","changeHandler","_ref3","fieldBlockProps","forId","labelSrOnly","usedLabelDescription","createElement","_extends","onChange","LabelWithHelpButton","contentId","roundedCorner","children","Fragment","left","_supportsSpacingProps","Array","isArray","File","_lastModified","_item$file2","_type","_item$file3","lastModified","type"],"sources":["../../../../../../src/extensions/forms/Field/Upload/Upload.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport {\n useFieldProps,\n useTranslation as useFormsTranslation,\n} from '../../hooks'\nimport { FieldProps } from '../../types'\nimport Upload, {\n UploadFile,\n UploadFileNative,\n UploadProps,\n} from '../../../../components/Upload'\nimport useUpload from '../../../../components/upload/useUpload'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n HelpProps,\n} from '../../../../components/help-button/HelpButtonInline'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport { SpacingProps } from '../../../../shared/types'\nimport { FormError } from '../../utils'\n\nexport type { UploadFile, UploadFileNative }\nexport type UploadValue = Array<UploadFile | UploadFileNative>\nexport type Props = Omit<\n FieldProps<UploadValue, UploadValue | undefined>,\n | 'layout'\n | 'layoutOptions'\n | 'onBlurValidator'\n | 'onChangeValidator'\n | 'contentWidth'\n | 'labelSize'\n | 'labelDescriptionInline'\n | 'labelSrOnly'\n | 'labelSize'\n | 'labelSuffix'\n> &\n SpacingProps &\n Pick<\n Partial<UploadProps>,\n | 'children'\n | 'title'\n | 'variant'\n | 'text'\n | 'acceptedFileTypes'\n | 'filesAmountLimit'\n | 'fileMaxSize'\n | 'onFileDelete'\n | 'onFileClick'\n | 'skeleton'\n | 'download'\n | 'allowDuplicates'\n | 'disableDragAndDrop'\n > & {\n fileHandler?: (\n newFiles: UploadValue\n ) => UploadValue | Promise<UploadValue>\n width?: 'large' | 'stretch'\n }\n\nconst validateRequired = (\n value: UploadValue,\n { required, isChanged, error }\n) => {\n const hasError = value?.some((file) => file.errorMessage)\n if (hasError) {\n return new FormError('Upload.errorInvalidFiles')\n }\n\n const hasFiles = value?.length > 0\n if (required && ((!isChanged && !hasFiles) || !hasFiles)) {\n return error\n }\n\n return undefined\n}\n\nfunction UploadComponent(props: Props) {\n const sharedTr = useSharedTranslation().Upload\n const formsTr = useFormsTranslation().Upload\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': formsTr.errorRequired,\n }),\n [formsTr.errorRequired]\n )\n\n const fromInput = useCallback((value: UploadValue) => {\n value.forEach((item, index) => {\n if (!item) {\n return\n }\n\n value[index] = item\n\n // Store the name in the value, to support session storage (serialization)\n value[index]['name'] = item['name'] || item.file?.name\n })\n\n return value\n }, [])\n\n const preparedProps = {\n errorMessages,\n validateRequired,\n fromInput,\n toInput: transformFiles,\n ...props,\n }\n\n const {\n id,\n className,\n width: widthProp = 'stretch',\n value,\n label,\n labelDescription,\n help,\n htmlAttributes,\n disabled,\n handleChange,\n handleFocus,\n handleBlur,\n fileHandler,\n ...rest\n } = useFieldProps(preparedProps, {\n executeOnChangeRegardlessOfError: true,\n })\n\n // Upload props\n const {\n title = sharedTr.title,\n text = sharedTr.text,\n variant = 'normal',\n acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],\n filesAmountLimit = 100,\n fileMaxSize = 5,\n skeleton,\n onFileDelete,\n onFileClick,\n download,\n allowDuplicates,\n disableDragAndDrop,\n } = rest\n\n const { files, setFiles } = useUpload(id)\n\n const filesRef = useRef<Array<UploadFile>>()\n\n useEffect(() => {\n filesRef.current = files\n }, [files])\n\n useEffect(() => {\n setFiles(value)\n }, [setFiles, value])\n\n const handleChangeAsync = useCallback(\n async (files: UploadValue) => {\n // Filter out existing files\n const existingFileIds =\n filesRef.current?.map((file) => file.id) || []\n const existingFiles = files.filter((file) =>\n existingFileIds.includes(file.id)\n )\n const newFiles = files.filter(\n (file) => !existingFileIds.includes(file.id)\n )\n const newValidFiles = newFiles.filter((file) => !file.errorMessage)\n\n if (newValidFiles.length > 0) {\n // Set loading\n const newFilesLoading = newFiles.map((file) => ({\n ...file,\n isLoading: !file.errorMessage,\n }))\n setFiles([...filesRef.current, ...newFilesLoading])\n\n const incomingFiles = await fileHandler(newValidFiles)\n\n if (!incomingFiles) {\n setFiles(existingFiles)\n handleChange(existingFiles)\n } else {\n // merge incoming files into existing order of newFiles.\n incomingFiles.forEach((file) => {\n const incomingFileObj = {\n ...file,\n isLoading: false,\n }\n const foundIndex = newFilesLoading.findIndex(\n (newFile) => newFile.isLoading\n )\n if (foundIndex >= 0) {\n newFilesLoading[foundIndex] = incomingFileObj\n } else {\n // if there's more files incoming than there's files loading (edge case), add them to end of array.\n newFilesLoading.push(incomingFileObj)\n }\n })\n\n const indexOfFirstNewFile = filesRef.current.findIndex(\n ({ id }) => id === newFiles[0].id\n )\n\n const updatedFiles = [\n ...filesRef.current.slice(0, indexOfFirstNewFile),\n ...(incomingFiles?.filter((file) => file != null) ?? []),\n ...filesRef.current.slice(\n indexOfFirstNewFile + incomingFiles.length\n ),\n ]\n setFiles(updatedFiles)\n handleChange(updatedFiles)\n }\n } else {\n handleChange(files)\n }\n },\n [setFiles, fileHandler, handleChange]\n )\n\n const changeHandler = useCallback(\n ({ files }: { files: UploadValue }) => {\n // Prevents the form-status from showing up\n handleBlur()\n handleFocus()\n\n if (fileHandler) {\n handleChangeAsync(files)\n } else {\n handleChange(files)\n }\n },\n [handleBlur, handleFocus, fileHandler, handleChangeAsync, handleChange]\n )\n\n const width = widthProp as FieldBlockWidth\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input`,\n labelSrOnly: true,\n className: classnames('dnb-forms-field-upload', className),\n width,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n const usedLabelDescription = labelDescription ?? text\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Upload\n id={id}\n variant={variant}\n acceptedFileTypes={acceptedFileTypes}\n filesAmountLimit={filesAmountLimit}\n download={download}\n allowDuplicates={allowDuplicates}\n disableDragAndDrop={disableDragAndDrop}\n disabled={disabled}\n fileMaxSize={fileMaxSize}\n skeleton={skeleton}\n onChange={changeHandler}\n onFileDelete={onFileDelete}\n onFileClick={onFileClick}\n title={\n help && labelDescription === false ? (\n <LabelWithHelpButton\n label={label ?? title}\n id={id}\n help={help}\n />\n ) : (\n label ?? title\n )\n }\n text={\n help && (labelDescription ?? text) ? (\n <LabelWithHelpButton\n label={usedLabelDescription}\n id={id}\n help={help}\n />\n ) : (\n usedLabelDescription\n )\n }\n {...htmlAttributes}\n >\n {help && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n help={help}\n roundedCorner={variant === 'compact'}\n />\n )}\n {props.children}\n </Upload>\n </FieldBlock>\n )\n}\n\nfunction LabelWithHelpButton(props: {\n label: React.ReactNode\n id: string\n help?: HelpProps\n}) {\n const { label, id, help } = props\n return (\n <>\n {label}\n <HelpButtonInline\n contentId={`${id}-help`}\n left={label ? 'x-small' : false}\n help={help}\n />\n </>\n )\n}\n\nexport default UploadComponent\n\nUploadComponent._supportsSpacingProps = true\n\nexport function transformFiles(value: UploadValue) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined\n }\n\n value.map((item) => {\n if (item?.file && !(item.file instanceof File)) {\n // To support session storage, we recreated the file blob.\n item['file'] = new File([], item['name'] || item?.file['name'], {\n lastModified: (item.file as File)?.lastModified ?? 0,\n type: (item.file as File)?.type ?? '',\n })\n }\n return item\n })\n }\n\n return value\n}\n"],"mappings":"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","ignoreList":[]}
|