@dnb/eufemia 10.12.0 → 10.13.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 +28 -0
- package/cjs/components/accordion/Accordion.js +1 -0
- package/cjs/components/accordion/Accordion.js.map +1 -1
- package/cjs/components/accordion/AccordionGroup.js +1 -0
- package/cjs/components/accordion/AccordionGroup.js.map +1 -1
- package/cjs/components/accordion/AccordionHeader.js +5 -15
- package/cjs/components/accordion/AccordionHeader.js.map +1 -1
- package/cjs/components/accordion/style/dnb-accordion.css +2 -2
- package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
- package/cjs/components/accordion/style/dnb-accordion.scss +3 -8
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
- package/cjs/components/anchor/Anchor.js.map +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
- package/cjs/components/autocomplete/Autocomplete.d.ts +2 -2
- package/cjs/components/autocomplete/Autocomplete.js +41 -16
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/breadcrumb/Breadcrumb.js +1 -0
- package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
- package/cjs/components/card/Card.js +2 -2
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/dialog/Dialog.js +1 -0
- package/cjs/components/dialog/Dialog.js.map +1 -1
- package/cjs/components/dialog/DialogContent.js +1 -0
- package/cjs/components/dialog/DialogContent.js.map +1 -1
- package/cjs/components/dialog/parts/DialogAction.js +1 -0
- package/cjs/components/dialog/parts/DialogAction.js.map +1 -1
- package/cjs/components/drawer/Drawer.js +1 -0
- package/cjs/components/drawer/Drawer.js.map +1 -1
- package/cjs/components/drawer/DrawerContent.js +1 -0
- package/cjs/components/drawer/DrawerContent.js.map +1 -1
- package/cjs/components/drawer/parts/DrawerContentContext.js +1 -0
- package/cjs/components/drawer/parts/DrawerContentContext.js.map +1 -1
- package/cjs/components/flex/Container.js +6 -4
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/flex/utils.js +2 -2
- package/cjs/components/flex/utils.js.map +1 -1
- package/cjs/components/form-row/style/dnb-form-row.scss +1 -1
- package/cjs/components/icon/style/dnb-icon.scss +1 -1
- package/cjs/components/input-masked/InputMasked.d.ts +1 -1
- package/cjs/components/input-masked/MultiInputMask.d.ts +3 -3
- package/cjs/components/input-masked/MultiInputMask.js +2 -1
- package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
- package/cjs/components/input-masked/hooks/useHandleCursorPosition.js +1 -0
- package/cjs/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
- package/cjs/components/input-masked/hooks/useMultiInputValues.js +1 -0
- package/cjs/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/number-format/useNumberFormat.js +1 -0
- package/cjs/components/number-format/useNumberFormat.js.map +1 -1
- package/cjs/components/pagination/PaginationBar.js +1 -0
- package/cjs/components/pagination/PaginationBar.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorContext.js +1 -0
- package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorItem.js +3 -2
- package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorList.js +1 -0
- package/cjs/components/step-indicator/StepIndicatorList.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorModal.js +1 -0
- package/cjs/components/step-indicator/StepIndicatorModal.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorSidebar.js +1 -0
- package/cjs/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +1 -0
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
- package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
- package/cjs/components/tooltip/TooltipWithEvents.js.map +1 -1
- package/cjs/components/upload/UploadContext.js +1 -0
- package/cjs/components/upload/UploadContext.js.map +1 -1
- package/cjs/components/upload/UploadFileInput.js +1 -0
- package/cjs/components/upload/UploadFileInput.js.map +1 -1
- package/cjs/components/upload/UploadFileListCell.js +1 -0
- package/cjs/components/upload/UploadFileListCell.js.map +1 -1
- package/cjs/elements/lists/Dl.d.ts +1 -1
- package/cjs/elements/lists/Dl.js.map +1 -1
- package/cjs/elements/typography/style/dnb-typography.scss +1 -1
- package/cjs/elements/typography/style/typography-mixins.scss +2 -2
- package/cjs/extensions/forms/DataContext/At/At.js +1 -0
- package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +5 -3
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +5 -3
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.js +3 -2
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Currency/Currency.js +3 -2
- package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +2 -1
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Email/Email.js +5 -3
- package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -3
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.js +3 -2
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/Option/Option.js +1 -1
- package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +5 -3
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +58 -18
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -4
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +12 -8
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +29 -20
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.js +10 -9
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +5 -4
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +1 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +1 -0
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +3 -2
- package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -1
- package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +1 -0
- package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +1 -0
- package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/Step/Step.js +1 -0
- package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js +3 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +3 -1
- package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Value/Boolean/Boolean.js +1 -0
- package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Value/Currency/Currency.js +3 -2
- package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Value/Date/Date.js +3 -1
- package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Value/Email/Email.js +3 -1
- package/cjs/extensions/forms/Value/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +3 -1
- package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +3 -1
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/Visibility/Visibility.js +1 -0
- package/cjs/extensions/forms/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.js +21 -17
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/types.js +6 -6
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/ajv.js +3 -2
- package/cjs/extensions/forms/utils/ajv.js.map +1 -1
- package/cjs/extensions/forms/utils/numbers.js +2 -2
- package/cjs/extensions/forms/utils/numbers.js.map +1 -1
- package/cjs/extensions/forms/utils/useWasChanged.js +8 -6
- package/cjs/extensions/forms/utils/useWasChanged.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/DrawerListProvider.js.map +1 -1
- package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +1 -1
- package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/style/dnb-ui-components.css +2 -2
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/fonts.scss +5 -4
- package/cjs/style/themes/theme-sbanken/properties.js +2 -2
- package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +8 -7
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-sbanken/theme-mapping.scss +2 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/components/accordion/Accordion.js +2 -0
- package/components/accordion/Accordion.js.map +1 -1
- package/components/accordion/AccordionGroup.js +2 -0
- package/components/accordion/AccordionGroup.js.map +1 -1
- package/components/accordion/AccordionHeader.js +6 -15
- package/components/accordion/AccordionHeader.js.map +1 -1
- package/components/accordion/style/dnb-accordion.css +2 -2
- package/components/accordion/style/dnb-accordion.min.css +1 -1
- package/components/accordion/style/dnb-accordion.scss +3 -8
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
- package/components/anchor/Anchor.js.map +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
- package/components/autocomplete/Autocomplete.d.ts +2 -2
- package/components/autocomplete/Autocomplete.js +42 -17
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/breadcrumb/Breadcrumb.js +2 -0
- package/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
- package/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
- package/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
- package/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
- package/components/card/Card.js +2 -2
- package/components/card/Card.js.map +1 -1
- package/components/dialog/Dialog.js +2 -0
- package/components/dialog/Dialog.js.map +1 -1
- package/components/dialog/DialogContent.js +2 -0
- package/components/dialog/DialogContent.js.map +1 -1
- package/components/dialog/parts/DialogAction.js +2 -0
- package/components/dialog/parts/DialogAction.js.map +1 -1
- package/components/drawer/Drawer.js +2 -0
- package/components/drawer/Drawer.js.map +1 -1
- package/components/drawer/DrawerContent.js +2 -0
- package/components/drawer/DrawerContent.js.map +1 -1
- package/components/drawer/parts/DrawerContentContext.js +2 -0
- package/components/drawer/parts/DrawerContentContext.js.map +1 -1
- package/components/flex/Container.js +6 -4
- package/components/flex/Container.js.map +1 -1
- package/components/flex/utils.js +2 -2
- package/components/flex/utils.js.map +1 -1
- package/components/form-row/style/dnb-form-row.scss +1 -1
- package/components/icon/style/dnb-icon.scss +1 -1
- package/components/input-masked/InputMasked.d.ts +1 -1
- package/components/input-masked/MultiInputMask.d.ts +3 -3
- package/components/input-masked/MultiInputMask.js +3 -1
- package/components/input-masked/MultiInputMask.js.map +1 -1
- package/components/input-masked/hooks/useHandleCursorPosition.js +2 -0
- package/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
- package/components/input-masked/hooks/useMultiInputValues.js +2 -0
- package/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/number-format/useNumberFormat.js +2 -0
- package/components/number-format/useNumberFormat.js.map +1 -1
- package/components/pagination/PaginationBar.js +2 -0
- package/components/pagination/PaginationBar.js.map +1 -1
- package/components/step-indicator/StepIndicatorContext.js +2 -0
- package/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/components/step-indicator/StepIndicatorItem.js +4 -2
- package/components/step-indicator/StepIndicatorItem.js.map +1 -1
- package/components/step-indicator/StepIndicatorList.js +2 -0
- package/components/step-indicator/StepIndicatorList.js.map +1 -1
- package/components/step-indicator/StepIndicatorModal.js +2 -0
- package/components/step-indicator/StepIndicatorModal.js.map +1 -1
- package/components/step-indicator/StepIndicatorSidebar.js +2 -0
- package/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
- package/components/step-indicator/StepIndicatorTriggerButton.js +2 -0
- package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
- package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
- package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
- package/components/tooltip/TooltipWithEvents.js.map +1 -1
- package/components/upload/UploadContext.js +2 -0
- package/components/upload/UploadContext.js.map +1 -1
- package/components/upload/UploadFileInput.js +2 -0
- package/components/upload/UploadFileInput.js.map +1 -1
- package/components/upload/UploadFileListCell.js +2 -0
- package/components/upload/UploadFileListCell.js.map +1 -1
- package/elements/lists/Dl.d.ts +1 -1
- package/elements/lists/Dl.js.map +1 -1
- package/elements/typography/style/dnb-typography.scss +1 -1
- package/elements/typography/style/typography-mixins.scss +2 -2
- package/es/components/accordion/Accordion.js +2 -0
- package/es/components/accordion/Accordion.js.map +1 -1
- package/es/components/accordion/AccordionGroup.js +2 -0
- package/es/components/accordion/AccordionGroup.js.map +1 -1
- package/es/components/accordion/AccordionHeader.js +6 -15
- package/es/components/accordion/AccordionHeader.js.map +1 -1
- package/es/components/accordion/style/dnb-accordion.css +2 -2
- package/es/components/accordion/style/dnb-accordion.min.css +1 -1
- package/es/components/accordion/style/dnb-accordion.scss +3 -8
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
- package/es/components/anchor/Anchor.js.map +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
- package/es/components/autocomplete/Autocomplete.d.ts +2 -2
- package/es/components/autocomplete/Autocomplete.js +42 -17
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/breadcrumb/Breadcrumb.js +2 -0
- package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
- package/es/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
- package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
- package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
- package/es/components/card/Card.js +2 -2
- package/es/components/card/Card.js.map +1 -1
- package/es/components/dialog/Dialog.js +2 -0
- package/es/components/dialog/Dialog.js.map +1 -1
- package/es/components/dialog/DialogContent.js +2 -0
- package/es/components/dialog/DialogContent.js.map +1 -1
- package/es/components/dialog/parts/DialogAction.js +2 -0
- package/es/components/dialog/parts/DialogAction.js.map +1 -1
- package/es/components/drawer/Drawer.js +2 -0
- package/es/components/drawer/Drawer.js.map +1 -1
- package/es/components/drawer/DrawerContent.js +2 -0
- package/es/components/drawer/DrawerContent.js.map +1 -1
- package/es/components/drawer/parts/DrawerContentContext.js +2 -0
- package/es/components/drawer/parts/DrawerContentContext.js.map +1 -1
- package/es/components/flex/Container.js +6 -4
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/flex/utils.js +2 -2
- package/es/components/flex/utils.js.map +1 -1
- package/es/components/form-row/style/dnb-form-row.scss +1 -1
- package/es/components/icon/style/dnb-icon.scss +1 -1
- package/es/components/input-masked/InputMasked.d.ts +1 -1
- package/es/components/input-masked/MultiInputMask.d.ts +3 -3
- package/es/components/input-masked/MultiInputMask.js +3 -1
- package/es/components/input-masked/MultiInputMask.js.map +1 -1
- package/es/components/input-masked/hooks/useHandleCursorPosition.js +2 -0
- package/es/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
- package/es/components/input-masked/hooks/useMultiInputValues.js +2 -0
- package/es/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/number-format/useNumberFormat.js +2 -0
- package/es/components/number-format/useNumberFormat.js.map +1 -1
- package/es/components/pagination/PaginationBar.js +2 -0
- package/es/components/pagination/PaginationBar.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorContext.js +2 -0
- package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorItem.js +4 -2
- package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorList.js +2 -0
- package/es/components/step-indicator/StepIndicatorList.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorModal.js +2 -0
- package/es/components/step-indicator/StepIndicatorModal.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorSidebar.js +2 -0
- package/es/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorTriggerButton.js +2 -0
- package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/es/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
- package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
- package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
- package/es/components/tooltip/TooltipWithEvents.js.map +1 -1
- package/es/components/upload/UploadContext.js +2 -0
- package/es/components/upload/UploadContext.js.map +1 -1
- package/es/components/upload/UploadFileInput.js +2 -0
- package/es/components/upload/UploadFileInput.js.map +1 -1
- package/es/components/upload/UploadFileListCell.js +2 -0
- package/es/components/upload/UploadFileListCell.js.map +1 -1
- package/es/elements/lists/Dl.d.ts +1 -1
- package/es/elements/lists/Dl.js.map +1 -1
- package/es/elements/typography/style/dnb-typography.scss +1 -1
- package/es/elements/typography/style/typography-mixins.scss +2 -2
- package/es/extensions/forms/DataContext/At/At.js +2 -0
- package/es/extensions/forms/DataContext/At/At.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +6 -3
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -3
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/Boolean.js +4 -2
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Currency/Currency.js +3 -2
- package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.js +3 -1
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Email/Email.js +6 -3
- package/es/extensions/forms/Field/Email/Email.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -3
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.js +3 -2
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/Option/Option.js +1 -1
- package/es/extensions/forms/Field/Option/Option.js.map +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -3
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +48 -16
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +7 -4
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +13 -8
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.js +30 -20
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/String/String.js +11 -9
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +6 -4
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -0
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +2 -0
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js +2 -2
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +4 -2
- package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +3 -1
- package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
- package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +2 -0
- package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
- package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +2 -0
- package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
- package/es/extensions/forms/StepsLayout/Step/Step.js +2 -0
- package/es/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.js +4 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -1
- package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Value/Boolean/Boolean.js +2 -0
- package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Value/Currency/Currency.js +3 -2
- package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Value/Date/Date.js +4 -1
- package/es/extensions/forms/Value/Date/Date.js.map +1 -1
- package/es/extensions/forms/Value/Email/Email.js +4 -1
- package/es/extensions/forms/Value/Email/Email.js.map +1 -1
- package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -1
- package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -1
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/Visibility/Visibility.js +2 -0
- package/es/extensions/forms/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/hooks/useDataValue.js +22 -17
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/types.js +6 -6
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/ajv.js +3 -2
- package/es/extensions/forms/utils/ajv.js.map +1 -1
- package/es/extensions/forms/utils/numbers.js +2 -2
- package/es/extensions/forms/utils/numbers.js.map +1 -1
- package/es/extensions/forms/utils/useWasChanged.js +9 -6
- package/es/extensions/forms/utils/useWasChanged.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/DrawerListProvider.js.map +1 -1
- package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +1 -1
- package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/style/dnb-ui-components.css +2 -2
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/es/style/themes/theme-sbanken/fonts.scss +5 -4
- package/es/style/themes/theme-sbanken/properties.js +2 -2
- package/es/style/themes/theme-sbanken/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +8 -7
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
- package/es/style/themes/theme-sbanken/theme-mapping.scss +2 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/At/At.js +2 -0
- package/extensions/forms/DataContext/At/At.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +6 -3
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -3
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Field/Boolean/Boolean.js +4 -2
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Currency/Currency.js +3 -2
- package/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/extensions/forms/Field/Date/Date.js +3 -1
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Email/Email.js +6 -3
- package/extensions/forms/Field/Email/Email.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -3
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/Number/Number.js +3 -2
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/Option/Option.js +1 -1
- package/extensions/forms/Field/Option/Option.js.map +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -3
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +59 -18
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +7 -4
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +13 -8
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.js +30 -20
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/String/String.js +11 -9
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +6 -4
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +2 -0
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/Form/SubmitButton/SubmitButton.js +2 -0
- package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +2 -2
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +4 -2
- package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
- package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +3 -1
- package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
- package/extensions/forms/StepsLayout/NextButton/NextButton.js +2 -0
- package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
- package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +2 -0
- package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
- package/extensions/forms/StepsLayout/Step/Step.js +2 -0
- package/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
- package/extensions/forms/StepsLayout/StepsLayout.js +4 -1
- package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -1
- package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Value/Boolean/Boolean.js +2 -0
- package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Value/Currency/Currency.js +3 -2
- package/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/extensions/forms/Value/Date/Date.js +4 -1
- package/extensions/forms/Value/Date/Date.js.map +1 -1
- package/extensions/forms/Value/Email/Email.js +4 -1
- package/extensions/forms/Value/Email/Email.js.map +1 -1
- package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -1
- package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -1
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/Visibility/Visibility.js +2 -0
- package/extensions/forms/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.js +22 -17
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/types.js +6 -6
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/ajv.js +3 -2
- package/extensions/forms/utils/ajv.js.map +1 -1
- package/extensions/forms/utils/numbers.js +2 -2
- package/extensions/forms/utils/numbers.js.map +1 -1
- package/extensions/forms/utils/useWasChanged.js +9 -6
- package/extensions/forms/utils/useWasChanged.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/DrawerListProvider.js.map +1 -1
- package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +1 -1
- package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
- package/package.json +11 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/style/dnb-ui-components.css +2 -2
- package/style/dnb-ui-components.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/style/themes/theme-sbanken/fonts.scss +5 -4
- package/style/themes/theme-sbanken/properties.js +2 -2
- package/style/themes/theme-sbanken/properties.js.map +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +8 -7
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
- package/style/themes/theme-sbanken/theme-mapping.scss +2 -1
- package/style/themes/theme-ui/ui-theme-components.css +2 -2
- package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +2 -2
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
4
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -5,6 +7,7 @@ import React, { useContext } from 'react';
|
|
|
5
7
|
import StringComponent from '../String';
|
|
6
8
|
import SharedContext from '../../../../shared/Context';
|
|
7
9
|
function OrganizationNumber(props) {
|
|
10
|
+
var _props$pattern, _props$label, _props$width;
|
|
8
11
|
const sharedContext = useContext(SharedContext);
|
|
9
12
|
const {
|
|
10
13
|
validate = true,
|
|
@@ -12,14 +15,14 @@ function OrganizationNumber(props) {
|
|
|
12
15
|
} = props;
|
|
13
16
|
const stringComponentProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
14
17
|
className: 'dnb-forms-field-organization-number',
|
|
15
|
-
pattern: props.pattern
|
|
16
|
-
label: props.label
|
|
18
|
+
pattern: (_props$pattern = props.pattern) !== null && _props$pattern !== void 0 ? _props$pattern : validate ? '^[0-9]{9}$' : undefined,
|
|
19
|
+
label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.organizationNumberLabel,
|
|
17
20
|
errorMessages: _objectSpread({
|
|
18
21
|
required: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.organizationNumberErrorRequired,
|
|
19
22
|
pattern: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.organizationNumberErrorPattern
|
|
20
23
|
}, props.errorMessages),
|
|
21
24
|
mask: omitMask ? [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/] : [/\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/],
|
|
22
|
-
width: props.width
|
|
25
|
+
width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : 'medium'
|
|
23
26
|
});
|
|
24
27
|
return React.createElement(StringComponent, stringComponentProps);
|
|
25
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationNumber.js","names":["React","useContext","StringComponent","SharedContext","OrganizationNumber","props","sharedContext","validate","omitMask","stringComponentProps","_objectSpread","className","pattern","undefined","label","translation","Forms","organizationNumberLabel","errorMessages","required","organizationNumberErrorRequired","organizationNumberErrorPattern","mask","width","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/OrganizationNumber/OrganizationNumber.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport StringComponent, { Props as StringComponentProps } from '../String'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = StringComponentProps & {\n validate?: boolean\n omitMask?: boolean\n}\n\nfunction OrganizationNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { validate = true, omitMask } = props\n\n const stringComponentProps: Props = {\n ...props,\n className: 'dnb-forms-field-organization-number',\n pattern: props.pattern ?? (validate ? '^[0-9]{9}$' : undefined),\n label:\n props.label ??\n sharedContext?.translation.Forms.organizationNumberLabel,\n errorMessages: {\n required:\n sharedContext?.translation.Forms.organizationNumberErrorRequired,\n pattern:\n sharedContext?.translation.Forms.organizationNumberErrorPattern,\n ...props.errorMessages,\n },\n mask: omitMask\n ? [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/]\n : [/\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/],\n width: props.width ?? 'medium',\n }\n\n return <StringComponent {...stringComponentProps} />\n}\n\nOrganizationNumber._supportsSpacingProps = true\nexport default OrganizationNumber\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"OrganizationNumber.js","names":["React","useContext","StringComponent","SharedContext","OrganizationNumber","props","_props$pattern","_props$label","_props$width","sharedContext","validate","omitMask","stringComponentProps","_objectSpread","className","pattern","undefined","label","translation","Forms","organizationNumberLabel","errorMessages","required","organizationNumberErrorRequired","organizationNumberErrorPattern","mask","width","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/OrganizationNumber/OrganizationNumber.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport StringComponent, { Props as StringComponentProps } from '../String'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = StringComponentProps & {\n validate?: boolean\n omitMask?: boolean\n}\n\nfunction OrganizationNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { validate = true, omitMask } = props\n\n const stringComponentProps: Props = {\n ...props,\n className: 'dnb-forms-field-organization-number',\n pattern: props.pattern ?? (validate ? '^[0-9]{9}$' : undefined),\n label:\n props.label ??\n sharedContext?.translation.Forms.organizationNumberLabel,\n errorMessages: {\n required:\n sharedContext?.translation.Forms.organizationNumberErrorRequired,\n pattern:\n sharedContext?.translation.Forms.organizationNumberErrorPattern,\n ...props.errorMessages,\n },\n mask: omitMask\n ? [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/]\n : [/\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/],\n width: props.width ?? 'medium',\n }\n\n return <StringComponent {...stringComponentProps} />\n}\n\nOrganizationNumber._supportsSpacingProps = true\nexport default OrganizationNumber\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,eAAe,MAAyC,WAAW;AAC1E,OAAOC,aAAa,MAAM,4BAA4B;AAOtD,SAASC,kBAAkBA,CAACC,KAAY,EAAE;EAAA,IAAAC,cAAA,EAAAC,YAAA,EAAAC,YAAA;EACxC,MAAMC,aAAa,GAAGR,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;IAAEO,QAAQ,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGN,KAAK;EAE3C,MAAMO,oBAA2B,GAAAC,aAAA,CAAAA,aAAA,KAC5BR,KAAK;IACRS,SAAS,EAAE,qCAAqC;IAChDC,OAAO,GAAAT,cAAA,GAAED,KAAK,CAACU,OAAO,cAAAT,cAAA,cAAAA,cAAA,GAAKI,QAAQ,GAAG,YAAY,GAAGM,SAAU;IAC/DC,KAAK,GAAAV,YAAA,GACHF,KAAK,CAACY,KAAK,cAAAV,YAAA,cAAAA,YAAA,GACXE,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACC,uBAAuB;IAC1DC,aAAa,EAAAR,aAAA;MACXS,QAAQ,EACNb,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACI,+BAA+B;MAClER,OAAO,EACLN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACK;IAA8B,GAC9DnB,KAAK,CAACgB,aAAa,CACvB;IACDI,IAAI,EAAEd,QAAQ,GACV,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GACtD,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACpEe,KAAK,GAAAlB,YAAA,GAAEH,KAAK,CAACqB,KAAK,cAAAlB,YAAA,cAAAA,YAAA,GAAI;EAAQ,EAC/B;EAED,OAAOR,KAAA,CAAA2B,aAAA,CAACzB,eAAe,EAAKU,oBAAuB,CAAC;AACtD;AAEAR,kBAAkB,CAACwB,qBAAqB,GAAG,IAAI;AAC/C,eAAexB,kBAAkB"}
|
|
@@ -9,6 +9,11 @@ export type Props = FieldHelpProps & FieldProps<string, undefined> & {
|
|
|
9
9
|
width?: 'large' | 'stretch';
|
|
10
10
|
onCountryCodeChange?: (value: string | undefined) => void;
|
|
11
11
|
onNumberChange?: (value: string | undefined) => void;
|
|
12
|
+
} & {
|
|
13
|
+
/**
|
|
14
|
+
* For internal testing purposes
|
|
15
|
+
*/
|
|
16
|
+
noAnimation?: boolean;
|
|
12
17
|
};
|
|
13
18
|
declare function PhoneNumber(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
14
19
|
declare namespace PhoneNumber {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
5
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -12,7 +14,6 @@ import FieldBlock from '../../FieldBlock';
|
|
|
12
14
|
import { pickSpacingProps } from '../../../../components/flex/utils';
|
|
13
15
|
import SharedContext from '../../../../shared/Context';
|
|
14
16
|
function PhoneNumber(props) {
|
|
15
|
-
var _sharedContext$locale;
|
|
16
17
|
const sharedContext = useContext(SharedContext);
|
|
17
18
|
const defaultProps = {
|
|
18
19
|
value: '+47',
|
|
@@ -46,18 +47,38 @@ function PhoneNumber(props) {
|
|
|
46
47
|
onNumberChange
|
|
47
48
|
} = useDataValue(preparedProps);
|
|
48
49
|
const [, countryCode, phoneNumber] = value !== undefined ? value.match(/^(\+[^ ]+)? ?(.*)$/) : [undefined, '', ''];
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
const getCountryData = function () {
|
|
51
|
+
var _sharedContext$locale;
|
|
52
|
+
let {
|
|
53
|
+
filter = null
|
|
54
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
55
|
+
const lang = (_sharedContext$locale = sharedContext.locale) === null || _sharedContext$locale === void 0 ? void 0 : _sharedContext$locale.split('-')[0];
|
|
56
|
+
return countries.filter(_ref => {
|
|
57
|
+
let {
|
|
58
|
+
cdc
|
|
59
|
+
} = _ref;
|
|
60
|
+
return !filter || `+${cdc}` === filter;
|
|
61
|
+
}).sort((_ref2, _ref3) => {
|
|
62
|
+
let {
|
|
63
|
+
i18n: a
|
|
64
|
+
} = _ref2;
|
|
65
|
+
let {
|
|
66
|
+
i18n: b
|
|
67
|
+
} = _ref3;
|
|
68
|
+
return a[lang] > b[lang] ? 1 : -1;
|
|
69
|
+
}).map(country => makeObject(country, lang));
|
|
70
|
+
};
|
|
71
|
+
const singleCountryCodeData = useMemo(() => {
|
|
72
|
+
return getCountryData({
|
|
73
|
+
filter: countryCode
|
|
74
|
+
});
|
|
75
|
+
}, []);
|
|
76
|
+
const handleCountryCodeChange = useCallback(_ref4 => {
|
|
77
|
+
var _data$selectedKey$tri, _data$selectedKey;
|
|
57
78
|
let {
|
|
58
79
|
data
|
|
59
|
-
} =
|
|
60
|
-
const countryCode = (data === null || data === void 0 ? void 0 : (_data$selectedKey = data.selectedKey) === null || _data$selectedKey === void 0 ? void 0 : _data$selectedKey.trim())
|
|
80
|
+
} = _ref4;
|
|
81
|
+
const countryCode = (_data$selectedKey$tri = data === null || data === void 0 ? void 0 : (_data$selectedKey = data.selectedKey) === null || _data$selectedKey === void 0 ? void 0 : _data$selectedKey.trim()) !== null && _data$selectedKey$tri !== void 0 ? _data$selectedKey$tri : emptyValue;
|
|
61
82
|
if (!countryCode && !phoneNumber) {
|
|
62
83
|
handleChange === null || handleChange === void 0 ? void 0 : handleChange(emptyValue);
|
|
63
84
|
onCountryCodeChange === null || onCountryCodeChange === void 0 ? void 0 : onCountryCodeChange(emptyValue);
|
|
@@ -75,6 +96,16 @@ function PhoneNumber(props) {
|
|
|
75
96
|
handleChange === null || handleChange === void 0 ? void 0 : handleChange([countryCode, phoneNumber].filter(Boolean).join(' '));
|
|
76
97
|
onNumberChange === null || onNumberChange === void 0 ? void 0 : onNumberChange(phoneNumber);
|
|
77
98
|
}, [countryCode, emptyValue, handleChange, onNumberChange]);
|
|
99
|
+
const onFocusHandler = _ref5 => {
|
|
100
|
+
let {
|
|
101
|
+
dataList,
|
|
102
|
+
updateData
|
|
103
|
+
} = _ref5;
|
|
104
|
+
if (dataList.length < 10) {
|
|
105
|
+
updateData(getCountryData());
|
|
106
|
+
}
|
|
107
|
+
handleFocus();
|
|
108
|
+
};
|
|
78
109
|
return React.createElement(FieldBlock, _extends({
|
|
79
110
|
className: classnames('dnb-forms-field-phone-number', className),
|
|
80
111
|
width: width !== 'stretch' ? width : undefined,
|
|
@@ -83,26 +114,28 @@ function PhoneNumber(props) {
|
|
|
83
114
|
error: error
|
|
84
115
|
}, pickSpacingProps(props)), React.createElement(Flex.Horizontal, null, React.createElement(Autocomplete, {
|
|
85
116
|
className: classnames('dnb-forms-field-phone-number__country-code', countryCodeFieldClassName),
|
|
86
|
-
placeholder: countryCodePlaceholder
|
|
117
|
+
placeholder: countryCodePlaceholder !== null && countryCodePlaceholder !== void 0 ? countryCodePlaceholder : ' ',
|
|
87
118
|
label_direction: layout,
|
|
88
|
-
label: countryCodeLabel
|
|
89
|
-
|
|
119
|
+
label: countryCodeLabel !== null && countryCodeLabel !== void 0 ? countryCodeLabel : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.countryCodeLabel,
|
|
120
|
+
mode: "async",
|
|
121
|
+
data: singleCountryCodeData,
|
|
90
122
|
value: countryCode,
|
|
91
123
|
disabled: disabled,
|
|
92
|
-
on_focus:
|
|
124
|
+
on_focus: onFocusHandler,
|
|
93
125
|
on_blur: handleBlur,
|
|
94
126
|
on_change: handleCountryCodeChange,
|
|
95
127
|
independent_width: true,
|
|
96
128
|
search_numbers: true,
|
|
129
|
+
no_animation: props.noAnimation,
|
|
97
130
|
stretch: width === 'stretch'
|
|
98
131
|
}), React.createElement(StringComponent, {
|
|
99
132
|
className: classnames('dnb-forms-field-phone-number__number', numberFieldClassName),
|
|
100
133
|
type: "tel",
|
|
101
134
|
emptyValue: "",
|
|
102
135
|
layout: "vertical",
|
|
103
|
-
label: label
|
|
104
|
-
placeholder: placeholder
|
|
105
|
-
mask: numberMask
|
|
136
|
+
label: label !== null && label !== void 0 ? label : ' ',
|
|
137
|
+
placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : '00 00 00 00',
|
|
138
|
+
mask: numberMask !== null && numberMask !== void 0 ? numberMask : [/\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/],
|
|
106
139
|
onFocus: handleFocus,
|
|
107
140
|
onBlur: handleBlur,
|
|
108
141
|
onChange: handleNumberChange,
|
|
@@ -115,6 +148,14 @@ function PhoneNumber(props) {
|
|
|
115
148
|
help: help
|
|
116
149
|
})));
|
|
117
150
|
}
|
|
151
|
+
function makeObject(country, lang) {
|
|
152
|
+
var _country$i18n$lang;
|
|
153
|
+
return {
|
|
154
|
+
selectedKey: `+${country.cdc}`,
|
|
155
|
+
selected_value: `${country.iso} (+${country.cdc})`,
|
|
156
|
+
content: `+${country.cdc} ${(_country$i18n$lang = country.i18n[lang]) !== null && _country$i18n$lang !== void 0 ? _country$i18n$lang : country.i18n.en}`
|
|
157
|
+
};
|
|
158
|
+
}
|
|
118
159
|
PhoneNumber._supportsSpacingProps = true;
|
|
119
160
|
export default PhoneNumber;
|
|
120
161
|
//# sourceMappingURL=PhoneNumber.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneNumber.js","names":["React","useMemo","useContext","useCallback","Autocomplete","Flex","classnames","countries","StringComponent","useDataValue","FieldBlock","pickSpacingProps","SharedContext","PhoneNumber","props","_sharedContext$locale","sharedContext","defaultProps","value","errorMessages","_objectSpread","required","translation","Forms","phoneNumberErrorRequired","preparedProps","className","countryCodeFieldClassName","numberFieldClassName","layout","countryCodePlaceholder","placeholder","countryCodeLabel","label","phoneNumberLabel","numberMask","emptyValue","info","warning","error","disabled","width","help","handleFocus","handleBlur","handleChange","onCountryCodeChange","onNumberChange","countryCode","phoneNumber","undefined","match","lang","locale","split","countryCodeData","map","country","selectedKey","cdc","selected_value","iso","content","i18n","en","handleCountryCodeChange","_ref","_data$selectedKey","data","trim","filter","Boolean","join","handleNumberChange","createElement","_extends","Horizontal","label_direction","on_focus","on_blur","on_change","independent_width","search_numbers","stretch","type","mask","onFocus","onBlur","onChange","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, { useMemo, useContext, useCallback } from 'react'\nimport { Autocomplete, Flex } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport countries from '../../constants/countries'\nimport StringComponent from '../String'\nimport { useDataValue } from '../../hooks'\nimport FieldBlock from '../../FieldBlock'\nimport { FieldHelpProps, FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n width?: 'large' | 'stretch'\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n }\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const defaultProps: Partial<Props> = {\n // Important for the default value to be defined here, and not after the useDataValue call, to avoid the UI jumping\n // back to +47 once the user empty the field so handleChange send out undefined.\n value: '+47',\n errorMessages: {\n required: sharedContext?.translation.Forms.phoneNumberErrorRequired,\n ...props?.errorMessages,\n },\n }\n const preparedProps: Props = {\n ...defaultProps,\n ...props,\n }\n\n const {\n className,\n countryCodeFieldClassName,\n numberFieldClassName,\n layout = 'vertical',\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = sharedContext?.translation.Forms.phoneNumberLabel,\n value,\n numberMask,\n emptyValue,\n info,\n warning,\n error,\n disabled,\n width = 'large',\n help,\n handleFocus,\n handleBlur,\n handleChange,\n onCountryCodeChange,\n onNumberChange,\n } = useDataValue(preparedProps)\n\n const [, countryCode, phoneNumber] =\n value !== undefined\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n\n const lang = sharedContext.locale?.split('-')[0]\n const countryCodeData = useMemo(\n () =>\n countries.map((country) => ({\n selectedKey: `+${country.cdc}`,\n selected_value: `${country.iso} (+${country.cdc})`,\n content: `+${country.cdc} ${\n country.i18n[lang] ?? country.i18n.en\n }`,\n })),\n [sharedContext.locale]\n )\n\n const handleCountryCodeChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const countryCode = data?.selectedKey?.trim() ?? emptyValue\n\n if (!countryCode && !phoneNumber) {\n handleChange?.(emptyValue)\n onCountryCodeChange?.(emptyValue)\n return\n }\n\n handleChange?.([countryCode, phoneNumber].filter(Boolean).join(' '))\n onCountryCodeChange?.(countryCode)\n },\n [phoneNumber, emptyValue, handleChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (phoneNumber: string) => {\n if (!countryCode && !phoneNumber) {\n handleChange?.(emptyValue)\n onNumberChange?.(emptyValue)\n return\n }\n\n handleChange?.([countryCode, phoneNumber].filter(Boolean).join(' '))\n onNumberChange?.(phoneNumber)\n },\n [countryCode, emptyValue, handleChange, onNumberChange]\n )\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-phone-number', className)}\n width={width !== 'stretch' ? width : undefined}\n info={info}\n warning={warning}\n error={error}\n {...pickSpacingProps(props)}\n >\n <Flex.Horizontal>\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n placeholder={countryCodePlaceholder ?? ' '}\n label_direction={layout}\n label={\n countryCodeLabel ??\n sharedContext?.translation.Forms.countryCodeLabel\n }\n data={countryCodeData}\n value={countryCode}\n disabled={disabled}\n on_focus={handleFocus}\n on_blur={handleBlur}\n on_change={handleCountryCodeChange}\n independent_width\n search_numbers\n stretch={width === 'stretch'}\n />\n\n <StringComponent\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n emptyValue=\"\"\n layout=\"vertical\"\n label={label ?? ' '}\n placeholder={placeholder ?? '00 00 00 00'}\n mask={\n numberMask ?? [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ]\n }\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleNumberChange}\n value={phoneNumber}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width=\"stretch\"\n help={help}\n />\n </Flex.Horizontal>\n </FieldBlock>\n )\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,UAAU,EAAEC,WAAW,QAAQ,OAAO;AAC/D,SAASC,YAAY,EAAEC,IAAI,QAAQ,wBAAwB;AAE3D,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,2BAA2B;AACjD,OAAOC,eAAe,MAAM,WAAW;AACvC,SAASC,YAAY,QAAQ,aAAa;AAC1C,OAAOC,UAAU,MAAM,kBAAkB;AAEzC,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,aAAa,MAAM,4BAA4B;AActD,SAASC,WAAWA,CAACC,KAAY,EAAE;EAAA,IAAAC,qBAAA;EACjC,MAAMC,aAAa,GAAGd,UAAU,CAACU,aAAa,CAAC;EAC/C,MAAMK,YAA4B,GAAG;IAGnCC,KAAK,EAAE,KAAK;IACZC,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAEL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACC;IAAwB,GAChEV,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEK,aAAa;EAE3B,CAAC;EACD,MAAMM,aAAoB,GAAAL,aAAA,CAAAA,aAAA,KACrBH,YAAY,GACZH,KAAK,CACT;EAED,MAAM;IACJY,SAAS;IACTC,yBAAyB;IACzBC,oBAAoB;IACpBC,MAAM,GAAG,UAAU;IACnBC,sBAAsB;IACtBC,WAAW;IACXC,gBAAgB;IAChBC,KAAK,GAAGjB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACW,gBAAgB;IACzDhB,KAAK;IACLiB,UAAU;IACVC,UAAU;IACVC,IAAI;IACJC,OAAO;IACPC,KAAK;IACLC,QAAQ;IACRC,KAAK,GAAG,OAAO;IACfC,IAAI;IACJC,WAAW;IACXC,UAAU;IACVC,YAAY;IACZC,mBAAmB;IACnBC;EACF,CAAC,GAAGtC,YAAY,CAACgB,aAAa,CAAC;EAE/B,MAAM,GAAGuB,WAAW,EAAEC,WAAW,CAAC,GAChC/B,KAAK,KAAKgC,SAAS,GACfhC,KAAK,CAACiC,KAAK,CAAC,oBAAoB,CAAC,GACjC,CAACD,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC;EAEzB,MAAME,IAAI,IAAArC,qBAAA,GAAGC,aAAa,CAACqC,MAAM,cAAAtC,qBAAA,uBAApBA,qBAAA,CAAsBuC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAChD,MAAMC,eAAe,GAAGtD,OAAO,CAC7B,MACEM,SAAS,CAACiD,GAAG,CAAEC,OAAO,KAAM;IAC1BC,WAAW,EAAG,IAAGD,OAAO,CAACE,GAAI,EAAC;IAC9BC,cAAc,EAAG,GAAEH,OAAO,CAACI,GAAI,MAAKJ,OAAO,CAACE,GAAI,GAAE;IAClDG,OAAO,EAAG,IAAGL,OAAO,CAACE,GAAI,IACvBF,OAAO,CAACM,IAAI,CAACX,IAAI,CAAC,IAAIK,OAAO,CAACM,IAAI,CAACC,EACpC;EACH,CAAC,CAAC,CAAC,EACL,CAAChD,aAAa,CAACqC,MAAM,CACvB,CAAC;EAED,MAAMY,uBAAuB,GAAG9D,WAAW,CACzC+D,IAAA,IAAiD;IAAA,IAAAC,iBAAA;IAAA,IAAhD;MAAEC;IAAwC,CAAC,GAAAF,IAAA;IAC1C,MAAMlB,WAAW,GAAG,CAAAoB,IAAI,aAAJA,IAAI,wBAAAD,iBAAA,GAAJC,IAAI,CAAEV,WAAW,cAAAS,iBAAA,uBAAjBA,iBAAA,CAAmBE,IAAI,CAAC,CAAC,KAAIjC,UAAU;IAE3D,IAAI,CAACY,WAAW,IAAI,CAACC,WAAW,EAAE;MAChCJ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGT,UAAU,CAAC;MAC1BU,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAGV,UAAU,CAAC;MACjC;IACF;IAEAS,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAACG,WAAW,EAAEC,WAAW,CAAC,CAACqB,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE1B,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAGE,WAAW,CAAC;EACpC,CAAC,EACD,CAACC,WAAW,EAAEb,UAAU,EAAES,YAAY,EAAEC,mBAAmB,CAC7D,CAAC;EAED,MAAM2B,kBAAkB,GAAGtE,WAAW,CACnC8C,WAAmB,IAAK;IACvB,IAAI,CAACD,WAAW,IAAI,CAACC,WAAW,EAAE;MAChCJ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGT,UAAU,CAAC;MAC1BW,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGX,UAAU,CAAC;MAC5B;IACF;IAEAS,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAACG,WAAW,EAAEC,WAAW,CAAC,CAACqB,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpEzB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGE,WAAW,CAAC;EAC/B,CAAC,EACD,CAACD,WAAW,EAAEZ,UAAU,EAAES,YAAY,EAAEE,cAAc,CACxD,CAAC;EAED,OACE/C,KAAA,CAAA0E,aAAA,CAAChE,UAAU,EAAAiE,QAAA;IACTjD,SAAS,EAAEpB,UAAU,CAAC,8BAA8B,EAAEoB,SAAS,CAAE;IACjEe,KAAK,EAAEA,KAAK,KAAK,SAAS,GAAGA,KAAK,GAAGS,SAAU;IAC/Cb,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAEA;EAAM,GACT5B,gBAAgB,CAACG,KAAK,CAAC,GAE3Bd,KAAA,CAAA0E,aAAA,CAACrE,IAAI,CAACuE,UAAU,QACd5E,KAAA,CAAA0E,aAAA,CAACtE,YAAY;IACXsB,SAAS,EAAEpB,UAAU,CACnB,4CAA4C,EAC5CqB,yBACF,CAAE;IACFI,WAAW,EAAED,sBAAsB,IAAI,GAAI;IAC3C+C,eAAe,EAAEhD,MAAO;IACxBI,KAAK,EACHD,gBAAgB,KAChBhB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACS,gBAAgB,CAClD;IACDoC,IAAI,EAAEb,eAAgB;IACtBrC,KAAK,EAAE8B,WAAY;IACnBR,QAAQ,EAAEA,QAAS;IACnBsC,QAAQ,EAAEnC,WAAY;IACtBoC,OAAO,EAAEnC,UAAW;IACpBoC,SAAS,EAAEf,uBAAwB;IACnCgB,iBAAiB;IACjBC,cAAc;IACdC,OAAO,EAAE1C,KAAK,KAAK;EAAU,CAC9B,CAAC,EAEFzC,KAAA,CAAA0E,aAAA,CAAClE,eAAe;IACdkB,SAAS,EAAEpB,UAAU,CACnB,sCAAsC,EACtCsB,oBACF,CAAE;IACFwD,IAAI,EAAC,KAAK;IACVhD,UAAU,EAAC,EAAE;IACbP,MAAM,EAAC,UAAU;IACjBI,KAAK,EAAEA,KAAK,IAAI,GAAI;IACpBF,WAAW,EAAEA,WAAW,IAAI,aAAc;IAC1CsD,IAAI,EACFlD,UAAU,IAAI,CACZ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,CAEP;IACDmD,OAAO,EAAE3C,WAAY;IACrB4C,MAAM,EAAE3C,UAAW;IACnB4C,QAAQ,EAAEf,kBAAmB;IAC7BvD,KAAK,EAAE+B,WAAY;IACnBZ,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAEA,QAAS;IACnBC,KAAK,EAAC,SAAS;IACfC,IAAI,EAAEA;EAAK,CACZ,CACc,CACP,CAAC;AAEjB;AAEA7B,WAAW,CAAC4E,qBAAqB,GAAG,IAAI;AACxC,eAAe5E,WAAW"}
|
|
1
|
+
{"version":3,"file":"PhoneNumber.js","names":["React","useMemo","useContext","useCallback","Autocomplete","Flex","classnames","countries","StringComponent","useDataValue","FieldBlock","pickSpacingProps","SharedContext","PhoneNumber","props","sharedContext","defaultProps","value","errorMessages","_objectSpread","required","translation","Forms","phoneNumberErrorRequired","preparedProps","className","countryCodeFieldClassName","numberFieldClassName","layout","countryCodePlaceholder","placeholder","countryCodeLabel","label","phoneNumberLabel","numberMask","emptyValue","info","warning","error","disabled","width","help","handleFocus","handleBlur","handleChange","onCountryCodeChange","onNumberChange","countryCode","phoneNumber","undefined","match","getCountryData","_sharedContext$locale","filter","arguments","length","lang","locale","split","_ref","cdc","sort","_ref2","_ref3","i18n","a","b","map","country","makeObject","singleCountryCodeData","handleCountryCodeChange","_ref4","_data$selectedKey$tri","_data$selectedKey","data","selectedKey","trim","Boolean","join","handleNumberChange","onFocusHandler","_ref5","dataList","updateData","createElement","_extends","Horizontal","label_direction","mode","on_focus","on_blur","on_change","independent_width","search_numbers","no_animation","noAnimation","stretch","type","mask","onFocus","onBlur","onChange","_country$i18n$lang","selected_value","iso","content","en","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, { useMemo, useContext, useCallback } from 'react'\nimport { Autocomplete, Flex } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport countries from '../../constants/countries'\nimport StringComponent from '../String'\nimport { useDataValue } from '../../hooks'\nimport FieldBlock from '../../FieldBlock'\nimport { FieldHelpProps, FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n width?: 'large' | 'stretch'\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n } & {\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n }\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const defaultProps: Partial<Props> = {\n // Important for the default value to be defined here, and not after the useDataValue call, to avoid the UI jumping\n // back to +47 once the user empty the field so handleChange send out undefined.\n value: '+47',\n errorMessages: {\n required: sharedContext?.translation.Forms.phoneNumberErrorRequired,\n ...props?.errorMessages,\n },\n }\n const preparedProps: Props = {\n ...defaultProps,\n ...props,\n }\n\n const {\n className,\n countryCodeFieldClassName,\n numberFieldClassName,\n layout = 'vertical',\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = sharedContext?.translation.Forms.phoneNumberLabel,\n value,\n numberMask,\n emptyValue,\n info,\n warning,\n error,\n disabled,\n width = 'large',\n help,\n handleFocus,\n handleBlur,\n handleChange,\n onCountryCodeChange,\n onNumberChange,\n } = useDataValue(preparedProps)\n\n const [, countryCode, phoneNumber] =\n value !== undefined\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n\n const getCountryData = ({ filter = null } = {}) => {\n const lang = sharedContext.locale?.split('-')[0]\n return countries\n .filter(({ cdc }) => !filter || `+${cdc}` === filter)\n .sort(({ i18n: a }, { i18n: b }) => (a[lang] > b[lang] ? 1 : -1))\n .map((country) => makeObject(country, lang))\n }\n\n const singleCountryCodeData = useMemo(() => {\n return getCountryData({ filter: countryCode })\n }, [])\n\n const handleCountryCodeChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const countryCode = data?.selectedKey?.trim() ?? emptyValue\n\n if (!countryCode && !phoneNumber) {\n handleChange?.(emptyValue)\n onCountryCodeChange?.(emptyValue)\n return\n }\n\n handleChange?.([countryCode, phoneNumber].filter(Boolean).join(' '))\n onCountryCodeChange?.(countryCode)\n },\n [phoneNumber, emptyValue, handleChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (phoneNumber: string) => {\n if (!countryCode && !phoneNumber) {\n handleChange?.(emptyValue)\n onNumberChange?.(emptyValue)\n return\n }\n\n handleChange?.([countryCode, phoneNumber].filter(Boolean).join(' '))\n onNumberChange?.(phoneNumber)\n },\n [countryCode, emptyValue, handleChange, onNumberChange]\n )\n\n const onFocusHandler = ({ dataList, updateData }) => {\n // because there can be more than one country with same cdc\n if (dataList.length < 10) {\n updateData(getCountryData())\n }\n handleFocus()\n }\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-phone-number', className)}\n width={width !== 'stretch' ? width : undefined}\n info={info}\n warning={warning}\n error={error}\n {...pickSpacingProps(props)}\n >\n <Flex.Horizontal>\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n placeholder={countryCodePlaceholder ?? ' '}\n label_direction={layout}\n label={\n countryCodeLabel ??\n sharedContext?.translation.Forms.countryCodeLabel\n }\n mode=\"async\"\n data={singleCountryCodeData}\n value={countryCode}\n disabled={disabled}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryCodeChange}\n independent_width\n search_numbers\n no_animation={props.noAnimation}\n stretch={width === 'stretch'}\n />\n\n <StringComponent\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n emptyValue=\"\"\n layout=\"vertical\"\n label={label ?? ' '}\n placeholder={placeholder ?? '00 00 00 00'}\n mask={\n numberMask ?? [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ]\n }\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleNumberChange}\n value={phoneNumber}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width=\"stretch\"\n help={help}\n />\n </Flex.Horizontal>\n </FieldBlock>\n )\n}\n\ntype CountryType = {\n cdc: string\n iso: string\n i18n: {\n en: string\n }\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n return {\n selectedKey: `+${country.cdc}`,\n selected_value: `${country.iso} (+${country.cdc})`,\n content: `+${country.cdc} ${country.i18n[lang] ?? country.i18n.en}`,\n }\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
5
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
@@ -10,6 +12,7 @@ import SharedContext from '../../../../shared/Context';
|
|
|
10
12
|
import FieldBlock from '../../FieldBlock';
|
|
11
13
|
import StringComponent from '../String';
|
|
12
14
|
function PostalCodeAndCity(props) {
|
|
15
|
+
var _postalCode$pattern, _postalCode$label, _postalCode$placehold, _city$label;
|
|
13
16
|
const sharedContext = useContext(SharedContext);
|
|
14
17
|
const {
|
|
15
18
|
postalCode = {},
|
|
@@ -23,19 +26,19 @@ function PostalCodeAndCity(props) {
|
|
|
23
26
|
}, fieldBlockProps), React.createElement("div", {
|
|
24
27
|
className: 'dnb-forms-field-postal-code-and-city__fields' + (width !== undefined ? ` dnb-forms-field-postal-code-and-city--width-${width}` : "")
|
|
25
28
|
}, React.createElement(StringComponent, _extends({}, postalCode, {
|
|
26
|
-
pattern: postalCode.pattern
|
|
29
|
+
pattern: (_postalCode$pattern = postalCode.pattern) !== null && _postalCode$pattern !== void 0 ? _postalCode$pattern : '^[0-9]{4}$',
|
|
27
30
|
className: classnames('dnb-forms-field-postal-code-and-city__postal-code', postalCode.className),
|
|
28
|
-
label: postalCode.label
|
|
31
|
+
label: (_postalCode$label = postalCode.label) !== null && _postalCode$label !== void 0 ? _postalCode$label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.postalCodeLabel,
|
|
29
32
|
errorMessages: _objectSpread({
|
|
30
33
|
required: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.postalCodeErrorRequired,
|
|
31
34
|
pattern: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.postalCodeErrorPattern
|
|
32
35
|
}, postalCode.errorMessages),
|
|
33
|
-
placeholder: postalCode.placeholder
|
|
36
|
+
placeholder: (_postalCode$placehold = postalCode.placeholder) !== null && _postalCode$placehold !== void 0 ? _postalCode$placehold : '0000',
|
|
34
37
|
width: false,
|
|
35
38
|
inputClassName: "dnb-forms-field-postal-code-and-city__postal-code-input"
|
|
36
39
|
})), React.createElement(StringComponent, _extends({}, city, {
|
|
37
40
|
className: classnames('dnb-forms-field-postal-code-and-city__city', city.className),
|
|
38
|
-
label: city.label
|
|
41
|
+
label: (_city$label = city.label) !== null && _city$label !== void 0 ? _city$label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.cityLabel,
|
|
39
42
|
errorMessages: _objectSpread({
|
|
40
43
|
required: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.cityErrorRequired
|
|
41
44
|
}, city.errorMessages),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostalCodeAndCity.js","names":["React","useContext","classnames","SharedContext","FieldBlock","StringComponent","PostalCodeAndCity","props","sharedContext","postalCode","city","width","help","fieldBlockProps","_objectWithoutProperties","_excluded","createElement","_extends","className","undefined","pattern","label","translation","Forms","postalCodeLabel","errorMessages","_objectSpread","required","postalCodeErrorRequired","postalCodeErrorPattern","placeholder","inputClassName","cityLabel","cityErrorRequired","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport StringComponent, { Props as StringComponentProps } from '../String'\nimport { FieldHelpProps } from '../../types'\n\nexport type Props = FieldHelpProps &\n Omit<FieldBlockProps, 'children'> &\n Record<'postalCode' | 'city', StringComponentProps> & {\n width?: 'small' | 'medium' | 'large'\n }\n\nfunction PostalCodeAndCity(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const {\n postalCode = {},\n city = {},\n width = 'large',\n help,\n ...fieldBlockProps\n } = props\n\n return (\n <FieldBlock\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldBlockProps}\n >\n <div\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__fields',\n width !== undefined &&\n `dnb-forms-field-postal-code-and-city--width-${width}`\n )}\n >\n <StringComponent\n {...postalCode}\n pattern={postalCode.pattern ?? '^[0-9]{4}$'}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCode.className\n )}\n label={\n postalCode.label ??\n sharedContext?.translation.Forms.postalCodeLabel\n }\n errorMessages={{\n required:\n sharedContext?.translation.Forms.postalCodeErrorRequired,\n pattern:\n sharedContext?.translation.Forms.postalCodeErrorPattern,\n ...postalCode.errorMessages,\n }}\n placeholder={postalCode.placeholder ?? '0000'}\n width={false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n />\n <StringComponent\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n city.className\n )}\n label={city.label ?? sharedContext?.translation.Forms.cityLabel}\n errorMessages={{\n required: sharedContext?.translation.Forms.cityErrorRequired,\n ...city.errorMessages,\n }}\n width=\"stretch\"\n help={help}\n />\n </div>\n </FieldBlock>\n )\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PostalCodeAndCity.js","names":["React","useContext","classnames","SharedContext","FieldBlock","StringComponent","PostalCodeAndCity","props","_postalCode$pattern","_postalCode$label","_postalCode$placehold","_city$label","sharedContext","postalCode","city","width","help","fieldBlockProps","_objectWithoutProperties","_excluded","createElement","_extends","className","undefined","pattern","label","translation","Forms","postalCodeLabel","errorMessages","_objectSpread","required","postalCodeErrorRequired","postalCodeErrorPattern","placeholder","inputClassName","cityLabel","cityErrorRequired","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport StringComponent, { Props as StringComponentProps } from '../String'\nimport { FieldHelpProps } from '../../types'\n\nexport type Props = FieldHelpProps &\n Omit<FieldBlockProps, 'children'> &\n Record<'postalCode' | 'city', StringComponentProps> & {\n width?: 'small' | 'medium' | 'large'\n }\n\nfunction PostalCodeAndCity(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const {\n postalCode = {},\n city = {},\n width = 'large',\n help,\n ...fieldBlockProps\n } = props\n\n return (\n <FieldBlock\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldBlockProps}\n >\n <div\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__fields',\n width !== undefined &&\n `dnb-forms-field-postal-code-and-city--width-${width}`\n )}\n >\n <StringComponent\n {...postalCode}\n pattern={postalCode.pattern ?? '^[0-9]{4}$'}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCode.className\n )}\n label={\n postalCode.label ??\n sharedContext?.translation.Forms.postalCodeLabel\n }\n errorMessages={{\n required:\n sharedContext?.translation.Forms.postalCodeErrorRequired,\n pattern:\n sharedContext?.translation.Forms.postalCodeErrorPattern,\n ...postalCode.errorMessages,\n }}\n placeholder={postalCode.placeholder ?? '0000'}\n width={false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n />\n <StringComponent\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n city.className\n )}\n label={city.label ?? sharedContext?.translation.Forms.cityLabel}\n errorMessages={{\n required: sharedContext?.translation.Forms.cityErrorRequired,\n ...city.errorMessages,\n }}\n width=\"stretch\"\n help={help}\n />\n </div>\n </FieldBlock>\n )\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,4BAA4B;AACtD,OAAOC,UAAU,MAAoC,kBAAkB;AACvE,OAAOC,eAAe,MAAyC,WAAW;AAS1E,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,mBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,WAAA;EACvC,MAAMC,aAAa,GAAGX,UAAU,CAACE,aAAa,CAAC;EAE/C,MAAM;MACJU,UAAU,GAAG,CAAC,CAAC;MACfC,IAAI,GAAG,CAAC,CAAC;MACTC,KAAK,GAAG,OAAO;MACfC;IAEF,CAAC,GAAGT,KAAK;IADJU,eAAe,GAAAC,wBAAA,CAChBX,KAAK,EAAAY,SAAA;EAET,OACEnB,KAAA,CAAAoB,aAAA,CAAChB,UAAU,EAAAiB,QAAA;IACTC,SAAS,EAAEpB,UAAU,CACnB,sCAAsC,EACtCK,KAAK,CAACe,SACR;EAAE,GACEL,eAAe,GAEnBjB,KAAA,CAAAoB,aAAA;IACEE,SAAS,EACP,8CAA8C,IAC9CP,KAAK,KAAKQ,SAAS,mDAC8BR,KAAM;EACvD,GAEFf,KAAA,CAAAoB,aAAA,CAACf,eAAe,EAAAgB,QAAA,KACVR,UAAU;IACdW,OAAO,GAAAhB,mBAAA,GAAEK,UAAU,CAACW,OAAO,cAAAhB,mBAAA,cAAAA,mBAAA,GAAI,YAAa;IAC5Cc,SAAS,EAAEpB,UAAU,CACnB,mDAAmD,EACnDW,UAAU,CAACS,SACb,CAAE;IACFG,KAAK,GAAAhB,iBAAA,GACHI,UAAU,CAACY,KAAK,cAAAhB,iBAAA,cAAAA,iBAAA,GAChBG,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEc,WAAW,CAACC,KAAK,CAACC,eAClC;IACDC,aAAa,EAAAC,aAAA;MACXC,QAAQ,EACNnB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEc,WAAW,CAACC,KAAK,CAACK,uBAAuB;MAC1DR,OAAO,EACLZ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEc,WAAW,CAACC,KAAK,CAACM;IAAsB,GACtDpB,UAAU,CAACgB,aAAa,CAC3B;IACFK,WAAW,GAAAxB,qBAAA,GAAEG,UAAU,CAACqB,WAAW,cAAAxB,qBAAA,cAAAA,qBAAA,GAAI,MAAO;IAC9CK,KAAK,EAAE,KAAM;IACboB,cAAc,EAAC;EAAyD,EACzE,CAAC,EACFnC,KAAA,CAAAoB,aAAA,CAACf,eAAe,EAAAgB,QAAA,KACVP,IAAI;IACRQ,SAAS,EAAEpB,UAAU,CACnB,4CAA4C,EAC5CY,IAAI,CAACQ,SACP,CAAE;IACFG,KAAK,GAAAd,WAAA,GAAEG,IAAI,CAACW,KAAK,cAAAd,WAAA,cAAAA,WAAA,GAAIC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEc,WAAW,CAACC,KAAK,CAACS,SAAU;IAChEP,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAEnB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEc,WAAW,CAACC,KAAK,CAACU;IAAiB,GACzDvB,IAAI,CAACe,aAAa,CACrB;IACFd,KAAK,EAAC,SAAS;IACfC,IAAI,EAAEA;EAAK,EACZ,CACE,CACK,CAAC;AAEjB;AAEAV,iBAAiB,CAACgC,qBAAqB,GAAG,IAAI;AAC9C,eAAehC,iBAAiB"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
4
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -7,21 +9,24 @@ import Option from '../Option';
|
|
|
7
9
|
import countries from '../../constants/countries';
|
|
8
10
|
import SharedContext from '../../../../shared/Context';
|
|
9
11
|
function SelectCountry(props) {
|
|
10
|
-
var _sharedContext$locale;
|
|
12
|
+
var _props$placeholder, _props$label, _sharedContext$locale;
|
|
11
13
|
const sharedContext = useContext(SharedContext);
|
|
12
14
|
const selectComponentProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
13
|
-
placeholder: props.placeholder
|
|
14
|
-
label: props.label
|
|
15
|
+
placeholder: (_props$placeholder = props.placeholder) !== null && _props$placeholder !== void 0 ? _props$placeholder : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.selectCountryPlaceholder,
|
|
16
|
+
label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.selectCountryLabel,
|
|
15
17
|
errorMessages: _objectSpread({
|
|
16
18
|
required: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.selectCountryErrorRequired
|
|
17
19
|
}, props.errorMessages)
|
|
18
20
|
});
|
|
19
21
|
const lang = (_sharedContext$locale = sharedContext.locale) === null || _sharedContext$locale === void 0 ? void 0 : _sharedContext$locale.split('-')[0];
|
|
20
|
-
const countryOptions = useMemo(() => countries.map(country =>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
const countryOptions = useMemo(() => countries.map(country => {
|
|
23
|
+
var _country$i18n$lang;
|
|
24
|
+
return React.createElement(Option, {
|
|
25
|
+
key: country.iso,
|
|
26
|
+
value: country.iso,
|
|
27
|
+
title: (_country$i18n$lang = country.i18n[lang]) !== null && _country$i18n$lang !== void 0 ? _country$i18n$lang : country.i18n.en
|
|
28
|
+
});
|
|
29
|
+
}), [sharedContext.locale]);
|
|
25
30
|
return React.createElement(Selection, selectComponentProps, countryOptions);
|
|
26
31
|
}
|
|
27
32
|
SelectCountry._supportsSpacingProps = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectCountry.js","names":["React","useContext","useMemo","Selection","Option","countries","SharedContext","SelectCountry","props","_sharedContext$locale","sharedContext","selectComponentProps","_objectSpread","placeholder","translation","Forms","selectCountryPlaceholder","label","selectCountryLabel","errorMessages","required","selectCountryErrorRequired","lang","locale","split","countryOptions","map","country","createElement","key","iso","value","title","i18n","en","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport Selection, { Props as SelectionProps } from '../Selection'\nimport Option from '../Option'\nimport countries from '../../constants/countries'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = SelectionProps\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const selectComponentProps: Props = {\n ...props,\n placeholder:\n props.placeholder ??\n sharedContext?.translation.Forms.selectCountryPlaceholder,\n label:\n props.label ?? sharedContext?.translation.Forms.selectCountryLabel,\n errorMessages: {\n required:\n sharedContext?.translation.Forms.selectCountryErrorRequired,\n ...props.errorMessages,\n },\n }\n\n const lang = sharedContext.locale?.split('-')[0]\n const countryOptions = useMemo(\n () =>\n countries.map((country) => (\n <Option\n key={country.iso}\n value={country.iso}\n title={country.i18n[lang] ?? country.i18n.en}\n />\n )),\n [sharedContext.locale]\n )\n\n return <Selection {...selectComponentProps}>{countryOptions}</Selection>\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SelectCountry.js","names":["React","useContext","useMemo","Selection","Option","countries","SharedContext","SelectCountry","props","_props$placeholder","_props$label","_sharedContext$locale","sharedContext","selectComponentProps","_objectSpread","placeholder","translation","Forms","selectCountryPlaceholder","label","selectCountryLabel","errorMessages","required","selectCountryErrorRequired","lang","locale","split","countryOptions","map","country","_country$i18n$lang","createElement","key","iso","value","title","i18n","en","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport Selection, { Props as SelectionProps } from '../Selection'\nimport Option from '../Option'\nimport countries from '../../constants/countries'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = SelectionProps\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const selectComponentProps: Props = {\n ...props,\n placeholder:\n props.placeholder ??\n sharedContext?.translation.Forms.selectCountryPlaceholder,\n label:\n props.label ?? sharedContext?.translation.Forms.selectCountryLabel,\n errorMessages: {\n required:\n sharedContext?.translation.Forms.selectCountryErrorRequired,\n ...props.errorMessages,\n },\n }\n\n const lang = sharedContext.locale?.split('-')[0]\n const countryOptions = useMemo(\n () =>\n countries.map((country) => (\n <Option\n key={country.iso}\n value={country.iso}\n title={country.i18n[lang] ?? country.i18n.en}\n />\n )),\n [sharedContext.locale]\n )\n\n return <Selection {...selectComponentProps}>{countryOptions}</Selection>\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,SAAS,MAAmC,cAAc;AACjE,OAAOC,MAAM,MAAM,WAAW;AAC9B,OAAOC,SAAS,MAAM,2BAA2B;AACjD,OAAOC,aAAa,MAAM,4BAA4B;AAItD,SAASC,aAAaA,CAACC,KAAY,EAAE;EAAA,IAAAC,kBAAA,EAAAC,YAAA,EAAAC,qBAAA;EACnC,MAAMC,aAAa,GAAGX,UAAU,CAACK,aAAa,CAAC;EAE/C,MAAMO,oBAA2B,GAAAC,aAAA,CAAAA,aAAA,KAC5BN,KAAK;IACRO,WAAW,GAAAN,kBAAA,GACTD,KAAK,CAACO,WAAW,cAAAN,kBAAA,cAAAA,kBAAA,GACjBG,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,WAAW,CAACC,KAAK,CAACC,wBAAwB;IAC3DC,KAAK,GAAAT,YAAA,GACHF,KAAK,CAACW,KAAK,cAAAT,YAAA,cAAAA,YAAA,GAAIE,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,WAAW,CAACC,KAAK,CAACG,kBAAkB;IACpEC,aAAa,EAAAP,aAAA;MACXQ,QAAQ,EACNV,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,WAAW,CAACC,KAAK,CAACM;IAA0B,GAC1Df,KAAK,CAACa,aAAa;EACvB,EACF;EAED,MAAMG,IAAI,IAAAb,qBAAA,GAAGC,aAAa,CAACa,MAAM,cAAAd,qBAAA,uBAApBA,qBAAA,CAAsBe,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAChD,MAAMC,cAAc,GAAGzB,OAAO,CAC5B,MACEG,SAAS,CAACuB,GAAG,CAAEC,OAAO;IAAA,IAAAC,kBAAA;IAAA,OACpB9B,KAAA,CAAA+B,aAAA,CAAC3B,MAAM;MACL4B,GAAG,EAAEH,OAAO,CAACI,GAAI;MACjBC,KAAK,EAAEL,OAAO,CAACI,GAAI;MACnBE,KAAK,GAAAL,kBAAA,GAAED,OAAO,CAACO,IAAI,CAACZ,IAAI,CAAC,cAAAM,kBAAA,cAAAA,kBAAA,GAAID,OAAO,CAACO,IAAI,CAACC;IAAG,CAC9C,CAAC;EAAA,CACH,CAAC,EACJ,CAACzB,aAAa,CAACa,MAAM,CACvB,CAAC;EAED,OAAOzB,KAAA,CAAA+B,aAAA,CAAC5B,SAAS,EAAKU,oBAAoB,EAAGc,cAA0B,CAAC;AAC1E;AAEApB,aAAa,CAAC+B,qBAAqB,GAAG,IAAI;AAC1C,eAAe/B,aAAa"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
5
|
var _em;
|
|
@@ -80,14 +82,17 @@ function Selection(props) {
|
|
|
80
82
|
labelDescription,
|
|
81
83
|
labelSecondary
|
|
82
84
|
});
|
|
83
|
-
const options = useMemo(() => React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === Option).map(option =>
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
const options = useMemo(() => React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === Option).map(option => {
|
|
86
|
+
var _option$props$title;
|
|
87
|
+
return {
|
|
88
|
+
title: (_option$props$title = option.props.title) !== null && _option$props$title !== void 0 ? _option$props$title : option.props.children,
|
|
89
|
+
value: option.props.value,
|
|
90
|
+
handleSelect: () => {
|
|
91
|
+
const selected = option.props.value;
|
|
92
|
+
handleChange === null || handleChange === void 0 ? void 0 : handleChange(selected === value ? emptyValue : selected);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
}), [children, value, emptyValue, handleChange]);
|
|
91
96
|
switch (variant) {
|
|
92
97
|
case 'radio':
|
|
93
98
|
return React.createElement(Radio.Group, _extends({
|
|
@@ -96,12 +101,15 @@ function Selection(props) {
|
|
|
96
101
|
layout_direction: optionsLayout === 'horizontal' ? 'row' : 'column',
|
|
97
102
|
vertical: layout === 'vertical',
|
|
98
103
|
on_change: handleRadioChange,
|
|
99
|
-
value: String(value
|
|
100
|
-
}, pickSpacingProps(props)), options.map((option, i) =>
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
104
|
+
value: String(value !== null && value !== void 0 ? value : '')
|
|
105
|
+
}, pickSpacingProps(props)), options.map((option, i) => {
|
|
106
|
+
var _option$value;
|
|
107
|
+
return React.createElement(Radio, {
|
|
108
|
+
key: `option-${i}-${option.value}`,
|
|
109
|
+
label: option.title,
|
|
110
|
+
value: String((_option$value = option.value) !== null && _option$value !== void 0 ? _option$value : '')
|
|
111
|
+
});
|
|
112
|
+
}));
|
|
105
113
|
case 'button':
|
|
106
114
|
return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ButtonRow, null, React.createElement(ToggleButtonGroupContext.Provider, {
|
|
107
115
|
value: {
|
|
@@ -116,14 +124,16 @@ function Selection(props) {
|
|
|
116
124
|
})))));
|
|
117
125
|
case 'dropdown':
|
|
118
126
|
{
|
|
127
|
+
var _error$message;
|
|
119
128
|
const optionsData = React.Children.map(children, child => {
|
|
120
129
|
if (React.isValidElement(child) && child.type === Option) {
|
|
130
|
+
var _child$props$value, _ref5, _child$props$children, _child$props$children2;
|
|
121
131
|
return child.props.text ? {
|
|
122
|
-
selectedKey: String(child.props.value
|
|
123
|
-
content: [child.props.children
|
|
132
|
+
selectedKey: String((_child$props$value = child.props.value) !== null && _child$props$value !== void 0 ? _child$props$value : ''),
|
|
133
|
+
content: [(_ref5 = (_child$props$children = child.props.children) !== null && _child$props$children !== void 0 ? _child$props$children : child.props.title) !== null && _ref5 !== void 0 ? _ref5 : _em || (_em = React.createElement("em", null, "Untitled")), child.props.text]
|
|
124
134
|
} : {
|
|
125
135
|
selectedKey: child.props.value,
|
|
126
|
-
content: child.props.children
|
|
136
|
+
content: (_child$props$children2 = child.props.children) !== null && _child$props$children2 !== void 0 ? _child$props$children2 : child.props.title
|
|
127
137
|
};
|
|
128
138
|
}
|
|
129
139
|
return {
|
|
@@ -133,16 +143,16 @@ function Selection(props) {
|
|
|
133
143
|
const data = [clear ? {
|
|
134
144
|
selectedKey: clearValue,
|
|
135
145
|
content: React.createElement("em", null, sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.selectionClearSelected)
|
|
136
|
-
} : undefined, ...(optionsData
|
|
146
|
+
} : undefined, ...(optionsData !== null && optionsData !== void 0 ? optionsData : [])].filter(Boolean);
|
|
137
147
|
return React.createElement(Dropdown, _extends({
|
|
138
148
|
className: classnames('dnb-forms-field-selection', className, width !== 'stretch' && `dnb-forms-field-selection--width-${width}`),
|
|
139
149
|
list_class: "dnb-forms-field-selection__list",
|
|
140
150
|
portal_class: "dnb-forms-field-selection__portal",
|
|
141
151
|
title: placeholder,
|
|
142
|
-
value: String(value
|
|
152
|
+
value: String(value !== null && value !== void 0 ? value : ''),
|
|
143
153
|
label: label,
|
|
144
154
|
label_direction: layout,
|
|
145
|
-
status: (error === null || error === void 0 ? void 0 : error.message)
|
|
155
|
+
status: (_error$message = error === null || error === void 0 ? void 0 : error.message) !== null && _error$message !== void 0 ? _error$message : warning instanceof Error && warning.message || warning instanceof FormError && warning.message || (warning === null || warning === void 0 ? void 0 : warning.toString()) || info instanceof Error && info.message || info instanceof FormError && info.message || (info === null || info === void 0 ? void 0 : info.toString()),
|
|
146
156
|
disabled: disabled,
|
|
147
157
|
data: data,
|
|
148
158
|
suffix: help ? React.createElement(HelpButton, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Selection.js","names":["React","useMemo","useContext","useCallback","ToggleButton","Dropdown","Radio","HelpButton","ButtonRow","FieldBlock","classnames","makeUniqueId","SharedContext","Option","useDataValue","FormError","pickSpacingProps","ToggleButtonGroupContext","Selection","props","sharedContext","clearValue","id","className","variant","clear","label","labelDescription","labelSecondary","layout","optionsLayout","placeholder","value","info","warning","error","disabled","help","emptyValue","width","setHasFocus","handleChange","children","handleDropdownChange","_ref","data","selectedKey","handleRadioChange","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","fieldBlockProps","_objectSpread","forId","options","Children","toArray","filter","child","isValidElement","type","map","option","title","handleSelect","selected","createElement","Group","_extends","layout_direction","vertical","on_change","String","i","key","Provider","status","text","checked","optionsData","content","_em","translation","Forms","selectionClearSelected","Boolean","list_class","portal_class","label_direction","message","Error","toString","suffix","contents","on_show","on_hide","stretch","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useContext, useCallback } from 'react'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n} from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock from '../../FieldBlock'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport SharedContext from '../../../../shared/Context'\nimport Option from '../Option'\nimport { useDataValue } from '../../hooks'\nimport { FormError, FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\ninterface IOption {\n title: string | React.ReactNode\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<string | number> & {\n children?: React.ReactNode\n variant?: 'dropdown' | 'radio' | 'button'\n clear?: boolean\n optionsLayout?: 'horizontal' | 'vertical'\n width?: 'small' | 'medium' | 'large' | 'stretch'\n }\n\nfunction Selection(props: Props) {\n const sharedContext = useContext(SharedContext)\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n clear,\n label,\n labelDescription,\n labelSecondary,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n disabled,\n help,\n emptyValue,\n width = 'large',\n setHasFocus,\n handleChange,\n children,\n } = useDataValue(props)\n\n const handleDropdownChange = useCallback(\n ({ data: { selectedKey } }) => {\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const handleRadioChange = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useDataValues handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames('dnb-forms-field-selection', className)\n\n const fieldBlockProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n labelSecondary,\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) => React.isValidElement(child) && child.type === Option\n )\n .map((option: React.ReactElement) => ({\n title: option.props.title ?? option.props.children,\n value: option.props.value,\n handleSelect: () => {\n const selected = option.props.value\n\n handleChange?.(selected === value ? emptyValue : selected)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'radio':\n return (\n <Radio.Group\n className={cn}\n label={label}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n vertical={layout === 'vertical'}\n on_change={handleRadioChange}\n value={String(value ?? '')}\n {...pickSpacingProps(props)}\n >\n {options.map((option, i) => (\n <Radio\n key={`option-${i}-${option.value}`}\n label={option.title}\n value={String(option.value ?? '')}\n />\n ))}\n </Radio.Group>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ButtonRow>\n <ToggleButtonGroupContext.Provider\n value={{\n status: error ? 'error' : undefined,\n disabled,\n }}\n >\n {options.map((option, i) => (\n <ToggleButton\n key={`option-${i}-${option.value}`}\n text={option.title}\n on_change={option.handleSelect}\n checked={option.value === value}\n />\n ))}\n </ToggleButtonGroupContext.Provider>\n </ButtonRow>\n </FieldBlock>\n )\n case 'dropdown': {\n const optionsData = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === Option) {\n // Option components\n return child.props.text\n ? {\n selectedKey: String(child.props.value ?? ''),\n content: [\n child.props.children ?? child.props.title ?? (\n <em>Untitled</em>\n ),\n child.props.text,\n ],\n }\n : {\n selectedKey: child.props.value,\n content: child.props.children ?? child.props.title,\n }\n }\n\n // For other children, just show them as content\n return {\n content: child,\n }\n })\n const data = [\n clear\n ? {\n selectedKey: clearValue,\n content: (\n <em>\n {sharedContext?.translation.Forms.selectionClearSelected}\n </em>\n ),\n }\n : undefined,\n ...(optionsData ?? []),\n ].filter(Boolean)\n\n return (\n <Dropdown\n className={classnames(\n 'dnb-forms-field-selection',\n width !== 'stretch' &&\n `dnb-forms-field-selection--width-${width}`,\n className\n )}\n list_class=\"dnb-forms-field-selection__list\"\n portal_class=\"dnb-forms-field-selection__portal\"\n title={placeholder}\n value={String(value ?? '')}\n label={label}\n label_direction={layout}\n status={\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n }\n disabled={disabled}\n data={data}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n on_change={handleDropdownChange}\n on_show={handleShow}\n on_hide={handleHide}\n {...pickSpacingProps(props)}\n stretch={width === 'stretch'}\n />\n )\n }\n }\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Selection.js","names":["React","useMemo","useContext","useCallback","ToggleButton","Dropdown","Radio","HelpButton","ButtonRow","FieldBlock","classnames","makeUniqueId","SharedContext","Option","useDataValue","FormError","pickSpacingProps","ToggleButtonGroupContext","Selection","props","sharedContext","clearValue","id","className","variant","clear","label","labelDescription","labelSecondary","layout","optionsLayout","placeholder","value","info","warning","error","disabled","help","emptyValue","width","setHasFocus","handleChange","children","handleDropdownChange","_ref","data","selectedKey","handleRadioChange","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","fieldBlockProps","_objectSpread","forId","options","Children","toArray","filter","child","isValidElement","type","map","option","_option$props$title","title","handleSelect","selected","createElement","Group","_extends","layout_direction","vertical","on_change","String","i","_option$value","key","Provider","status","text","checked","_error$message","optionsData","_child$props$value","_ref5","_child$props$children","_child$props$children2","content","_em","translation","Forms","selectionClearSelected","Boolean","list_class","portal_class","label_direction","message","Error","toString","suffix","contents","on_show","on_hide","stretch","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useContext, useCallback } from 'react'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n} from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock from '../../FieldBlock'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport SharedContext from '../../../../shared/Context'\nimport Option from '../Option'\nimport { useDataValue } from '../../hooks'\nimport { FormError, FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\ninterface IOption {\n title: string | React.ReactNode\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<string | number> & {\n children?: React.ReactNode\n variant?: 'dropdown' | 'radio' | 'button'\n clear?: boolean\n optionsLayout?: 'horizontal' | 'vertical'\n width?: 'small' | 'medium' | 'large' | 'stretch'\n }\n\nfunction Selection(props: Props) {\n const sharedContext = useContext(SharedContext)\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n clear,\n label,\n labelDescription,\n labelSecondary,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n disabled,\n help,\n emptyValue,\n width = 'large',\n setHasFocus,\n handleChange,\n children,\n } = useDataValue(props)\n\n const handleDropdownChange = useCallback(\n ({ data: { selectedKey } }) => {\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const handleRadioChange = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useDataValues handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames('dnb-forms-field-selection', className)\n\n const fieldBlockProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n labelSecondary,\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) => React.isValidElement(child) && child.type === Option\n )\n .map((option: React.ReactElement) => ({\n title: option.props.title ?? option.props.children,\n value: option.props.value,\n handleSelect: () => {\n const selected = option.props.value\n\n handleChange?.(selected === value ? emptyValue : selected)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'radio':\n return (\n <Radio.Group\n className={cn}\n label={label}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n vertical={layout === 'vertical'}\n on_change={handleRadioChange}\n value={String(value ?? '')}\n {...pickSpacingProps(props)}\n >\n {options.map((option, i) => (\n <Radio\n key={`option-${i}-${option.value}`}\n label={option.title}\n value={String(option.value ?? '')}\n />\n ))}\n </Radio.Group>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ButtonRow>\n <ToggleButtonGroupContext.Provider\n value={{\n status: error ? 'error' : undefined,\n disabled,\n }}\n >\n {options.map((option, i) => (\n <ToggleButton\n key={`option-${i}-${option.value}`}\n text={option.title}\n on_change={option.handleSelect}\n checked={option.value === value}\n />\n ))}\n </ToggleButtonGroupContext.Provider>\n </ButtonRow>\n </FieldBlock>\n )\n case 'dropdown': {\n const optionsData = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === Option) {\n // Option components\n return child.props.text\n ? {\n selectedKey: String(child.props.value ?? ''),\n content: [\n child.props.children ?? child.props.title ?? (\n <em>Untitled</em>\n ),\n child.props.text,\n ],\n }\n : {\n selectedKey: child.props.value,\n content: child.props.children ?? child.props.title,\n }\n }\n\n // For other children, just show them as content\n return {\n content: child,\n }\n })\n const data = [\n clear\n ? {\n selectedKey: clearValue,\n content: (\n <em>\n {sharedContext?.translation.Forms.selectionClearSelected}\n </em>\n ),\n }\n : undefined,\n ...(optionsData ?? []),\n ].filter(Boolean)\n\n return (\n <Dropdown\n className={classnames(\n 'dnb-forms-field-selection',\n width !== 'stretch' &&\n `dnb-forms-field-selection--width-${width}`,\n className\n )}\n list_class=\"dnb-forms-field-selection__list\"\n portal_class=\"dnb-forms-field-selection__portal\"\n title={placeholder}\n value={String(value ?? '')}\n label={label}\n label_direction={layout}\n status={\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n }\n disabled={disabled}\n data={data}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n on_change={handleDropdownChange}\n on_show={handleShow}\n on_hide={handleHide}\n {...pickSpacingProps(props)}\n stretch={width === 'stretch'}\n />\n )\n }\n }\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
|