@dnb/eufemia 10.63.3 → 10.64.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 +50 -0
- package/assets/icons/dnb/calendar_add.svg +1 -0
- package/assets/icons/dnb/calendar_add_medium.svg +1 -0
- package/assets/icons/dnb/cog_medium.svg +1 -1
- package/assets/icons/dnb/digipass_corporate.svg +1 -1
- package/assets/icons/dnb/digipass_corporate_medium.svg +1 -1
- package/assets/icons/dnb/digipass_private.svg +1 -1
- package/assets/icons/dnb/digipass_private_medium.svg +1 -1
- package/assets/icons/dnb/digitpass_private_corporate.svg +1 -0
- package/assets/icons/dnb/digitpass_private_corporate_medium.svg +1 -0
- package/assets/icons/dnb/eufemia-icons-xml-categorized.tgz +0 -0
- package/assets/icons/dnb/eufemia-icons-xml.tgz +0 -0
- package/assets/icons/dnb/goal.svg +1 -0
- package/assets/icons/dnb/goal_medium.svg +1 -0
- package/assets/icons/dnb/information.svg +1 -1
- package/assets/icons/dnb/investor.svg +1 -0
- package/assets/icons/dnb/investor_medium.svg +1 -0
- package/assets/icons/dnb/layout_grid.svg +1 -0
- package/assets/icons/dnb/layout_grid_medium.svg +1 -0
- package/assets/icons/dnb/question.svg +1 -1
- package/assets/icons/dnb/question_circled.svg +1 -1
- package/assets/icons/dnb/question_medium.svg +1 -1
- package/assets/icons/dnb/return_1_medium.svg +1 -1
- package/assets/icons/dnb/show_pin.svg +1 -0
- package/assets/icons/dnb/show_pin_medium.svg +1 -0
- package/assets/icons/dnb/table.svg +1 -0
- package/assets/icons/dnb/table_medium.svg +1 -0
- package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
- package/cjs/components/date-picker/DatePickerCalc.js +1 -1
- package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
- package/cjs/components/drawer/style/dnb-drawer.css +4 -4
- package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
- package/cjs/components/drawer/style/dnb-drawer.scss +4 -4
- package/cjs/components/dropdown/Dropdown.d.ts +1 -1
- package/cjs/components/form-status/FormStatus.js +3 -2
- package/cjs/components/form-status/FormStatus.js.map +1 -1
- package/cjs/components/heading/HeadingCounter.js +4 -4
- package/cjs/components/heading/HeadingCounter.js.map +1 -1
- package/cjs/components/input/Input.js +1 -1
- package/cjs/components/input/Input.js.map +1 -1
- package/cjs/components/radio/Radio.d.ts +1 -1
- package/cjs/components/radio/RadioGroup.d.ts +1 -1
- package/cjs/components/section/Section.d.ts +1 -1
- package/cjs/components/section/Section.js.map +1 -1
- package/cjs/components/section/SectionDocs.js +1 -1
- package/cjs/components/section/SectionDocs.js.map +1 -1
- package/cjs/components/textarea/Textarea.js +8 -1
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/elements/lists/style/lists-mixins.scss +1 -1
- package/cjs/extensions/forms/Connectors/Bring/index.d.ts +1 -0
- package/cjs/extensions/forms/Connectors/Bring/index.js +11 -0
- package/cjs/extensions/forms/Connectors/Bring/index.js.map +1 -0
- package/cjs/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
- package/cjs/extensions/forms/Connectors/Bring/postalCode.js +164 -0
- package/cjs/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
- package/cjs/extensions/forms/Connectors/createContext.d.ts +58 -0
- package/cjs/extensions/forms/Connectors/createContext.js +130 -0
- package/cjs/extensions/forms/Connectors/createContext.js.map +1 -0
- package/cjs/extensions/forms/Connectors/index.d.ts +2 -0
- package/cjs/extensions/forms/Connectors/index.js +26 -0
- package/cjs/extensions/forms/Connectors/index.js.map +1 -0
- package/cjs/extensions/forms/DataContext/Context.d.ts +4 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +30 -16
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/Address/Address.d.ts +9 -0
- package/cjs/extensions/forms/Field/Address/Address.js +63 -0
- package/cjs/extensions/forms/Field/Address/Address.js.map +1 -0
- package/cjs/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Address/AddressDocs.js +15 -0
- package/cjs/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Address/index.d.ts +2 -0
- package/cjs/extensions/forms/Field/Address/index.js +27 -0
- package/cjs/extensions/forms/Field/Address/index.js.map +1 -0
- package/cjs/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Email/EmailDocs.js +15 -0
- package/cjs/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +83 -32
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/Name/Name.js +2 -2
- package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +10 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Password/PasswordDocs.js +30 -0
- package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
- package/cjs/extensions/forms/Field/index.d.ts +1 -0
- package/cjs/extensions/forms/Field/index.js +7 -0
- package/cjs/extensions/forms/Field/index.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +0 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
- package/cjs/extensions/forms/Iterate/Array/Array.js +7 -2
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -0
- package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/Address/Address.d.ts +9 -0
- package/cjs/extensions/forms/Value/Address/Address.js +41 -0
- package/cjs/extensions/forms/Value/Address/Address.js.map +1 -0
- package/cjs/extensions/forms/Value/Address/index.d.ts +2 -0
- package/cjs/extensions/forms/Value/Address/index.js +27 -0
- package/cjs/extensions/forms/Value/Address/index.js.map +1 -0
- package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
- package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/index.d.ts +1 -0
- package/cjs/extensions/forms/Value/index.js +7 -0
- package/cjs/extensions/forms/Value/index.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js +2 -2
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +13 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +20 -7
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +13 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +26 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +16 -3
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +8 -4
- package/cjs/extensions/forms/hooks/useFieldProps.js +39 -19
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/index.d.ts +1 -0
- package/cjs/extensions/forms/index.js +4 -1
- package/cjs/extensions/forms/index.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +4 -0
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +34 -10
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/cjs/icons/calendar_add.d.ts +3 -0
- package/cjs/icons/calendar_add.js +11 -0
- package/cjs/icons/calendar_add.js.map +1 -0
- package/cjs/icons/calendar_add_medium.d.ts +3 -0
- package/cjs/icons/calendar_add_medium.js +11 -0
- package/cjs/icons/calendar_add_medium.js.map +1 -0
- package/cjs/icons/digitpass_private_corporate.d.ts +3 -0
- package/cjs/icons/digitpass_private_corporate.js +11 -0
- package/cjs/icons/digitpass_private_corporate.js.map +1 -0
- package/cjs/icons/digitpass_private_corporate_medium.d.ts +3 -0
- package/cjs/icons/digitpass_private_corporate_medium.js +11 -0
- package/cjs/icons/digitpass_private_corporate_medium.js.map +1 -0
- package/cjs/icons/dnb/calendar_add.d.ts +3 -0
- package/cjs/icons/dnb/calendar_add.js +31 -0
- package/cjs/icons/dnb/calendar_add.js.map +1 -0
- package/cjs/icons/dnb/calendar_add_medium.d.ts +3 -0
- package/cjs/icons/dnb/calendar_add_medium.js +25 -0
- package/cjs/icons/dnb/calendar_add_medium.js.map +1 -0
- package/cjs/icons/dnb/cog_medium.js +1 -1
- package/cjs/icons/dnb/cog_medium.js.map +1 -1
- package/cjs/icons/dnb/digipass_corporate.js +3 -3
- package/cjs/icons/dnb/digipass_corporate.js.map +1 -1
- package/cjs/icons/dnb/digipass_corporate_medium.js +3 -3
- package/cjs/icons/dnb/digipass_corporate_medium.js.map +1 -1
- package/cjs/icons/dnb/digipass_private.js +3 -3
- package/cjs/icons/dnb/digipass_private.js.map +1 -1
- package/cjs/icons/dnb/digipass_private_medium.js +3 -3
- package/cjs/icons/dnb/digipass_private_medium.js.map +1 -1
- package/cjs/icons/dnb/digitpass_private_corporate.d.ts +3 -0
- package/cjs/icons/dnb/digitpass_private_corporate.js +25 -0
- package/cjs/icons/dnb/digitpass_private_corporate.js.map +1 -0
- package/cjs/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
- package/cjs/icons/dnb/digitpass_private_corporate_medium.js +25 -0
- package/cjs/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
- package/cjs/icons/dnb/goal.d.ts +3 -0
- package/cjs/icons/dnb/goal.js +26 -0
- package/cjs/icons/dnb/goal.js.map +1 -0
- package/cjs/icons/dnb/goal_medium.d.ts +3 -0
- package/cjs/icons/dnb/goal_medium.js +26 -0
- package/cjs/icons/dnb/goal_medium.js.map +1 -0
- package/cjs/icons/dnb/icons-meta.json +132 -4
- package/cjs/icons/dnb/icons-svg.lock +1278 -1096
- package/cjs/icons/dnb/index.d.ts +15 -1
- package/cjs/icons/dnb/index.js +98 -0
- package/cjs/icons/dnb/index.js.map +1 -1
- package/cjs/icons/dnb/information.js +1 -1
- package/cjs/icons/dnb/information.js.map +1 -1
- package/cjs/icons/dnb/investor.d.ts +3 -0
- package/cjs/icons/dnb/investor.js +33 -0
- package/cjs/icons/dnb/investor.js.map +1 -0
- package/cjs/icons/dnb/investor_medium.d.ts +3 -0
- package/cjs/icons/dnb/investor_medium.js +33 -0
- package/cjs/icons/dnb/investor_medium.js.map +1 -0
- package/cjs/icons/dnb/layout_grid.d.ts +3 -0
- package/cjs/icons/dnb/layout_grid.js +34 -0
- package/cjs/icons/dnb/layout_grid.js.map +1 -0
- package/cjs/icons/dnb/layout_grid_medium.d.ts +3 -0
- package/cjs/icons/dnb/layout_grid_medium.js +34 -0
- package/cjs/icons/dnb/layout_grid_medium.js.map +1 -0
- package/cjs/icons/dnb/question.js +1 -1
- package/cjs/icons/dnb/question.js.map +1 -1
- package/cjs/icons/dnb/question_circled.js +1 -1
- package/cjs/icons/dnb/question_circled.js.map +1 -1
- package/cjs/icons/dnb/question_medium.js +1 -1
- package/cjs/icons/dnb/question_medium.js.map +1 -1
- package/cjs/icons/dnb/return_1_medium.js +1 -1
- package/cjs/icons/dnb/return_1_medium.js.map +1 -1
- package/cjs/icons/dnb/secondary_icons.d.ts +8 -1
- package/cjs/icons/dnb/secondary_icons.js +49 -0
- package/cjs/icons/dnb/secondary_icons.js.map +1 -1
- package/cjs/icons/dnb/secondary_icons_medium.d.ts +8 -1
- package/cjs/icons/dnb/secondary_icons_medium.js +49 -0
- package/cjs/icons/dnb/secondary_icons_medium.js.map +1 -1
- package/cjs/icons/dnb/show_pin.d.ts +3 -0
- package/cjs/icons/dnb/show_pin.js +23 -0
- package/cjs/icons/dnb/show_pin.js.map +1 -0
- package/cjs/icons/dnb/show_pin_medium.d.ts +3 -0
- package/cjs/icons/dnb/show_pin_medium.js +23 -0
- package/cjs/icons/dnb/show_pin_medium.js.map +1 -0
- package/cjs/icons/dnb/table.d.ts +3 -0
- package/cjs/icons/dnb/table.js +33 -0
- package/cjs/icons/dnb/table.js.map +1 -0
- package/cjs/icons/dnb/table_medium.d.ts +3 -0
- package/cjs/icons/dnb/table_medium.js +26 -0
- package/cjs/icons/dnb/table_medium.js.map +1 -0
- package/cjs/icons/goal.d.ts +3 -0
- package/cjs/icons/goal.js +11 -0
- package/cjs/icons/goal.js.map +1 -0
- package/cjs/icons/goal_medium.d.ts +3 -0
- package/cjs/icons/goal_medium.js +11 -0
- package/cjs/icons/goal_medium.js.map +1 -0
- package/cjs/icons/index.d.ts +15 -1
- package/cjs/icons/index.js +98 -0
- package/cjs/icons/index.js.map +1 -1
- package/cjs/icons/investor.d.ts +3 -0
- package/cjs/icons/investor.js +11 -0
- package/cjs/icons/investor.js.map +1 -0
- package/cjs/icons/investor_medium.d.ts +3 -0
- package/cjs/icons/investor_medium.js +11 -0
- package/cjs/icons/investor_medium.js.map +1 -0
- package/cjs/icons/layout_grid.d.ts +3 -0
- package/cjs/icons/layout_grid.js +11 -0
- package/cjs/icons/layout_grid.js.map +1 -0
- package/cjs/icons/layout_grid_medium.d.ts +3 -0
- package/cjs/icons/layout_grid_medium.js +11 -0
- package/cjs/icons/layout_grid_medium.js.map +1 -0
- package/cjs/icons/show_pin.d.ts +3 -0
- package/cjs/icons/show_pin.js +11 -0
- package/cjs/icons/show_pin.js.map +1 -0
- package/cjs/icons/show_pin_medium.d.ts +3 -0
- package/cjs/icons/show_pin_medium.js +11 -0
- package/cjs/icons/show_pin_medium.js.map +1 -0
- package/cjs/icons/table.d.ts +3 -0
- package/cjs/icons/table.js +11 -0
- package/cjs/icons/table.js.map +1 -0
- package/cjs/icons/table_medium.d.ts +3 -0
- package/cjs/icons/table_medium.js +11 -0
- package/cjs/icons/table_medium.js.map +1 -0
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/style/core/reset.scss +3 -9
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +4 -8
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +4 -8
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +8 -4
- package/cjs/style/dnb-ui-components.min.css +2 -2
- package/cjs/style/dnb-ui-core.css +4 -8
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +4 -0
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +4 -0
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +12 -4
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +4 -0
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +4 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
- package/components/date-picker/DatePickerCalc.js +1 -1
- package/components/date-picker/DatePickerCalc.js.map +1 -1
- package/components/drawer/style/dnb-drawer.css +4 -4
- package/components/drawer/style/dnb-drawer.min.css +1 -1
- package/components/drawer/style/dnb-drawer.scss +4 -4
- package/components/dropdown/Dropdown.d.ts +1 -1
- package/components/form-status/FormStatus.js +3 -2
- package/components/form-status/FormStatus.js.map +1 -1
- package/components/heading/HeadingCounter.js +4 -4
- package/components/heading/HeadingCounter.js.map +1 -1
- package/components/input/Input.js +1 -1
- package/components/input/Input.js.map +1 -1
- package/components/radio/Radio.d.ts +1 -1
- package/components/radio/RadioGroup.d.ts +1 -1
- package/components/section/Section.d.ts +1 -1
- package/components/section/Section.js.map +1 -1
- package/components/section/SectionDocs.js +1 -1
- package/components/section/SectionDocs.js.map +1 -1
- package/components/textarea/Textarea.js +8 -1
- package/components/textarea/Textarea.js.map +1 -1
- package/elements/lists/style/lists-mixins.scss +1 -1
- package/es/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
- package/es/components/date-picker/DatePickerCalc.js +1 -1
- package/es/components/date-picker/DatePickerCalc.js.map +1 -1
- package/es/components/drawer/style/dnb-drawer.css +4 -4
- package/es/components/drawer/style/dnb-drawer.min.css +1 -1
- package/es/components/drawer/style/dnb-drawer.scss +4 -4
- package/es/components/dropdown/Dropdown.d.ts +1 -1
- package/es/components/form-status/FormStatus.js +3 -2
- package/es/components/form-status/FormStatus.js.map +1 -1
- package/es/components/heading/HeadingCounter.js +4 -4
- package/es/components/heading/HeadingCounter.js.map +1 -1
- package/es/components/input/Input.js +1 -1
- package/es/components/input/Input.js.map +1 -1
- package/es/components/radio/Radio.d.ts +1 -1
- package/es/components/radio/RadioGroup.d.ts +1 -1
- package/es/components/section/Section.d.ts +1 -1
- package/es/components/section/Section.js.map +1 -1
- package/es/components/section/SectionDocs.js +1 -1
- package/es/components/section/SectionDocs.js.map +1 -1
- package/es/components/textarea/Textarea.js +8 -1
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/elements/lists/style/lists-mixins.scss +1 -1
- package/es/extensions/forms/Connectors/Bring/index.d.ts +1 -0
- package/es/extensions/forms/Connectors/Bring/index.js +1 -0
- package/es/extensions/forms/Connectors/Bring/index.js.map +1 -0
- package/es/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
- package/es/extensions/forms/Connectors/Bring/postalCode.js +150 -0
- package/es/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
- package/es/extensions/forms/Connectors/createContext.d.ts +58 -0
- package/es/extensions/forms/Connectors/createContext.js +116 -0
- package/es/extensions/forms/Connectors/createContext.js.map +1 -0
- package/es/extensions/forms/Connectors/index.d.ts +2 -0
- package/es/extensions/forms/Connectors/index.js +3 -0
- package/es/extensions/forms/Connectors/index.js.map +1 -0
- package/es/extensions/forms/DataContext/Context.d.ts +4 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +25 -14
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/Address/Address.d.ts +9 -0
- package/es/extensions/forms/Field/Address/Address.js +51 -0
- package/es/extensions/forms/Field/Address/Address.js.map +1 -0
- package/es/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Address/AddressDocs.js +8 -0
- package/es/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
- package/es/extensions/forms/Field/Address/index.d.ts +2 -0
- package/es/extensions/forms/Field/Address/index.js +3 -0
- package/es/extensions/forms/Field/Address/index.js.map +1 -0
- package/es/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Email/EmailDocs.js +8 -0
- package/es/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
- package/es/extensions/forms/Field/Expiry/Expiry.js +82 -31
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/Name/Name.js +2 -2
- package/es/extensions/forms/Field/Name/Name.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +9 -0
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Password/PasswordDocs.js +23 -0
- package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
- package/es/extensions/forms/Field/index.d.ts +1 -0
- package/es/extensions/forms/Field/index.js +1 -0
- package/es/extensions/forms/Field/index.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +0 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
- package/es/extensions/forms/Iterate/Array/Array.js +7 -2
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/types.d.ts +1 -0
- package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/Value/Address/Address.d.ts +9 -0
- package/es/extensions/forms/Value/Address/Address.js +31 -0
- package/es/extensions/forms/Value/Address/Address.js.map +1 -0
- package/es/extensions/forms/Value/Address/index.d.ts +2 -0
- package/es/extensions/forms/Value/Address/index.js +3 -0
- package/es/extensions/forms/Value/Address/index.js.map +1 -0
- package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
- package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/es/extensions/forms/Value/index.d.ts +1 -0
- package/es/extensions/forms/Value/index.js +1 -0
- package/es/extensions/forms/Value/index.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.js +2 -2
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +13 -0
- package/es/extensions/forms/constants/locales/en-GB.js +20 -7
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +13 -0
- package/es/extensions/forms/constants/locales/index.d.ts +26 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +16 -3
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.d.ts +8 -4
- package/es/extensions/forms/hooks/useFieldProps.js +39 -18
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/index.d.ts +1 -0
- package/es/extensions/forms/index.js +1 -0
- package/es/extensions/forms/index.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +4 -0
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +34 -10
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
- package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/es/icons/calendar_add.d.ts +3 -0
- package/es/icons/calendar_add.js +3 -0
- package/es/icons/calendar_add.js.map +1 -0
- package/es/icons/calendar_add_medium.d.ts +3 -0
- package/es/icons/calendar_add_medium.js +3 -0
- package/es/icons/calendar_add_medium.js.map +1 -0
- package/es/icons/digitpass_private_corporate.d.ts +3 -0
- package/es/icons/digitpass_private_corporate.js +3 -0
- package/es/icons/digitpass_private_corporate.js.map +1 -0
- package/es/icons/digitpass_private_corporate_medium.d.ts +3 -0
- package/es/icons/digitpass_private_corporate_medium.js +3 -0
- package/es/icons/digitpass_private_corporate_medium.js.map +1 -0
- package/es/icons/dnb/calendar_add.d.ts +3 -0
- package/es/icons/dnb/calendar_add.js +23 -0
- package/es/icons/dnb/calendar_add.js.map +1 -0
- package/es/icons/dnb/calendar_add_medium.d.ts +3 -0
- package/es/icons/dnb/calendar_add_medium.js +17 -0
- package/es/icons/dnb/calendar_add_medium.js.map +1 -0
- package/es/icons/dnb/cog_medium.js +1 -1
- package/es/icons/dnb/cog_medium.js.map +1 -1
- package/es/icons/dnb/digipass_corporate.js +3 -3
- package/es/icons/dnb/digipass_corporate.js.map +1 -1
- package/es/icons/dnb/digipass_corporate_medium.js +3 -3
- package/es/icons/dnb/digipass_corporate_medium.js.map +1 -1
- package/es/icons/dnb/digipass_private.js +3 -3
- package/es/icons/dnb/digipass_private.js.map +1 -1
- package/es/icons/dnb/digipass_private_medium.js +3 -3
- package/es/icons/dnb/digipass_private_medium.js.map +1 -1
- package/es/icons/dnb/digitpass_private_corporate.d.ts +3 -0
- package/es/icons/dnb/digitpass_private_corporate.js +17 -0
- package/es/icons/dnb/digitpass_private_corporate.js.map +1 -0
- package/es/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
- package/es/icons/dnb/digitpass_private_corporate_medium.js +17 -0
- package/es/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
- package/es/icons/dnb/goal.d.ts +3 -0
- package/es/icons/dnb/goal.js +18 -0
- package/es/icons/dnb/goal.js.map +1 -0
- package/es/icons/dnb/goal_medium.d.ts +3 -0
- package/es/icons/dnb/goal_medium.js +18 -0
- package/es/icons/dnb/goal_medium.js.map +1 -0
- package/es/icons/dnb/icons-meta.json +132 -4
- package/es/icons/dnb/icons-svg.lock +1278 -1096
- package/es/icons/dnb/index.d.ts +15 -1
- package/es/icons/dnb/index.js +15 -1
- package/es/icons/dnb/index.js.map +1 -1
- package/es/icons/dnb/information.js +1 -1
- package/es/icons/dnb/information.js.map +1 -1
- package/es/icons/dnb/investor.d.ts +3 -0
- package/es/icons/dnb/investor.js +25 -0
- package/es/icons/dnb/investor.js.map +1 -0
- package/es/icons/dnb/investor_medium.d.ts +3 -0
- package/es/icons/dnb/investor_medium.js +25 -0
- package/es/icons/dnb/investor_medium.js.map +1 -0
- package/es/icons/dnb/layout_grid.d.ts +3 -0
- package/es/icons/dnb/layout_grid.js +26 -0
- package/es/icons/dnb/layout_grid.js.map +1 -0
- package/es/icons/dnb/layout_grid_medium.d.ts +3 -0
- package/es/icons/dnb/layout_grid_medium.js +26 -0
- package/es/icons/dnb/layout_grid_medium.js.map +1 -0
- package/es/icons/dnb/question.js +1 -1
- package/es/icons/dnb/question.js.map +1 -1
- package/es/icons/dnb/question_circled.js +1 -1
- package/es/icons/dnb/question_circled.js.map +1 -1
- package/es/icons/dnb/question_medium.js +1 -1
- package/es/icons/dnb/question_medium.js.map +1 -1
- package/es/icons/dnb/return_1_medium.js +1 -1
- package/es/icons/dnb/return_1_medium.js.map +1 -1
- package/es/icons/dnb/secondary_icons.d.ts +8 -1
- package/es/icons/dnb/secondary_icons.js +8 -1
- package/es/icons/dnb/secondary_icons.js.map +1 -1
- package/es/icons/dnb/secondary_icons_medium.d.ts +8 -1
- package/es/icons/dnb/secondary_icons_medium.js +8 -1
- package/es/icons/dnb/secondary_icons_medium.js.map +1 -1
- package/es/icons/dnb/show_pin.d.ts +3 -0
- package/es/icons/dnb/show_pin.js +15 -0
- package/es/icons/dnb/show_pin.js.map +1 -0
- package/es/icons/dnb/show_pin_medium.d.ts +3 -0
- package/es/icons/dnb/show_pin_medium.js +15 -0
- package/es/icons/dnb/show_pin_medium.js.map +1 -0
- package/es/icons/dnb/table.d.ts +3 -0
- package/es/icons/dnb/table.js +25 -0
- package/es/icons/dnb/table.js.map +1 -0
- package/es/icons/dnb/table_medium.d.ts +3 -0
- package/es/icons/dnb/table_medium.js +18 -0
- package/es/icons/dnb/table_medium.js.map +1 -0
- package/es/icons/goal.d.ts +3 -0
- package/es/icons/goal.js +3 -0
- package/es/icons/goal.js.map +1 -0
- package/es/icons/goal_medium.d.ts +3 -0
- package/es/icons/goal_medium.js +3 -0
- package/es/icons/goal_medium.js.map +1 -0
- package/es/icons/index.d.ts +15 -1
- package/es/icons/index.js +15 -1
- package/es/icons/index.js.map +1 -1
- package/es/icons/investor.d.ts +3 -0
- package/es/icons/investor.js +3 -0
- package/es/icons/investor.js.map +1 -0
- package/es/icons/investor_medium.d.ts +3 -0
- package/es/icons/investor_medium.js +3 -0
- package/es/icons/investor_medium.js.map +1 -0
- package/es/icons/layout_grid.d.ts +3 -0
- package/es/icons/layout_grid.js +3 -0
- package/es/icons/layout_grid.js.map +1 -0
- package/es/icons/layout_grid_medium.d.ts +3 -0
- package/es/icons/layout_grid_medium.js +3 -0
- package/es/icons/layout_grid_medium.js.map +1 -0
- package/es/icons/show_pin.d.ts +3 -0
- package/es/icons/show_pin.js +3 -0
- package/es/icons/show_pin.js.map +1 -0
- package/es/icons/show_pin_medium.d.ts +3 -0
- package/es/icons/show_pin_medium.js +3 -0
- package/es/icons/show_pin_medium.js.map +1 -0
- package/es/icons/table.d.ts +3 -0
- package/es/icons/table.js +3 -0
- package/es/icons/table.js.map +1 -0
- package/es/icons/table_medium.d.ts +3 -0
- package/es/icons/table_medium.js +3 -0
- package/es/icons/table_medium.js.map +1 -0
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/style/core/reset.scss +3 -9
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +4 -8
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +4 -8
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +8 -4
- package/es/style/dnb-ui-components.min.css +2 -2
- package/es/style/dnb-ui-core.css +4 -8
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +4 -0
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +4 -0
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +12 -4
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.css +4 -0
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +4 -0
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-icons.min.mjs +1 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/Connectors/Bring/index.d.ts +1 -0
- package/extensions/forms/Connectors/Bring/index.js +3 -0
- package/extensions/forms/Connectors/Bring/index.js.map +1 -0
- package/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
- package/extensions/forms/Connectors/Bring/postalCode.js +151 -0
- package/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
- package/extensions/forms/Connectors/createContext.d.ts +58 -0
- package/extensions/forms/Connectors/createContext.js +119 -0
- package/extensions/forms/Connectors/createContext.js.map +1 -0
- package/extensions/forms/Connectors/index.d.ts +2 -0
- package/extensions/forms/Connectors/index.js +4 -0
- package/extensions/forms/Connectors/index.js.map +1 -0
- package/extensions/forms/DataContext/Context.d.ts +4 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +30 -16
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/Address/Address.d.ts +9 -0
- package/extensions/forms/Field/Address/Address.js +51 -0
- package/extensions/forms/Field/Address/Address.js.map +1 -0
- package/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
- package/extensions/forms/Field/Address/AddressDocs.js +8 -0
- package/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
- package/extensions/forms/Field/Address/index.d.ts +2 -0
- package/extensions/forms/Field/Address/index.js +3 -0
- package/extensions/forms/Field/Address/index.js.map +1 -0
- package/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
- package/extensions/forms/Field/Email/EmailDocs.js +8 -0
- package/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
- package/extensions/forms/Field/Expiry/Expiry.js +82 -31
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/Name/Name.js +2 -2
- package/extensions/forms/Field/Name/Name.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +9 -0
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
- package/extensions/forms/Field/Password/PasswordDocs.js +23 -0
- package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
- package/extensions/forms/Field/index.d.ts +1 -0
- package/extensions/forms/Field/index.js +1 -0
- package/extensions/forms/Field/index.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +0 -1
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
- package/extensions/forms/Iterate/Array/Array.js +7 -2
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
- package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/extensions/forms/Iterate/Array/types.d.ts +1 -0
- package/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/Value/Address/Address.d.ts +9 -0
- package/extensions/forms/Value/Address/Address.js +31 -0
- package/extensions/forms/Value/Address/Address.js.map +1 -0
- package/extensions/forms/Value/Address/index.d.ts +2 -0
- package/extensions/forms/Value/Address/index.js +3 -0
- package/extensions/forms/Value/Address/index.js.map +1 -0
- package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
- package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/extensions/forms/Value/index.d.ts +1 -0
- package/extensions/forms/Value/index.js +1 -0
- package/extensions/forms/Value/index.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.js +2 -2
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +13 -0
- package/extensions/forms/constants/locales/en-GB.js +20 -7
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +13 -0
- package/extensions/forms/constants/locales/index.d.ts +26 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
- package/extensions/forms/constants/locales/nb-NO.js +16 -3
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
- package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.d.ts +8 -4
- package/extensions/forms/hooks/useFieldProps.js +39 -19
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/index.d.ts +1 -0
- package/extensions/forms/index.js +2 -0
- package/extensions/forms/index.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +4 -0
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +34 -10
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
- package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/icons/calendar_add.d.ts +3 -0
- package/icons/calendar_add.js +3 -0
- package/icons/calendar_add.js.map +1 -0
- package/icons/calendar_add_medium.d.ts +3 -0
- package/icons/calendar_add_medium.js +3 -0
- package/icons/calendar_add_medium.js.map +1 -0
- package/icons/digitpass_private_corporate.d.ts +3 -0
- package/icons/digitpass_private_corporate.js +3 -0
- package/icons/digitpass_private_corporate.js.map +1 -0
- package/icons/digitpass_private_corporate_medium.d.ts +3 -0
- package/icons/digitpass_private_corporate_medium.js +3 -0
- package/icons/digitpass_private_corporate_medium.js.map +1 -0
- package/icons/dnb/calendar_add.d.ts +3 -0
- package/icons/dnb/calendar_add.js +23 -0
- package/icons/dnb/calendar_add.js.map +1 -0
- package/icons/dnb/calendar_add_medium.d.ts +3 -0
- package/icons/dnb/calendar_add_medium.js +17 -0
- package/icons/dnb/calendar_add_medium.js.map +1 -0
- package/icons/dnb/cog_medium.js +1 -1
- package/icons/dnb/cog_medium.js.map +1 -1
- package/icons/dnb/digipass_corporate.js +3 -3
- package/icons/dnb/digipass_corporate.js.map +1 -1
- package/icons/dnb/digipass_corporate_medium.js +3 -3
- package/icons/dnb/digipass_corporate_medium.js.map +1 -1
- package/icons/dnb/digipass_private.js +3 -3
- package/icons/dnb/digipass_private.js.map +1 -1
- package/icons/dnb/digipass_private_medium.js +3 -3
- package/icons/dnb/digipass_private_medium.js.map +1 -1
- package/icons/dnb/digitpass_private_corporate.d.ts +3 -0
- package/icons/dnb/digitpass_private_corporate.js +17 -0
- package/icons/dnb/digitpass_private_corporate.js.map +1 -0
- package/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
- package/icons/dnb/digitpass_private_corporate_medium.js +17 -0
- package/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
- package/icons/dnb/goal.d.ts +3 -0
- package/icons/dnb/goal.js +18 -0
- package/icons/dnb/goal.js.map +1 -0
- package/icons/dnb/goal_medium.d.ts +3 -0
- package/icons/dnb/goal_medium.js +18 -0
- package/icons/dnb/goal_medium.js.map +1 -0
- package/icons/dnb/icons-meta.json +132 -4
- package/icons/dnb/icons-svg.lock +1278 -1096
- package/icons/dnb/index.d.ts +15 -1
- package/icons/dnb/index.js +15 -1
- package/icons/dnb/index.js.map +1 -1
- package/icons/dnb/information.js +1 -1
- package/icons/dnb/information.js.map +1 -1
- package/icons/dnb/investor.d.ts +3 -0
- package/icons/dnb/investor.js +25 -0
- package/icons/dnb/investor.js.map +1 -0
- package/icons/dnb/investor_medium.d.ts +3 -0
- package/icons/dnb/investor_medium.js +25 -0
- package/icons/dnb/investor_medium.js.map +1 -0
- package/icons/dnb/layout_grid.d.ts +3 -0
- package/icons/dnb/layout_grid.js +26 -0
- package/icons/dnb/layout_grid.js.map +1 -0
- package/icons/dnb/layout_grid_medium.d.ts +3 -0
- package/icons/dnb/layout_grid_medium.js +26 -0
- package/icons/dnb/layout_grid_medium.js.map +1 -0
- package/icons/dnb/question.js +1 -1
- package/icons/dnb/question.js.map +1 -1
- package/icons/dnb/question_circled.js +1 -1
- package/icons/dnb/question_circled.js.map +1 -1
- package/icons/dnb/question_medium.js +1 -1
- package/icons/dnb/question_medium.js.map +1 -1
- package/icons/dnb/return_1_medium.js +1 -1
- package/icons/dnb/return_1_medium.js.map +1 -1
- package/icons/dnb/secondary_icons.d.ts +8 -1
- package/icons/dnb/secondary_icons.js +8 -1
- package/icons/dnb/secondary_icons.js.map +1 -1
- package/icons/dnb/secondary_icons_medium.d.ts +8 -1
- package/icons/dnb/secondary_icons_medium.js +8 -1
- package/icons/dnb/secondary_icons_medium.js.map +1 -1
- package/icons/dnb/show_pin.d.ts +3 -0
- package/icons/dnb/show_pin.js +15 -0
- package/icons/dnb/show_pin.js.map +1 -0
- package/icons/dnb/show_pin_medium.d.ts +3 -0
- package/icons/dnb/show_pin_medium.js +15 -0
- package/icons/dnb/show_pin_medium.js.map +1 -0
- package/icons/dnb/table.d.ts +3 -0
- package/icons/dnb/table.js +25 -0
- package/icons/dnb/table.js.map +1 -0
- package/icons/dnb/table_medium.d.ts +3 -0
- package/icons/dnb/table_medium.js +18 -0
- package/icons/dnb/table_medium.js.map +1 -0
- package/icons/goal.d.ts +3 -0
- package/icons/goal.js +3 -0
- package/icons/goal.js.map +1 -0
- package/icons/goal_medium.d.ts +3 -0
- package/icons/goal_medium.js +3 -0
- package/icons/goal_medium.js.map +1 -0
- package/icons/index.d.ts +15 -1
- package/icons/index.js +15 -1
- package/icons/index.js.map +1 -1
- package/icons/investor.d.ts +3 -0
- package/icons/investor.js +3 -0
- package/icons/investor.js.map +1 -0
- package/icons/investor_medium.d.ts +3 -0
- package/icons/investor_medium.js +3 -0
- package/icons/investor_medium.js.map +1 -0
- package/icons/layout_grid.d.ts +3 -0
- package/icons/layout_grid.js +3 -0
- package/icons/layout_grid.js.map +1 -0
- package/icons/layout_grid_medium.d.ts +3 -0
- package/icons/layout_grid_medium.js +3 -0
- package/icons/layout_grid_medium.js.map +1 -0
- package/icons/show_pin.d.ts +3 -0
- package/icons/show_pin.js +3 -0
- package/icons/show_pin.js.map +1 -0
- package/icons/show_pin_medium.d.ts +3 -0
- package/icons/show_pin_medium.js +3 -0
- package/icons/show_pin_medium.js.map +1 -0
- package/icons/table.d.ts +3 -0
- package/icons/table.js +3 -0
- package/icons/table.js.map +1 -0
- package/icons/table_medium.d.ts +3 -0
- package/icons/table_medium.js +3 -0
- package/icons/table_medium.js.map +1 -0
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/style/core/reset.scss +3 -9
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +4 -8
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +4 -8
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +8 -4
- package/style/dnb-ui-components.min.css +2 -2
- package/style/dnb-ui-core.css +4 -8
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +4 -0
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +4 -0
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +12 -4
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.css +4 -0
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +4 -0
- package/style/themes/theme-ui/ui-theme-forms.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 +1 -1
- package/umd/dnb-ui-icons.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Section.js","names":["React","classnames","Context","isTrue","extendPropsWithContext","Space","defaultProps","element","Section","localProps","createElement","SectionParams","context","useContext","props","variant","breakout","outset","roundedCorner","textColor","backgroundColor","dropShadow","outline","innerRef","className","children","spacing","style_type","inner_ref","attributes","_objectWithoutProperties","_excluded","internalRef","useRef","elementRef","Object","freeze","_objectSpread","style","computeStyle","value","getColor","String","includes","test","undefined","property","name","valueCallback","media","small","medium","large","result","size","_media","_media2","_name","_supportsSpacingProps"],"sources":["../../../../src/components/section/Section.tsx"],"sourcesContent":["/**\n * Web Section Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n isTrue,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport type {\n DynamicElement,\n ResponsiveProp,\n SpacingProps,\n} from '../../shared/types'\nimport Space from '../space/Space'\n\nexport type SectionVariants = 'error' | 'info' | 'warning' | 'success'\n\nexport type SectionStyleTypes =\n | 'divider'\n | 'white'\n | 'transparent'\n\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'lavender'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'pistachio'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'emerald-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sea-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red-8'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sand-yellow'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'black-3'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green-12'\n\nexport type SectionSpacing =\n | boolean\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type TextColor = string\nexport type OutlineColor = string | boolean\nexport type BackgroundColor = string\nexport type DropShadow = boolean\n\nexport type SectionProps = {\n /**\n * Defines the semantic purpose and subsequently the style of the visual helper. Will take precedence over the style_type prop\n */\n variant?: SectionVariants | string\n\n /**\n * Define if the background color should break-out to a fullscreen view. Defaults to `true`.\n */\n breakout?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the Card should break out negatively on larger screens. You can not use `breakout` and `outset` together.\n * Defaults to `false`\n */\n outset?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the section should have rounded corners. Defaults to `false`.\n */\n roundedCorner?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define a custom border color. Use a Eufemia color.\n */\n outline?: OutlineColor | ResponsiveProp<OutlineColor>\n\n /**\n * Define a custom text color to compliment the backgroundColor. Use a Eufemia color.\n */\n textColor?: TextColor | ResponsiveProp<TextColor>\n\n /**\n * Define a custom background color, instead of a variant. Use a Eufemia color.\n */\n backgroundColor?: BackgroundColor | ResponsiveProp<BackgroundColor>\n\n /**\n * Define a custom drop-shadow.\n */\n dropShadow?: DropShadow | ResponsiveProp<DropShadow>\n\n /**\n * Define what HTML element should be used. Defaults to `<section>`.\n */\n element?: DynamicElement\n\n /**\n * Define a React.Ref.\n */\n innerRef?: React.RefObject<HTMLElement>\n\n /**\n * @deprecated in v11 use \"innerSpace\" prop instead\n */\n spacing?: SectionSpacing | ResponsiveProp<SectionSpacing>\n /**\n * @deprecated in v11 use \"background\" prop instead\n */\n style_type?: SectionStyleTypes | string\n /**\n * @deprecated in v11 use \"innerRef\" prop instead\n */\n inner_ref?: React.RefObject<HTMLElement>\n}\n\nexport type SectionAllProps = SectionProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\ntype SectionReturnParams = Record<string, unknown> & {\n className: string\n innerRef: React.RefObject<HTMLElement>\n children: React.ReactNode\n style: React.CSSProperties\n}\n\nconst defaultProps = {\n element: 'section',\n}\n\nexport default function Section(localProps: SectionAllProps) {\n return <Space {...SectionParams(localProps)} />\n}\n\nexport function SectionParams(\n localProps: SectionAllProps\n): SectionReturnParams {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.Section\n )\n\n const {\n variant,\n breakout = !props.outset,\n outset,\n roundedCorner,\n textColor,\n backgroundColor,\n dropShadow,\n outline,\n innerRef,\n\n className,\n children,\n\n spacing,\n style_type,\n inner_ref,\n\n ...attributes\n } = props\n\n const internalRef = React.useRef<HTMLElement>()\n const elementRef = innerRef || inner_ref || internalRef\n\n return Object.freeze({\n ...attributes,\n className: classnames(\n 'dnb-section',\n `dnb-section--${variant ? variant : style_type || 'default'}`,\n spacing &&\n `dnb-section--spacing-${isTrue(spacing) ? 'large' : spacing}`,\n className\n ),\n style: {\n ...computeStyle(\n breakout,\n 'breakout',\n (value) => `var(--breakout--${value ? 'on' : 'off'})`\n ),\n ...computeStyle(outset, 'outset', (value) => (value ? '1' : '0')),\n ...computeStyle(\n roundedCorner,\n 'rounded-corner',\n (value) => value && 'var(--rounded-corner--value)'\n ),\n ...computeStyle(textColor, 'text-color', (value) => getColor(value)),\n ...computeStyle(backgroundColor, 'background-color', (value) =>\n getColor(value)\n ),\n ...computeStyle(\n dropShadow,\n 'drop-shadow',\n (value) => value && 'var(--shadow-default)'\n ),\n ...computeStyle(outline, 'outline-color', (value) =>\n String(value) === 'true'\n ? 'var(--outline-color--value)'\n : getColor(value)\n ),\n ...attributes?.style,\n } as React.CSSProperties,\n innerRef: elementRef,\n children,\n })\n}\n\nfunction getColor(value: string) {\n if (String(value).includes('--')) {\n return value\n }\n return value\n ? !/#|var/.test(value)\n ? `var(--color-${value})`\n : value\n : undefined\n}\n\nfunction computeStyle(\n property: ResponsiveProp<unknown> | boolean | string,\n name: string,\n valueCallback: (value: string) => string | undefined\n) {\n let media = property as ResponsiveProp<unknown>\n\n if (media !== null && typeof media !== 'object') {\n media = {\n small: property,\n medium: property,\n large: property,\n } as ResponsiveProp<unknown>\n }\n\n const result = {}\n\n for (const size in media as ResponsiveProp<unknown>) {\n if (typeof media?.[size] !== 'undefined') {\n const value = valueCallback(media?.[size])\n if (typeof value === 'string') {\n result[`--${name}--${size}`] = value\n }\n }\n }\n\n return result\n}\n\nSection._name = 'Section'\nSection._supportsSpacingProps = true\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Section.js","names":["React","classnames","Context","isTrue","extendPropsWithContext","Space","defaultProps","element","Section","localProps","createElement","SectionParams","context","useContext","props","variant","breakout","outset","roundedCorner","textColor","backgroundColor","dropShadow","outline","innerRef","className","children","spacing","style_type","inner_ref","attributes","_objectWithoutProperties","_excluded","internalRef","useRef","elementRef","Object","freeze","_objectSpread","style","computeStyle","value","getColor","String","includes","test","undefined","property","name","valueCallback","media","small","medium","large","result","size","_media","_media2","_name","_supportsSpacingProps"],"sources":["../../../../src/components/section/Section.tsx"],"sourcesContent":["/**\n * Web Section Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n isTrue,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport type {\n DynamicElement,\n ResponsiveProp,\n SpacingProps,\n} from '../../shared/types'\nimport Space from '../space/Space'\n\nexport type SectionVariants = 'error' | 'info' | 'warning' | 'success'\n\nexport type SectionStyleTypes =\n | 'divider'\n | 'white'\n | 'transparent'\n\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'lavender'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'pistachio'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'emerald-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sea-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red-8'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sand-yellow'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'black-3'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green-12'\n\nexport type SectionSpacing =\n | boolean\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type TextColor = string\nexport type OutlineColor = string | boolean\nexport type BackgroundColor = string\nexport type DropShadow = boolean\n\nexport type SectionProps = {\n /**\n * Defines the semantic purpose and subsequently the style of the visual helper. Will take precedence over the style_type prop\n */\n variant?: SectionVariants | string\n\n /**\n * Define if the background color should break-out to a fullscreen view. Defaults to `true`.\n */\n breakout?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the Card should break out negatively on larger screens. You cannot use `breakout` and `outset` together.\n * Defaults to `false`\n */\n outset?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the section should have rounded corners. Defaults to `false`.\n */\n roundedCorner?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define a custom border color. Use a Eufemia color.\n */\n outline?: OutlineColor | ResponsiveProp<OutlineColor>\n\n /**\n * Define a custom text color to compliment the backgroundColor. Use a Eufemia color.\n */\n textColor?: TextColor | ResponsiveProp<TextColor>\n\n /**\n * Define a custom background color, instead of a variant. Use a Eufemia color.\n */\n backgroundColor?: BackgroundColor | ResponsiveProp<BackgroundColor>\n\n /**\n * Define a custom drop-shadow.\n */\n dropShadow?: DropShadow | ResponsiveProp<DropShadow>\n\n /**\n * Define what HTML element should be used. Defaults to `<section>`.\n */\n element?: DynamicElement\n\n /**\n * Define a React.Ref.\n */\n innerRef?: React.RefObject<HTMLElement>\n\n /**\n * @deprecated in v11 use \"innerSpace\" prop instead\n */\n spacing?: SectionSpacing | ResponsiveProp<SectionSpacing>\n /**\n * @deprecated in v11 use \"background\" prop instead\n */\n style_type?: SectionStyleTypes | string\n /**\n * @deprecated in v11 use \"innerRef\" prop instead\n */\n inner_ref?: React.RefObject<HTMLElement>\n}\n\nexport type SectionAllProps = SectionProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\ntype SectionReturnParams = Record<string, unknown> & {\n className: string\n innerRef: React.RefObject<HTMLElement>\n children: React.ReactNode\n style: React.CSSProperties\n}\n\nconst defaultProps = {\n element: 'section',\n}\n\nexport default function Section(localProps: SectionAllProps) {\n return <Space {...SectionParams(localProps)} />\n}\n\nexport function SectionParams(\n localProps: SectionAllProps\n): SectionReturnParams {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.Section\n )\n\n const {\n variant,\n breakout = !props.outset,\n outset,\n roundedCorner,\n textColor,\n backgroundColor,\n dropShadow,\n outline,\n innerRef,\n\n className,\n children,\n\n spacing,\n style_type,\n inner_ref,\n\n ...attributes\n } = props\n\n const internalRef = React.useRef<HTMLElement>()\n const elementRef = innerRef || inner_ref || internalRef\n\n return Object.freeze({\n ...attributes,\n className: classnames(\n 'dnb-section',\n `dnb-section--${variant ? variant : style_type || 'default'}`,\n spacing &&\n `dnb-section--spacing-${isTrue(spacing) ? 'large' : spacing}`,\n className\n ),\n style: {\n ...computeStyle(\n breakout,\n 'breakout',\n (value) => `var(--breakout--${value ? 'on' : 'off'})`\n ),\n ...computeStyle(outset, 'outset', (value) => (value ? '1' : '0')),\n ...computeStyle(\n roundedCorner,\n 'rounded-corner',\n (value) => value && 'var(--rounded-corner--value)'\n ),\n ...computeStyle(textColor, 'text-color', (value) => getColor(value)),\n ...computeStyle(backgroundColor, 'background-color', (value) =>\n getColor(value)\n ),\n ...computeStyle(\n dropShadow,\n 'drop-shadow',\n (value) => value && 'var(--shadow-default)'\n ),\n ...computeStyle(outline, 'outline-color', (value) =>\n String(value) === 'true'\n ? 'var(--outline-color--value)'\n : getColor(value)\n ),\n ...attributes?.style,\n } as React.CSSProperties,\n innerRef: elementRef,\n children,\n })\n}\n\nfunction getColor(value: string) {\n if (String(value).includes('--')) {\n return value\n }\n return value\n ? !/#|var/.test(value)\n ? `var(--color-${value})`\n : value\n : undefined\n}\n\nfunction computeStyle(\n property: ResponsiveProp<unknown> | boolean | string,\n name: string,\n valueCallback: (value: string) => string | undefined\n) {\n let media = property as ResponsiveProp<unknown>\n\n if (media !== null && typeof media !== 'object') {\n media = {\n small: property,\n medium: property,\n large: property,\n } as ResponsiveProp<unknown>\n }\n\n const result = {}\n\n for (const size in media as ResponsiveProp<unknown>) {\n if (typeof media?.[size] !== 'undefined') {\n const value = valueCallback(media?.[size])\n if (typeof value === 'string') {\n result[`--${name}--${size}`] = value\n }\n }\n }\n\n return result\n}\n\nSection._name = 'Section'\nSection._supportsSpacingProps = true\n"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export const SectionProperties = {
|
|
|
10
10
|
status: 'optional'
|
|
11
11
|
},
|
|
12
12
|
outset: {
|
|
13
|
-
doc: 'Define if the Card should break out negatively on larger screens. You
|
|
13
|
+
doc: 'Define if the Card should break out negatively on larger screens. You cannot use `breakout` and `outset` together. Defaults to `false`.',
|
|
14
14
|
type: 'boolean',
|
|
15
15
|
status: 'optional'
|
|
16
16
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionDocs.js","names":["SectionProperties","variant","doc","type","status","breakout","outset","outline","roundedCorner","backgroundColor","dropShadow","textColor","innerSpace","innerRef"],"sources":["../../../../src/components/section/SectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const SectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Defines the semantic purpose and subsequently the style of the visual helper. Will take precedence over the style_type property.',\n type: 'string',\n status: 'optional',\n },\n breakout: {\n doc: 'Use `true` to enable a fullscreen breakout look. Supports also media query breakpoints like `{ small: boolean }`. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n outset: {\n doc: 'Define if the Card should break out negatively on larger screens. You
|
|
1
|
+
{"version":3,"file":"SectionDocs.js","names":["SectionProperties","variant","doc","type","status","breakout","outset","outline","roundedCorner","backgroundColor","dropShadow","textColor","innerSpace","innerRef"],"sources":["../../../../src/components/section/SectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const SectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Defines the semantic purpose and subsequently the style of the visual helper. Will take precedence over the style_type property.',\n type: 'string',\n status: 'optional',\n },\n breakout: {\n doc: 'Use `true` to enable a fullscreen breakout look. Supports also media query breakpoints like `{ small: boolean }`. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n outset: {\n doc: 'Define if the Card should break out negatively on larger screens. You cannot use `breakout` and `outset` together. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n outline: {\n doc: \"Define a custom border color. If `true` is given, `color-black-8` is used. Use a Eufemia color. Supports also media query breakpoints like `{ small: 'black-8' }`.\",\n type: 'string',\n status: 'optional',\n },\n roundedCorner: {\n doc: 'Use `true` to enable rounded corners (border-radius). Supports also media query breakpoints like `{ small: boolean }`. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n backgroundColor: {\n doc: \"Define a custom background color, instead of a variant. Use a Eufemia color. Supports also media query breakpoints like `{ small: 'white' }`.\",\n type: 'string',\n status: 'optional',\n },\n dropShadow: {\n doc: 'Use `true` to show the default Eufemia DropShadow. Supports also media query breakpoints like `{ small: true }`.',\n type: 'boolean',\n status: 'optional',\n },\n textColor: {\n doc: \"Define a custom text color to compliment the backgroundColor. Use a Eufemia color. Supports also media query breakpoints like `{ small: 'black-80' }`.\",\n type: 'string',\n status: 'optional',\n },\n innerSpace: {\n doc: \"Will add a padding around the content. Supports also media query breakpoints like `{small: { top: 'medium' }}`.\",\n type: 'string',\n status: 'optional',\n },\n innerRef: {\n doc: 'By providing a React Ref we can get the internally used element (DOM). E.g. `inner_ref={myRef}` by using `React.createRef()` or `React.useRef()`.',\n type: 'React.Ref',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,iBAAuC,GAAG;EACrDC,OAAO,EAAE;IACPC,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,uIAAuI;IAC5IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,yIAAyI;IAC9IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,oKAAoK;IACzKC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,aAAa,EAAE;IACbN,GAAG,EAAE,6IAA6I;IAClJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,eAAe,EAAE;IACfP,GAAG,EAAE,+IAA+I;IACpJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,UAAU,EAAE;IACVR,GAAG,EAAE,kHAAkH;IACvHC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,wJAAwJ;IAC7JC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,UAAU,EAAE;IACVV,GAAG,EAAE,iHAAiH;IACtHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,QAAQ,EAAE;IACRX,GAAG,EAAE,mJAAmJ;IACxJC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -185,7 +185,14 @@ export default class Textarea extends React.PureComponent {
|
|
|
185
185
|
if (isTrue(props.autoresize) && typeof window !== 'undefined') {
|
|
186
186
|
this.setAutosize();
|
|
187
187
|
try {
|
|
188
|
-
this.resizeObserver = new ResizeObserver(
|
|
188
|
+
this.resizeObserver = new ResizeObserver(entries => {
|
|
189
|
+
window.requestAnimationFrame(() => {
|
|
190
|
+
if (!Array.isArray(entries) || !entries.length) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
this.setAutosize();
|
|
194
|
+
});
|
|
195
|
+
});
|
|
189
196
|
this.resizeObserver.observe(document.body);
|
|
190
197
|
} catch (e) {
|
|
191
198
|
window.addEventListener('resize', this.setAutosize);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.js","names":["React","PropTypes","classnames","FormLabel","FormStatus","TextCounter","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","validateDOMAttributes","processChildren","getStatusState","combineDescribedBy","warn","dispatchCustomElementEvent","convertJsxToString","pickFormElementProps","AlignmentHelper","spacingPropTypes","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","Context","Suffix","Textarea","PureComponent","getDerivedStateFromProps","props","state","value","getValue","_value","on_state_update","textarea_state","textareaState","hasValue","String","length","constructor","_defineProperty","event","_ref","current","setState","target","getProps","autoresize","prepareAutosize","rows","getRows","ret","setAutosize","elem","style","height","e","_heightOffset","offsetHeight","clientHeight","lineHeight","getLineHeight","newHeight","scrollHeight","maxRows","parseFloat","autoresize_max_rows","maxHeight","createRef","_id","id","navigator","resizeModifier","test","userAgent","platform","error","console","componentDidMount","inner_ref","window","resizeObserver","ResizeObserver","observe","document","body","addEventListener","componentWillUnmount","disconnect","removeEventListener","Math","floor","getComputedStyle","_this$context","_this$context2","_this$context3","defaultProps","skeleton","context","getTranslation","FormRow","formElement","render","label","label_direction","label_sr_only","status","status_state","status_props","status_no_animation","globalStatus","suffix","disabled","stretch","placeholder","keepPlaceholder","align","size","textarea_class","readOnly","textarea_attributes","className","characterCounter","children","textarea_element","_textarea_element","attributes","_objectWithoutProperties","_excluded","showStatus","TextareaElement","textareaAttributes","JSON","parse","textareaParams","_objectSpread","role","name","undefined","onChange","onChangeHandler","onFocus","onFocusHandler","onBlur","onBlurHandler","onKeyDown","onKeyDownHandler","mainParams","innerParams","shellParams","placeholderStyle","createElement","forId","text","labelDirection","srOnly","_AlignmentHelper","_extends","show","text_id","no_animation","ref","_span","top","max","lang","locale","cols","on_change","on_focus","on_blur","on_key_down","process","env","NODE_ENV","propTypes","string","oneOfType","func","node","oneOf","bool","object","shape","message","number","variant","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/textarea/Textarea.js"],"sourcesContent":["/**\n * Web Textarea Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\nimport TextCounter from '../../fragments/text-counter/TextCounter'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n processChildren,\n getStatusState,\n combineDescribedBy,\n warn,\n dispatchCustomElementEvent,\n convertJsxToString,\n} from '../../shared/component-helper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\n\n/**\n * The textarea component is an umbrella component for all textareas which share the same style as the classic `text` textarea field.\n */\nexport default class Textarea extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n value: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n label_direction: PropTypes.oneOf(['horizontal', 'vertical']),\n label_sr_only: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n textarea_state: PropTypes.string,\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n suffix: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n placeholder: PropTypes.node,\n keepPlaceholder: PropTypes.bool,\n align: PropTypes.oneOf(['left', 'right']),\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n stretch: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n characterCounter: PropTypes.oneOfType([\n PropTypes.shape({\n max: PropTypes.number,\n variant: PropTypes.oneOf(['down', 'up']),\n }),\n PropTypes.number,\n ]),\n autoresize: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n autoresize_max_rows: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n textarea_class: PropTypes.string,\n textarea_attributes: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n readOnly: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cols: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n inner_ref: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n textarea_element: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.node,\n ]),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n on_change: PropTypes.func,\n on_focus: PropTypes.func,\n on_blur: PropTypes.func,\n on_key_down: PropTypes.func,\n on_state_update: PropTypes.func,\n }\n\n static defaultProps = {\n value: 'initval',\n id: null,\n label: null,\n label_direction: null,\n label_sr_only: null,\n status: null,\n textarea_state: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n suffix: null,\n placeholder: null,\n keepPlaceholder: null,\n align: null,\n size: null,\n stretch: null,\n disabled: null,\n skeleton: null,\n autoresize: null,\n autoresize_max_rows: null,\n characterCounter: null,\n textarea_class: null,\n textarea_attributes: null,\n readOnly: false,\n rows: null,\n cols: null,\n inner_ref: null,\n\n className: null,\n textarea_element: null,\n children: null,\n\n on_change: null,\n on_focus: null,\n on_blur: null,\n on_key_down: null,\n on_state_update: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = Textarea.getValue(props)\n if (\n value !== 'initval' &&\n value !== state.value &&\n value !== state._value\n ) {\n if (\n value !== state.value &&\n typeof props.on_state_update === 'function'\n ) {\n dispatchCustomElementEvent({ props }, 'on_state_update', { value })\n }\n state.value = value\n }\n if (props.textarea_state) {\n state.textareaState = props.textarea_state\n }\n state._value = props.value\n return state\n }\n\n static hasValue(value) {\n return (\n ((typeof value === 'string' || typeof value === 'number') &&\n String(value).length > 0) ||\n false\n )\n }\n\n static getValue(props) {\n const value = processChildren(props)\n if (value === '' || Textarea.hasValue(value)) {\n return value\n }\n return props.value\n }\n\n state = {\n textareaState: 'virgin',\n value: null,\n _value: null,\n }\n\n constructor(props) {\n super(props)\n\n this._ref = React.createRef()\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n\n if (props.textarea_state) {\n this.state.textareaState = props.textarea_state\n }\n\n try {\n if (typeof navigator !== 'undefined') {\n this.resizeModifier =\n /Firefox|Edg/.test(navigator.userAgent) ||\n (/Chrome/.test(navigator.userAgent) &&\n /Win/.test(navigator.platform))\n ? 'large'\n : false\n\n if (!this.resizeModifier) {\n this.resizeModifier =\n /Safari|Chrome/.test(navigator.userAgent) &&\n /Mac/.test(navigator.platform)\n ? 'medium'\n : false\n }\n }\n } catch (error) {\n console.error(error)\n }\n }\n componentDidMount() {\n const props = this.getProps()\n if (props.inner_ref) {\n typeof props.inner_ref === 'function'\n ? props.inner_ref(this._ref.current)\n : (props.inner_ref.current = this._ref.current)\n }\n\n if (isTrue(props.autoresize) && typeof window !== 'undefined') {\n this.setAutosize()\n try {\n this.resizeObserver = new ResizeObserver(this.setAutosize)\n this.resizeObserver.observe(document.body)\n } catch (e) {\n window.addEventListener('resize', this.setAutosize)\n }\n }\n }\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect()\n this.resizeObserver = null\n }\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.setAutosize)\n }\n }\n onFocusHandler = (event) => {\n const { value } = this._ref.current\n this.setState({\n value,\n textareaState: 'focus',\n })\n dispatchCustomElementEvent(this, 'on_focus', { value, event })\n }\n onBlurHandler = (event) => {\n const { value } = event.target\n this.setState({\n value,\n textareaState: Textarea.hasValue(value) ? 'dirty' : 'initial',\n })\n dispatchCustomElementEvent(this, 'on_blur', { value, event })\n }\n onChangeHandler = (event) => {\n const { value } = event.target\n\n const props = this.getProps()\n const autoresize = isTrue(props.autoresize)\n\n if (autoresize) {\n this.prepareAutosize()\n }\n\n const rows = this.getRows(value)\n\n const ret = dispatchCustomElementEvent(this, 'on_change', {\n value,\n rows,\n event,\n })\n if (ret !== false) {\n this.setState({ value })\n if (autoresize) {\n this.setAutosize(rows)\n }\n }\n }\n onKeyDownHandler = (event) => {\n const rows = this.getRows()\n const { value } = event.target\n dispatchCustomElementEvent(this, 'on_key_down', {\n value,\n rows,\n event,\n })\n }\n prepareAutosize = () => {\n const elem = this._ref.current\n if (!elem) {\n return // stop here if no element was gotten\n }\n try {\n elem.style.height = 'auto'\n } catch (e) {\n warn(e)\n }\n }\n setAutosize = (rows = null) => {\n const elem = this._ref.current\n if (!elem) {\n return // stop here if no element was gotten\n }\n try {\n if (typeof this._heightOffset === 'undefined') {\n this._heightOffset = elem.offsetHeight - elem.clientHeight\n }\n\n elem.style.height = 'auto'\n\n // get rows after we set height to auto, this way we get 100% correct rows\n const lineHeight = this.getLineHeight()\n let newHeight = elem.scrollHeight + this._heightOffset\n if (!rows) {\n rows = this.getRows()\n }\n\n if (rows === 1) {\n if (newHeight > lineHeight) {\n newHeight = lineHeight\n }\n }\n\n const props = this.getProps()\n const maxRows = parseFloat(props.autoresize_max_rows)\n if (maxRows > 0) {\n const maxHeight = maxRows * lineHeight\n\n if (rows > maxRows || newHeight > maxHeight) {\n newHeight = maxHeight\n }\n }\n\n elem.style.height = newHeight + 'px'\n } catch (e) {\n warn(e)\n }\n }\n getRows() {\n return (\n Math.floor(this._ref.current.scrollHeight / this.getLineHeight()) ||\n 1\n )\n }\n getLineHeight() {\n return parseFloat(getComputedStyle(this._ref.current).lineHeight) || 0\n }\n getProps() {\n return extendPropsWithContextInClassComponent(\n this.props,\n Textarea.defaultProps,\n { skeleton: this.context?.skeleton },\n this.context.getTranslation(this.props).Textarea,\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.Textarea\n )\n }\n render() {\n // use only the props from context, who are available here anyway\n const props = this.getProps()\n\n const {\n label,\n label_direction,\n label_sr_only,\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n disabled,\n skeleton,\n stretch,\n placeholder,\n keepPlaceholder,\n align,\n size,\n textarea_class,\n readOnly,\n textarea_attributes,\n className,\n autoresize,\n characterCounter,\n autoresize_max_rows, //eslint-disable-line\n id: _id, //eslint-disable-line\n children, //eslint-disable-line\n value: _value, //eslint-disable-line\n textarea_element: _textarea_element, //eslint-disable-line\n\n ...attributes\n } = props\n\n const { value, textareaState } = this.state\n\n const id = this._id\n const showStatus = getStatusState(status)\n const hasValue = Textarea.hasValue(value)\n\n // pass along all props we wish to have as params\n let { textarea_element: TextareaElement } = props\n\n const textareaAttributes = textarea_attributes\n ? typeof textarea_attributes === 'string'\n ? JSON.parse(textarea_attributes)\n : textarea_attributes\n : {}\n\n const textareaParams = {\n className: classnames(\n 'dnb-textarea__textarea',\n 'dnb-input__border',\n textarea_class\n ),\n role: 'textbox',\n value: hasValue ? value : '',\n id,\n name: id,\n disabled: isTrue(disabled) || isTrue(skeleton),\n 'aria-placeholder': placeholder\n ? convertJsxToString(placeholder)\n : undefined,\n ...attributes,\n ...textareaAttributes,\n onChange: this.onChangeHandler,\n onFocus: this.onFocusHandler,\n onBlur: this.onBlurHandler,\n // onPaste: this.onChangeHandler,\n onKeyDown: this.onKeyDownHandler,\n }\n\n // we may consider using: aria-details\n if (showStatus || suffix) {\n textareaParams['aria-describedby'] = combineDescribedBy(\n textareaParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (readOnly) {\n textareaParams['aria-readonly'] = textareaParams.readOnly = true\n }\n\n const mainParams = {\n className: classnames(\n 'dnb-textarea',\n `dnb-textarea--${textareaState}`,\n disabled && 'dnb-textarea--disabled',\n hasValue && 'dnb-textarea--has-content',\n align && `dnb-textarea__align--${align}`,\n size && `dnb-textarea__size--${size}`,\n status && `dnb-textarea__status--${status_state}`,\n autoresize && 'dnb-textarea__autoresize',\n !autoresize &&\n this.resizeModifier &&\n `dnb-textarea__resize--${this.resizeModifier}`,\n label_direction && `dnb-textarea--${label_direction}`,\n isTrue(stretch) && `dnb-textarea--stretch`,\n isTrue(keepPlaceholder) && `dnb-textarea--keep-placeholder`,\n 'dnb-form-component',\n createSkeletonClass(null, skeleton),\n createSpacingClasses(props),\n className\n ),\n }\n\n const innerParams = {\n className: classnames(\n 'dnb-textarea__inner',\n createSkeletonClass('shape', skeleton, this.context)\n ),\n }\n\n const shellParams = {\n className: classnames('dnb-textarea__shell'),\n }\n\n if (isTrue(disabled) || isTrue(skeleton)) {\n shellParams['aria-disabled'] = true\n }\n\n // to show the ending dots on a placeholder, if the text is longer\n const placeholderStyle =\n parseFloat(props.rows) > 0\n ? {\n '--textarea-rows': parseFloat(props.rows),\n }\n : null\n\n skeletonDOMAttributes(innerParams, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, textareaParams)\n validateDOMAttributes(null, innerParams)\n validateDOMAttributes(null, shellParams)\n\n if (TextareaElement && typeof TextareaElement === 'function') {\n TextareaElement = TextareaElement(textareaParams, this._ref)\n } else if (!TextareaElement && _textarea_element) {\n TextareaElement = _textarea_element\n }\n\n return (\n <span {...mainParams}>\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n labelDirection={label_direction}\n srOnly={label_sr_only}\n disabled={disabled}\n skeleton={skeleton}\n />\n )}\n\n <span {...innerParams}>\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n text={status}\n state={status_state}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n\n <span className=\"dnb-textarea__row\">\n <span {...shellParams}>\n {TextareaElement || (\n <textarea ref={this._ref} {...textareaParams} />\n )}\n\n {!hasValue &&\n placeholder &&\n (textareaState !== 'focus' || keepPlaceholder) && (\n <span\n className={classnames(\n 'dnb-textarea__placeholder',\n align ? `dnb-textarea__align--${align}` : null\n )}\n style={placeholderStyle}\n aria-hidden\n >\n {placeholder}\n </span>\n )}\n\n <span className=\"dnb-textarea__state\" />\n </span>\n\n {suffix && (\n <Suffix\n className=\"dnb-textarea__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n\n {characterCounter && (\n <TextCounter\n top=\"x-small\"\n text={value}\n max={characterCounter}\n lang={props.lang}\n locale={props.locale}\n {...characterCounter}\n />\n )}\n </span>\n </span>\n )\n }\n}\n\nTextarea._formElement = true\nTextarea._supportsSpacingProps = true\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Textarea.js","names":["React","PropTypes","classnames","FormLabel","FormStatus","TextCounter","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","validateDOMAttributes","processChildren","getStatusState","combineDescribedBy","warn","dispatchCustomElementEvent","convertJsxToString","pickFormElementProps","AlignmentHelper","spacingPropTypes","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","Context","Suffix","Textarea","PureComponent","getDerivedStateFromProps","props","state","value","getValue","_value","on_state_update","textarea_state","textareaState","hasValue","String","length","constructor","_defineProperty","event","_ref","current","setState","target","getProps","autoresize","prepareAutosize","rows","getRows","ret","setAutosize","elem","style","height","e","_heightOffset","offsetHeight","clientHeight","lineHeight","getLineHeight","newHeight","scrollHeight","maxRows","parseFloat","autoresize_max_rows","maxHeight","createRef","_id","id","navigator","resizeModifier","test","userAgent","platform","error","console","componentDidMount","inner_ref","window","resizeObserver","ResizeObserver","entries","requestAnimationFrame","Array","isArray","observe","document","body","addEventListener","componentWillUnmount","disconnect","removeEventListener","Math","floor","getComputedStyle","_this$context","_this$context2","_this$context3","defaultProps","skeleton","context","getTranslation","FormRow","formElement","render","label","label_direction","label_sr_only","status","status_state","status_props","status_no_animation","globalStatus","suffix","disabled","stretch","placeholder","keepPlaceholder","align","size","textarea_class","readOnly","textarea_attributes","className","characterCounter","children","textarea_element","_textarea_element","attributes","_objectWithoutProperties","_excluded","showStatus","TextareaElement","textareaAttributes","JSON","parse","textareaParams","_objectSpread","role","name","undefined","onChange","onChangeHandler","onFocus","onFocusHandler","onBlur","onBlurHandler","onKeyDown","onKeyDownHandler","mainParams","innerParams","shellParams","placeholderStyle","createElement","forId","text","labelDirection","srOnly","_AlignmentHelper","_extends","show","text_id","no_animation","ref","_span","top","max","lang","locale","cols","on_change","on_focus","on_blur","on_key_down","process","env","NODE_ENV","propTypes","string","oneOfType","func","node","oneOf","bool","object","shape","message","number","variant","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/textarea/Textarea.js"],"sourcesContent":["/**\n * Web Textarea Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\nimport TextCounter from '../../fragments/text-counter/TextCounter'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n processChildren,\n getStatusState,\n combineDescribedBy,\n warn,\n dispatchCustomElementEvent,\n convertJsxToString,\n} from '../../shared/component-helper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\n\n/**\n * The textarea component is an umbrella component for all textareas which share the same style as the classic `text` textarea field.\n */\nexport default class Textarea extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n value: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n label_direction: PropTypes.oneOf(['horizontal', 'vertical']),\n label_sr_only: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n textarea_state: PropTypes.string,\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n suffix: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n placeholder: PropTypes.node,\n keepPlaceholder: PropTypes.bool,\n align: PropTypes.oneOf(['left', 'right']),\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n stretch: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n characterCounter: PropTypes.oneOfType([\n PropTypes.shape({\n max: PropTypes.number,\n variant: PropTypes.oneOf(['down', 'up']),\n }),\n PropTypes.number,\n ]),\n autoresize: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n autoresize_max_rows: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n textarea_class: PropTypes.string,\n textarea_attributes: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n readOnly: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cols: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n inner_ref: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n textarea_element: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.node,\n ]),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n on_change: PropTypes.func,\n on_focus: PropTypes.func,\n on_blur: PropTypes.func,\n on_key_down: PropTypes.func,\n on_state_update: PropTypes.func,\n }\n\n static defaultProps = {\n value: 'initval',\n id: null,\n label: null,\n label_direction: null,\n label_sr_only: null,\n status: null,\n textarea_state: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n suffix: null,\n placeholder: null,\n keepPlaceholder: null,\n align: null,\n size: null,\n stretch: null,\n disabled: null,\n skeleton: null,\n autoresize: null,\n autoresize_max_rows: null,\n characterCounter: null,\n textarea_class: null,\n textarea_attributes: null,\n readOnly: false,\n rows: null,\n cols: null,\n inner_ref: null,\n\n className: null,\n textarea_element: null,\n children: null,\n\n on_change: null,\n on_focus: null,\n on_blur: null,\n on_key_down: null,\n on_state_update: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = Textarea.getValue(props)\n if (\n value !== 'initval' &&\n value !== state.value &&\n value !== state._value\n ) {\n if (\n value !== state.value &&\n typeof props.on_state_update === 'function'\n ) {\n dispatchCustomElementEvent({ props }, 'on_state_update', { value })\n }\n state.value = value\n }\n if (props.textarea_state) {\n state.textareaState = props.textarea_state\n }\n state._value = props.value\n return state\n }\n\n static hasValue(value) {\n return (\n ((typeof value === 'string' || typeof value === 'number') &&\n String(value).length > 0) ||\n false\n )\n }\n\n static getValue(props) {\n const value = processChildren(props)\n if (value === '' || Textarea.hasValue(value)) {\n return value\n }\n return props.value\n }\n\n state = {\n textareaState: 'virgin',\n value: null,\n _value: null,\n }\n\n constructor(props) {\n super(props)\n\n this._ref = React.createRef()\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n\n if (props.textarea_state) {\n this.state.textareaState = props.textarea_state\n }\n\n try {\n if (typeof navigator !== 'undefined') {\n this.resizeModifier =\n /Firefox|Edg/.test(navigator.userAgent) ||\n (/Chrome/.test(navigator.userAgent) &&\n /Win/.test(navigator.platform))\n ? 'large'\n : false\n\n if (!this.resizeModifier) {\n this.resizeModifier =\n /Safari|Chrome/.test(navigator.userAgent) &&\n /Mac/.test(navigator.platform)\n ? 'medium'\n : false\n }\n }\n } catch (error) {\n console.error(error)\n }\n }\n componentDidMount() {\n const props = this.getProps()\n if (props.inner_ref) {\n typeof props.inner_ref === 'function'\n ? props.inner_ref(this._ref.current)\n : (props.inner_ref.current = this._ref.current)\n }\n\n if (isTrue(props.autoresize) && typeof window !== 'undefined') {\n this.setAutosize()\n try {\n this.resizeObserver = new ResizeObserver((entries) => {\n window.requestAnimationFrame(() => {\n if (!Array.isArray(entries) || !entries.length) {\n return\n }\n this.setAutosize()\n })\n })\n this.resizeObserver.observe(document.body)\n } catch (e) {\n window.addEventListener('resize', this.setAutosize)\n }\n }\n }\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect()\n this.resizeObserver = null\n }\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.setAutosize)\n }\n }\n onFocusHandler = (event) => {\n const { value } = this._ref.current\n this.setState({\n value,\n textareaState: 'focus',\n })\n dispatchCustomElementEvent(this, 'on_focus', { value, event })\n }\n onBlurHandler = (event) => {\n const { value } = event.target\n this.setState({\n value,\n textareaState: Textarea.hasValue(value) ? 'dirty' : 'initial',\n })\n dispatchCustomElementEvent(this, 'on_blur', { value, event })\n }\n onChangeHandler = (event) => {\n const { value } = event.target\n\n const props = this.getProps()\n const autoresize = isTrue(props.autoresize)\n\n if (autoresize) {\n this.prepareAutosize()\n }\n\n const rows = this.getRows(value)\n\n const ret = dispatchCustomElementEvent(this, 'on_change', {\n value,\n rows,\n event,\n })\n if (ret !== false) {\n this.setState({ value })\n if (autoresize) {\n this.setAutosize(rows)\n }\n }\n }\n onKeyDownHandler = (event) => {\n const rows = this.getRows()\n const { value } = event.target\n dispatchCustomElementEvent(this, 'on_key_down', {\n value,\n rows,\n event,\n })\n }\n prepareAutosize = () => {\n const elem = this._ref.current\n if (!elem) {\n return // stop here if no element was gotten\n }\n try {\n elem.style.height = 'auto'\n } catch (e) {\n warn(e)\n }\n }\n setAutosize = (rows = null) => {\n const elem = this._ref.current\n if (!elem) {\n return // stop here if no element was gotten\n }\n try {\n if (typeof this._heightOffset === 'undefined') {\n this._heightOffset = elem.offsetHeight - elem.clientHeight\n }\n\n elem.style.height = 'auto'\n\n // get rows after we set height to auto, this way we get 100% correct rows\n const lineHeight = this.getLineHeight()\n let newHeight = elem.scrollHeight + this._heightOffset\n if (!rows) {\n rows = this.getRows()\n }\n\n if (rows === 1) {\n if (newHeight > lineHeight) {\n newHeight = lineHeight\n }\n }\n\n const props = this.getProps()\n const maxRows = parseFloat(props.autoresize_max_rows)\n if (maxRows > 0) {\n const maxHeight = maxRows * lineHeight\n\n if (rows > maxRows || newHeight > maxHeight) {\n newHeight = maxHeight\n }\n }\n\n elem.style.height = newHeight + 'px'\n } catch (e) {\n warn(e)\n }\n }\n getRows() {\n return (\n Math.floor(this._ref.current.scrollHeight / this.getLineHeight()) ||\n 1\n )\n }\n getLineHeight() {\n return parseFloat(getComputedStyle(this._ref.current).lineHeight) || 0\n }\n getProps() {\n return extendPropsWithContextInClassComponent(\n this.props,\n Textarea.defaultProps,\n { skeleton: this.context?.skeleton },\n this.context.getTranslation(this.props).Textarea,\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.Textarea\n )\n }\n render() {\n // use only the props from context, who are available here anyway\n const props = this.getProps()\n\n const {\n label,\n label_direction,\n label_sr_only,\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n disabled,\n skeleton,\n stretch,\n placeholder,\n keepPlaceholder,\n align,\n size,\n textarea_class,\n readOnly,\n textarea_attributes,\n className,\n autoresize,\n characterCounter,\n autoresize_max_rows, //eslint-disable-line\n id: _id, //eslint-disable-line\n children, //eslint-disable-line\n value: _value, //eslint-disable-line\n textarea_element: _textarea_element, //eslint-disable-line\n\n ...attributes\n } = props\n\n const { value, textareaState } = this.state\n\n const id = this._id\n const showStatus = getStatusState(status)\n const hasValue = Textarea.hasValue(value)\n\n // pass along all props we wish to have as params\n let { textarea_element: TextareaElement } = props\n\n const textareaAttributes = textarea_attributes\n ? typeof textarea_attributes === 'string'\n ? JSON.parse(textarea_attributes)\n : textarea_attributes\n : {}\n\n const textareaParams = {\n className: classnames(\n 'dnb-textarea__textarea',\n 'dnb-input__border',\n textarea_class\n ),\n role: 'textbox',\n value: hasValue ? value : '',\n id,\n name: id,\n disabled: isTrue(disabled) || isTrue(skeleton),\n 'aria-placeholder': placeholder\n ? convertJsxToString(placeholder)\n : undefined,\n ...attributes,\n ...textareaAttributes,\n onChange: this.onChangeHandler,\n onFocus: this.onFocusHandler,\n onBlur: this.onBlurHandler,\n // onPaste: this.onChangeHandler,\n onKeyDown: this.onKeyDownHandler,\n }\n\n // we may consider using: aria-details\n if (showStatus || suffix) {\n textareaParams['aria-describedby'] = combineDescribedBy(\n textareaParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (readOnly) {\n textareaParams['aria-readonly'] = textareaParams.readOnly = true\n }\n\n const mainParams = {\n className: classnames(\n 'dnb-textarea',\n `dnb-textarea--${textareaState}`,\n disabled && 'dnb-textarea--disabled',\n hasValue && 'dnb-textarea--has-content',\n align && `dnb-textarea__align--${align}`,\n size && `dnb-textarea__size--${size}`,\n status && `dnb-textarea__status--${status_state}`,\n autoresize && 'dnb-textarea__autoresize',\n !autoresize &&\n this.resizeModifier &&\n `dnb-textarea__resize--${this.resizeModifier}`,\n label_direction && `dnb-textarea--${label_direction}`,\n isTrue(stretch) && `dnb-textarea--stretch`,\n isTrue(keepPlaceholder) && `dnb-textarea--keep-placeholder`,\n 'dnb-form-component',\n createSkeletonClass(null, skeleton),\n createSpacingClasses(props),\n className\n ),\n }\n\n const innerParams = {\n className: classnames(\n 'dnb-textarea__inner',\n createSkeletonClass('shape', skeleton, this.context)\n ),\n }\n\n const shellParams = {\n className: classnames('dnb-textarea__shell'),\n }\n\n if (isTrue(disabled) || isTrue(skeleton)) {\n shellParams['aria-disabled'] = true\n }\n\n // to show the ending dots on a placeholder, if the text is longer\n const placeholderStyle =\n parseFloat(props.rows) > 0\n ? {\n '--textarea-rows': parseFloat(props.rows),\n }\n : null\n\n skeletonDOMAttributes(innerParams, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, textareaParams)\n validateDOMAttributes(null, innerParams)\n validateDOMAttributes(null, shellParams)\n\n if (TextareaElement && typeof TextareaElement === 'function') {\n TextareaElement = TextareaElement(textareaParams, this._ref)\n } else if (!TextareaElement && _textarea_element) {\n TextareaElement = _textarea_element\n }\n\n return (\n <span {...mainParams}>\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n labelDirection={label_direction}\n srOnly={label_sr_only}\n disabled={disabled}\n skeleton={skeleton}\n />\n )}\n\n <span {...innerParams}>\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n text={status}\n state={status_state}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n\n <span className=\"dnb-textarea__row\">\n <span {...shellParams}>\n {TextareaElement || (\n <textarea ref={this._ref} {...textareaParams} />\n )}\n\n {!hasValue &&\n placeholder &&\n (textareaState !== 'focus' || keepPlaceholder) && (\n <span\n className={classnames(\n 'dnb-textarea__placeholder',\n align ? `dnb-textarea__align--${align}` : null\n )}\n style={placeholderStyle}\n aria-hidden\n >\n {placeholder}\n </span>\n )}\n\n <span className=\"dnb-textarea__state\" />\n </span>\n\n {suffix && (\n <Suffix\n className=\"dnb-textarea__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n\n {characterCounter && (\n <TextCounter\n top=\"x-small\"\n text={value}\n max={characterCounter}\n lang={props.lang}\n locale={props.locale}\n {...characterCounter}\n />\n )}\n </span>\n </span>\n )\n }\n}\n\nTextarea._formElement = true\nTextarea._supportsSpacingProps = true\n"],"mappings":";;;;;;;;;AAOA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,yBAAyB;AAC/C,OAAOC,UAAU,MAAM,2BAA2B;AAClD,OAAOC,WAAW,MAAM,0CAA0C;AAClE,SACEC,MAAM,EACNC,YAAY,EACZC,sCAAsC,EACtCC,qBAAqB,EACrBC,eAAe,EACfC,cAAc,EACdC,kBAAkB,EAClBC,IAAI,EACJC,0BAA0B,EAC1BC,kBAAkB,QACb,+BAA+B;AACtC,SAASC,oBAAoB,QAAQ,uCAAuC;AAC5E,OAAOC,eAAe,MAAM,8BAA8B;AAC1D,SACEC,gBAAgB,EAChBC,oBAAoB,QACf,wBAAwB;AAC/B,SACEC,qBAAqB,EACrBC,mBAAmB,QACd,4BAA4B;AAEnC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,MAAM,MAAM,6BAA6B;AAKhD,eAAe,MAAMC,QAAQ,SAASxB,KAAK,CAACyB,aAAa,CAAC;EAyHxD,OAAOC,wBAAwBA,CAACC,KAAK,EAAEC,KAAK,EAAE;IAC5C,MAAMC,KAAK,GAAGL,QAAQ,CAACM,QAAQ,CAACH,KAAK,CAAC;IACtC,IACEE,KAAK,KAAK,SAAS,IACnBA,KAAK,KAAKD,KAAK,CAACC,KAAK,IACrBA,KAAK,KAAKD,KAAK,CAACG,MAAM,EACtB;MACA,IACEF,KAAK,KAAKD,KAAK,CAACC,KAAK,IACrB,OAAOF,KAAK,CAACK,eAAe,KAAK,UAAU,EAC3C;QACAlB,0BAA0B,CAAC;UAAEa;QAAM,CAAC,EAAE,iBAAiB,EAAE;UAAEE;QAAM,CAAC,CAAC;MACrE;MACAD,KAAK,CAACC,KAAK,GAAGA,KAAK;IACrB;IACA,IAAIF,KAAK,CAACM,cAAc,EAAE;MACxBL,KAAK,CAACM,aAAa,GAAGP,KAAK,CAACM,cAAc;IAC5C;IACAL,KAAK,CAACG,MAAM,GAAGJ,KAAK,CAACE,KAAK;IAC1B,OAAOD,KAAK;EACd;EAEA,OAAOO,QAAQA,CAACN,KAAK,EAAE;IACrB,OACG,CAAC,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,KACtDO,MAAM,CAACP,KAAK,CAAC,CAACQ,MAAM,GAAG,CAAC,IAC1B,KAAK;EAET;EAEA,OAAOP,QAAQA,CAACH,KAAK,EAAE;IACrB,MAAME,KAAK,GAAGnB,eAAe,CAACiB,KAAK,CAAC;IACpC,IAAIE,KAAK,KAAK,EAAE,IAAIL,QAAQ,CAACW,QAAQ,CAACN,KAAK,CAAC,EAAE;MAC5C,OAAOA,KAAK;IACd;IACA,OAAOF,KAAK,CAACE,KAAK;EACpB;EAQAS,WAAWA,CAACX,MAAK,EAAE;IACjB,KAAK,CAACA,MAAK,CAAC;IAAAY,eAAA,gBAPN;MACNL,aAAa,EAAE,QAAQ;MACvBL,KAAK,EAAE,IAAI;MACXE,MAAM,EAAE;IACV,CAAC;IAAAQ,eAAA,yBAmEiBC,KAAK,IAAK;MAC1B,MAAM;QAAEX;MAAM,CAAC,GAAG,IAAI,CAACY,IAAI,CAACC,OAAO;MACnC,IAAI,CAACC,QAAQ,CAAC;QACZd,KAAK;QACLK,aAAa,EAAE;MACjB,CAAC,CAAC;MACFpB,0BAA0B,CAAC,IAAI,EAAE,UAAU,EAAE;QAAEe,KAAK;QAAEW;MAAM,CAAC,CAAC;IAChE,CAAC;IAAAD,eAAA,wBACgBC,KAAK,IAAK;MACzB,MAAM;QAAEX;MAAM,CAAC,GAAGW,KAAK,CAACI,MAAM;MAC9B,IAAI,CAACD,QAAQ,CAAC;QACZd,KAAK;QACLK,aAAa,EAAEV,QAAQ,CAACW,QAAQ,CAACN,KAAK,CAAC,GAAG,OAAO,GAAG;MACtD,CAAC,CAAC;MACFf,0BAA0B,CAAC,IAAI,EAAE,SAAS,EAAE;QAAEe,KAAK;QAAEW;MAAM,CAAC,CAAC;IAC/D,CAAC;IAAAD,eAAA,0BACkBC,KAAK,IAAK;MAC3B,MAAM;QAAEX;MAAM,CAAC,GAAGW,KAAK,CAACI,MAAM;MAE9B,MAAMjB,KAAK,GAAG,IAAI,CAACkB,QAAQ,CAAC,CAAC;MAC7B,MAAMC,UAAU,GAAGxC,MAAM,CAACqB,KAAK,CAACmB,UAAU,CAAC;MAE3C,IAAIA,UAAU,EAAE;QACd,IAAI,CAACC,eAAe,CAAC,CAAC;MACxB;MAEA,MAAMC,IAAI,GAAG,IAAI,CAACC,OAAO,CAACpB,KAAK,CAAC;MAEhC,MAAMqB,GAAG,GAAGpC,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE;QACxDe,KAAK;QACLmB,IAAI;QACJR;MACF,CAAC,CAAC;MACF,IAAIU,GAAG,KAAK,KAAK,EAAE;QACjB,IAAI,CAACP,QAAQ,CAAC;UAAEd;QAAM,CAAC,CAAC;QACxB,IAAIiB,UAAU,EAAE;UACd,IAAI,CAACK,WAAW,CAACH,IAAI,CAAC;QACxB;MACF;IACF,CAAC;IAAAT,eAAA,2BACmBC,KAAK,IAAK;MAC5B,MAAMQ,IAAI,GAAG,IAAI,CAACC,OAAO,CAAC,CAAC;MAC3B,MAAM;QAAEpB;MAAM,CAAC,GAAGW,KAAK,CAACI,MAAM;MAC9B9B,0BAA0B,CAAC,IAAI,EAAE,aAAa,EAAE;QAC9Ce,KAAK;QACLmB,IAAI;QACJR;MACF,CAAC,CAAC;IACJ,CAAC;IAAAD,eAAA,0BACiB,MAAM;MACtB,MAAMa,IAAI,GAAG,IAAI,CAACX,IAAI,CAACC,OAAO;MAC9B,IAAI,CAACU,IAAI,EAAE;QACT;MACF;MACA,IAAI;QACFA,IAAI,CAACC,KAAK,CAACC,MAAM,GAAG,MAAM;MAC5B,CAAC,CAAC,OAAOC,CAAC,EAAE;QACV1C,IAAI,CAAC0C,CAAC,CAAC;MACT;IACF,CAAC;IAAAhB,eAAA,sBACa,CAACS,IAAI,GAAG,IAAI,KAAK;MAC7B,MAAMI,IAAI,GAAG,IAAI,CAACX,IAAI,CAACC,OAAO;MAC9B,IAAI,CAACU,IAAI,EAAE;QACT;MACF;MACA,IAAI;QACF,IAAI,OAAO,IAAI,CAACI,aAAa,KAAK,WAAW,EAAE;UAC7C,IAAI,CAACA,aAAa,GAAGJ,IAAI,CAACK,YAAY,GAAGL,IAAI,CAACM,YAAY;QAC5D;QAEAN,IAAI,CAACC,KAAK,CAACC,MAAM,GAAG,MAAM;QAG1B,MAAMK,UAAU,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC;QACvC,IAAIC,SAAS,GAAGT,IAAI,CAACU,YAAY,GAAG,IAAI,CAACN,aAAa;QACtD,IAAI,CAACR,IAAI,EAAE;UACTA,IAAI,GAAG,IAAI,CAACC,OAAO,CAAC,CAAC;QACvB;QAEA,IAAID,IAAI,KAAK,CAAC,EAAE;UACd,IAAIa,SAAS,GAAGF,UAAU,EAAE;YAC1BE,SAAS,GAAGF,UAAU;UACxB;QACF;QAEA,MAAMhC,KAAK,GAAG,IAAI,CAACkB,QAAQ,CAAC,CAAC;QAC7B,MAAMkB,OAAO,GAAGC,UAAU,CAACrC,KAAK,CAACsC,mBAAmB,CAAC;QACrD,IAAIF,OAAO,GAAG,CAAC,EAAE;UACf,MAAMG,SAAS,GAAGH,OAAO,GAAGJ,UAAU;UAEtC,IAAIX,IAAI,GAAGe,OAAO,IAAIF,SAAS,GAAGK,SAAS,EAAE;YAC3CL,SAAS,GAAGK,SAAS;UACvB;QACF;QAEAd,IAAI,CAACC,KAAK,CAACC,MAAM,GAAGO,SAAS,GAAG,IAAI;MACtC,CAAC,CAAC,OAAON,CAAC,EAAE;QACV1C,IAAI,CAAC0C,CAAC,CAAC;MACT;IACF,CAAC;IAjKC,IAAI,CAACd,IAAI,GAAGzC,KAAK,CAACmE,SAAS,CAAC,CAAC;IAC7B,IAAI,CAACC,GAAG,GAAGzC,MAAK,CAAC0C,EAAE,IAAI9D,YAAY,CAAC,CAAC;IAErC,IAAIoB,MAAK,CAACM,cAAc,EAAE;MACxB,IAAI,CAACL,KAAK,CAACM,aAAa,GAAGP,MAAK,CAACM,cAAc;IACjD;IAEA,IAAI;MACF,IAAI,OAAOqC,SAAS,KAAK,WAAW,EAAE;QACpC,IAAI,CAACC,cAAc,GACjB,aAAa,CAACC,IAAI,CAACF,SAAS,CAACG,SAAS,CAAC,IACtC,QAAQ,CAACD,IAAI,CAACF,SAAS,CAACG,SAAS,CAAC,IACjC,KAAK,CAACD,IAAI,CAACF,SAAS,CAACI,QAAQ,CAAE,GAC7B,OAAO,GACP,KAAK;QAEX,IAAI,CAAC,IAAI,CAACH,cAAc,EAAE;UACxB,IAAI,CAACA,cAAc,GACjB,eAAe,CAACC,IAAI,CAACF,SAAS,CAACG,SAAS,CAAC,IACzC,KAAK,CAACD,IAAI,CAACF,SAAS,CAACI,QAAQ,CAAC,GAC1B,QAAQ,GACR,KAAK;QACb;MACF;IACF,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;IACtB;EACF;EACAE,iBAAiBA,CAAA,EAAG;IAClB,MAAMlD,KAAK,GAAG,IAAI,CAACkB,QAAQ,CAAC,CAAC;IAC7B,IAAIlB,KAAK,CAACmD,SAAS,EAAE;MACnB,OAAOnD,KAAK,CAACmD,SAAS,KAAK,UAAU,GACjCnD,KAAK,CAACmD,SAAS,CAAC,IAAI,CAACrC,IAAI,CAACC,OAAO,CAAC,GACjCf,KAAK,CAACmD,SAAS,CAACpC,OAAO,GAAG,IAAI,CAACD,IAAI,CAACC,OAAQ;IACnD;IAEA,IAAIpC,MAAM,CAACqB,KAAK,CAACmB,UAAU,CAAC,IAAI,OAAOiC,MAAM,KAAK,WAAW,EAAE;MAC7D,IAAI,CAAC5B,WAAW,CAAC,CAAC;MAClB,IAAI;QACF,IAAI,CAAC6B,cAAc,GAAG,IAAIC,cAAc,CAAEC,OAAO,IAAK;UACpDH,MAAM,CAACI,qBAAqB,CAAC,MAAM;YACjC,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,OAAO,CAAC,IAAI,CAACA,OAAO,CAAC7C,MAAM,EAAE;cAC9C;YACF;YACA,IAAI,CAACc,WAAW,CAAC,CAAC;UACpB,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,CAAC6B,cAAc,CAACM,OAAO,CAACC,QAAQ,CAACC,IAAI,CAAC;MAC5C,CAAC,CAAC,OAAOjC,CAAC,EAAE;QACVwB,MAAM,CAACU,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACtC,WAAW,CAAC;MACrD;IACF;EACF;EACAuC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACV,cAAc,EAAE;MACvB,IAAI,CAACA,cAAc,CAACW,UAAU,CAAC,CAAC;MAChC,IAAI,CAACX,cAAc,GAAG,IAAI;IAC5B;IACA,IAAI,OAAOD,MAAM,KAAK,WAAW,EAAE;MACjCA,MAAM,CAACa,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACzC,WAAW,CAAC;IACxD;EACF;EAqGAF,OAAOA,CAAA,EAAG;IACR,OACE4C,IAAI,CAACC,KAAK,CAAC,IAAI,CAACrD,IAAI,CAACC,OAAO,CAACoB,YAAY,GAAG,IAAI,CAACF,aAAa,CAAC,CAAC,CAAC,IACjE,CAAC;EAEL;EACAA,aAAaA,CAAA,EAAG;IACd,OAAOI,UAAU,CAAC+B,gBAAgB,CAAC,IAAI,CAACtD,IAAI,CAACC,OAAO,CAAC,CAACiB,UAAU,CAAC,IAAI,CAAC;EACxE;EACAd,QAAQA,CAAA,EAAG;IAAA,IAAAmD,aAAA,EAAAC,cAAA,EAAAC,cAAA;IACT,OAAO1F,sCAAsC,CAC3C,IAAI,CAACmB,KAAK,EACVH,QAAQ,CAAC2E,YAAY,EACrB;MAAEC,QAAQ,GAAAJ,aAAA,GAAE,IAAI,CAACK,OAAO,cAAAL,aAAA,uBAAZA,aAAA,CAAcI;IAAS,CAAC,EACpC,IAAI,CAACC,OAAO,CAACC,cAAc,CAAC,IAAI,CAAC3E,KAAK,CAAC,CAACH,QAAQ,EAEhDR,oBAAoB,EAAAiF,cAAA,GAAC,IAAI,CAACI,OAAO,cAAAJ,cAAA,uBAAZA,cAAA,CAAcM,OAAO,CAAC,EAC3CvF,oBAAoB,EAAAkF,cAAA,GAAC,IAAI,CAACG,OAAO,cAAAH,cAAA,uBAAZA,cAAA,CAAcM,WAAW,CAAC,EAC/C,IAAI,CAACH,OAAO,CAAC7E,QACf,CAAC;EACH;EACAiF,MAAMA,CAAA,EAAG;IAEP,MAAM9E,KAAK,GAAG,IAAI,CAACkB,QAAQ,CAAC,CAAC;IAE7B,MAAM;QACJ6D,KAAK;QACLC,eAAe;QACfC,aAAa;QACbC,MAAM;QACNC,YAAY;QACZC,YAAY;QACZC,mBAAmB;QACnBC,YAAY;QACZC,MAAM;QACNC,QAAQ;QACRf,QAAQ;QACRgB,OAAO;QACPC,WAAW;QACXC,eAAe;QACfC,KAAK;QACLC,IAAI;QACJC,cAAc;QACdC,QAAQ;QACRC,mBAAmB;QACnBC,SAAS;QACT9E,UAAU;QACV+E,gBAAgB;QAChB5D,mBAAmB;QACnBI,EAAE,EAAED,GAAG;QACP0D,QAAQ;QACRjG,KAAK,EAAEE,MAAM;QACbgG,gBAAgB,EAAEC;MAGpB,CAAC,GAAGrG,KAAK;MADJsG,UAAU,GAAAC,wBAAA,CACXvG,KAAK,EAAAwG,SAAA;IAET,MAAM;MAAEtG,KAAK;MAAEK;IAAc,CAAC,GAAG,IAAI,CAACN,KAAK;IAE3C,MAAMyC,EAAE,GAAG,IAAI,CAACD,GAAG;IACnB,MAAMgE,UAAU,GAAGzH,cAAc,CAACkG,MAAM,CAAC;IACzC,MAAM1E,QAAQ,GAAGX,QAAQ,CAACW,QAAQ,CAACN,KAAK,CAAC;IAGzC,IAAI;MAAEkG,gBAAgB,EAAEM;IAAgB,CAAC,GAAG1G,KAAK;IAEjD,MAAM2G,kBAAkB,GAAGX,mBAAmB,GAC1C,OAAOA,mBAAmB,KAAK,QAAQ,GACrCY,IAAI,CAACC,KAAK,CAACb,mBAAmB,CAAC,GAC/BA,mBAAmB,GACrB,CAAC,CAAC;IAEN,MAAMc,cAAc,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA;MAClBd,SAAS,EAAE1H,UAAU,6CAGnBuH,cACF,CAAC;MACDkB,IAAI,EAAE,SAAS;MACf9G,KAAK,EAAEM,QAAQ,GAAGN,KAAK,GAAG,EAAE;MAC5BwC,EAAE;MACFuE,IAAI,EAAEvE,EAAE;MACR8C,QAAQ,EAAE7G,MAAM,CAAC6G,QAAQ,CAAC,IAAI7G,MAAM,CAAC8F,QAAQ,CAAC;MAC9C,kBAAkB,EAAEiB,WAAW,GAC3BtG,kBAAkB,CAACsG,WAAW,CAAC,GAC/BwB;IAAS,GACVZ,UAAU,GACVK,kBAAkB;MACrBQ,QAAQ,EAAE,IAAI,CAACC,eAAe;MAC9BC,OAAO,EAAE,IAAI,CAACC,cAAc;MAC5BC,MAAM,EAAE,IAAI,CAACC,aAAa;MAE1BC,SAAS,EAAE,IAAI,CAACC;IAAgB,EACjC;IAGD,IAAIjB,UAAU,IAAIlB,MAAM,EAAE;MACxBuB,cAAc,CAAC,kBAAkB,CAAC,GAAG7H,kBAAkB,CACrD6H,cAAc,EACdL,UAAU,GAAG/D,EAAE,GAAG,SAAS,GAAG,IAAI,EAClC6C,MAAM,GAAG7C,EAAE,GAAG,SAAS,GAAG,IAC5B,CAAC;IACH;IACA,IAAIqD,QAAQ,EAAE;MACZe,cAAc,CAAC,eAAe,CAAC,GAAGA,cAAc,CAACf,QAAQ,GAAG,IAAI;IAClE;IAEA,MAAM4B,UAAU,GAAG;MACjB1B,SAAS,EAAE1H,UAAU,+BAEFgC,aAAa,uBAc9Bb,mBAAmB,CAAC,IAAI,EAAE+E,QAAQ,CAAC,EACnCjF,oBAAoB,CAACQ,KAAK,CAAC,EAC3BiG,SAAS,EAVT9E,UAAU,GAAI,0BAA0B,GAEtC,IAAI,CAACyB,cAAc,IAClB,yBAAwB,IAAI,CAACA,cAAe,EAAC,EARhD4C,QAAQ,IAAI,wBAAwB,EACpChF,QAAQ,IAAI,2BAA2B,EACvCoF,KAAK,IAAK,wBAAuBA,KAAM,EAAC,EACxCC,IAAI,IAAK,uBAAsBA,IAAK,EAAC,EACrCX,MAAM,IAAK,yBAAwBC,YAAa,EAAC,EAKjDH,eAAe,IAAK,iBAAgBA,eAAgB,EAAC,EACrDrG,MAAM,CAAC8G,OAAO,CAAC,IAAK,uBAAsB,EAC1C9G,MAAM,CAACgH,eAAe,CAAC,IAAK,gCAK9B;IACF,CAAC;IAED,MAAMiC,WAAW,GAAG;MAClB3B,SAAS,EAAE1H,UAAU,CACnB,qBAAqB,EACrBmB,mBAAmB,CAAC,OAAO,EAAE+E,QAAQ,EAAE,IAAI,CAACC,OAAO,CACrD;IACF,CAAC;IAED,MAAMmD,WAAW,GAAG;MAClB5B,SAAS,EAAa;IACxB,CAAC;IAED,IAAItH,MAAM,CAAC6G,QAAQ,CAAC,IAAI7G,MAAM,CAAC8F,QAAQ,CAAC,EAAE;MACxCoD,WAAW,CAAC,eAAe,CAAC,GAAG,IAAI;IACrC;IAGA,MAAMC,gBAAgB,GACpBzF,UAAU,CAACrC,KAAK,CAACqB,IAAI,CAAC,GAAG,CAAC,GACtB;MACE,iBAAiB,EAAEgB,UAAU,CAACrC,KAAK,CAACqB,IAAI;IAC1C,CAAC,GACD,IAAI;IAEV5B,qBAAqB,CAACmI,WAAW,EAAEnD,QAAQ,EAAE,IAAI,CAACC,OAAO,CAAC;IAG1D5F,qBAAqB,CAAC,IAAI,CAACkB,KAAK,EAAE8G,cAAc,CAAC;IACjDhI,qBAAqB,CAAC,IAAI,EAAE8I,WAAW,CAAC;IACxC9I,qBAAqB,CAAC,IAAI,EAAE+I,WAAW,CAAC;IAExC,IAAInB,eAAe,IAAI,OAAOA,eAAe,KAAK,UAAU,EAAE;MAC5DA,eAAe,GAAGA,eAAe,CAACI,cAAc,EAAE,IAAI,CAAChG,IAAI,CAAC;IAC9D,CAAC,MAAM,IAAI,CAAC4F,eAAe,IAAIL,iBAAiB,EAAE;MAChDK,eAAe,GAAGL,iBAAiB;IACrC;IAEA,OACEhI,KAAA,CAAA0J,aAAA,SAAUJ,UAAU,EACjB5C,KAAK,IACJ1G,KAAA,CAAA0J,aAAA,CAACvJ,SAAS;MACRkE,EAAE,EAAEA,EAAE,GAAG,QAAS;MAClBsF,KAAK,EAAEtF,EAAG;MACVuF,IAAI,EAAElD,KAAM;MACZmD,cAAc,EAAElD,eAAgB;MAChCmD,MAAM,EAAElD,aAAc;MACtBO,QAAQ,EAAEA,QAAS;MACnBf,QAAQ,EAAEA;IAAS,CACpB,CACF,EAEDpG,KAAA,CAAA0J,aAAA,SAAUH,WAAW,EAAAQ,gBAAA,KAAAA,gBAAA,GACnB/J,KAAA,CAAA0J,aAAA,CAACzI,eAAe,MAAE,CAAC,GAEnBjB,KAAA,CAAA0J,aAAA,CAACtJ,UAAU,EAAA4J,QAAA;MACTC,IAAI,EAAE7B,UAAW;MACjB/D,EAAE,EAAEA,EAAE,GAAG,cAAe;MACxB4C,YAAY,EAAEA,YAAa;MAC3BP,KAAK,EAAEA,KAAM;MACbwD,OAAO,EAAE7F,EAAE,GAAG,SAAU;MACxBuF,IAAI,EAAE/C,MAAO;MACbjF,KAAK,EAAEkF,YAAa;MACpBqD,YAAY,EAAEnD,mBAAoB;MAClCZ,QAAQ,EAAEA;IAAS,GACfW,YAAY,CACjB,CAAC,EAEF/G,KAAA,CAAA0J,aAAA;MAAM9B,SAAS,EAAC;IAAmB,GACjC5H,KAAA,CAAA0J,aAAA,SAAUF,WAAW,EAClBnB,eAAe,IACdrI,KAAA,CAAA0J,aAAA,aAAAM,QAAA;MAAUI,GAAG,EAAE,IAAI,CAAC3H;IAAK,GAAKgG,cAAc,CAAG,CAChD,EAEA,CAACtG,QAAQ,IACRkF,WAAW,KACVnF,aAAa,KAAK,OAAO,IAAIoF,eAAe,CAAC,IAC5CtH,KAAA,CAAA0J,aAAA;MACE9B,SAAS,EACP,2BAA2B,IAC3BL,KAAK,4BAA2BA,KAAM,QACtC;MACFlE,KAAK,EAAEoG,gBAAiB;MACxB;IAAW,GAEVpC,WACG,CACP,EAAAgD,KAAA,KAAAA,KAAA,GAEHrK,KAAA,CAAA0J,aAAA;MAAM9B,SAAS,EAAC;IAAqB,CAAE,CAAC,CACpC,CAAC,EAENV,MAAM,IACLlH,KAAA,CAAA0J,aAAA,CAACnI,MAAM;MACLqG,SAAS,EAAC,sBAAsB;MAChCvD,EAAE,EAAEA,EAAE,GAAG,SAAU;MACnBgC,OAAO,EAAE1E;IAAM,GAEduF,MACK,CAEN,CAAC,EAENW,gBAAgB,IACf7H,KAAA,CAAA0J,aAAA,CAACrJ,WAAW,EAAA2J,QAAA;MACVM,GAAG,EAAC,SAAS;MACbV,IAAI,EAAE/H,KAAM;MACZ0I,GAAG,EAAE1C,gBAAiB;MACtB2C,IAAI,EAAE7I,KAAK,CAAC6I,IAAK;MACjBC,MAAM,EAAE9I,KAAK,CAAC8I;IAAO,GACjB5C,gBAAgB,CACrB,CAEC,CACF,CAAC;EAEX;AACF;AAACtF,eAAA,CA/jBoBf,QAAQ,iBACNF,OAAO;AAAAiB,eAAA,CADTf,QAAQ,kBAgFL;EACpBK,KAAK,EAAE,SAAS;EAChBwC,EAAE,EAAE,IAAI;EACRqC,KAAK,EAAE,IAAI;EACXC,eAAe,EAAE,IAAI;EACrBC,aAAa,EAAE,IAAI;EACnBC,MAAM,EAAE,IAAI;EACZ5E,cAAc,EAAE,IAAI;EACpB6E,YAAY,EAAE,OAAO;EACrBC,YAAY,EAAE,IAAI;EAClBC,mBAAmB,EAAE,IAAI;EACzBC,YAAY,EAAE,IAAI;EAClBC,MAAM,EAAE,IAAI;EACZG,WAAW,EAAE,IAAI;EACjBC,eAAe,EAAE,IAAI;EACrBC,KAAK,EAAE,IAAI;EACXC,IAAI,EAAE,IAAI;EACVJ,OAAO,EAAE,IAAI;EACbD,QAAQ,EAAE,IAAI;EACdf,QAAQ,EAAE,IAAI;EACdtD,UAAU,EAAE,IAAI;EAChBmB,mBAAmB,EAAE,IAAI;EACzB4D,gBAAgB,EAAE,IAAI;EACtBJ,cAAc,EAAE,IAAI;EACpBE,mBAAmB,EAAE,IAAI;EACzBD,QAAQ,EAAE,KAAK;EACf1E,IAAI,EAAE,IAAI;EACV0H,IAAI,EAAE,IAAI;EACV5F,SAAS,EAAE,IAAI;EAEf8C,SAAS,EAAE,IAAI;EACfG,gBAAgB,EAAE,IAAI;EACtBD,QAAQ,EAAE,IAAI;EAEd6C,SAAS,EAAE,IAAI;EACfC,QAAQ,EAAE,IAAI;EACdC,OAAO,EAAE,IAAI;EACbC,WAAW,EAAE,IAAI;EACjB9I,eAAe,EAAE;AACnB,CAAC;AAAA+I,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAvHkBzJ,QAAQ,CAGpB0J,SAAS,GAAAxC,aAAA,CAAAA,aAAA;EACd7G,KAAK,EAAE5B,SAAS,CAACkL,MAAM;EACvB9G,EAAE,EAAEpE,SAAS,CAACkL,MAAM;EACpBzE,KAAK,EAAEzG,SAAS,CAACmL,SAAS,CAAC,CACzBnL,SAAS,CAACkL,MAAM,EAChBlL,SAAS,CAACoL,IAAI,EACdpL,SAAS,CAACqL,IAAI,CACf,CAAC;EACF3E,eAAe,EAAE1G,SAAS,CAACsL,KAAK,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;EAC5D3E,aAAa,EAAE3G,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAACkL,MAAM,EAAElL,SAAS,CAACuL,IAAI,CAAC,CAAC;EACtE3E,MAAM,EAAE5G,SAAS,CAACmL,SAAS,CAAC,CAC1BnL,SAAS,CAACkL,MAAM,EAChBlL,SAAS,CAACuL,IAAI,EACdvL,SAAS,CAACoL,IAAI,EACdpL,SAAS,CAACqL,IAAI,CACf,CAAC;EACFrJ,cAAc,EAAEhC,SAAS,CAACkL,MAAM;EAChCrE,YAAY,EAAE7G,SAAS,CAACkL,MAAM;EAC9BpE,YAAY,EAAE9G,SAAS,CAACwL,MAAM;EAC9BzE,mBAAmB,EAAE/G,SAAS,CAACmL,SAAS,CAAC,CACvCnL,SAAS,CAACkL,MAAM,EAChBlL,SAAS,CAACuL,IAAI,CACf,CAAC;EACFvE,YAAY,EAAEhH,SAAS,CAACyL,KAAK,CAAC;IAC5BrH,EAAE,EAAEpE,SAAS,CAACkL,MAAM;IACpBQ,OAAO,EAAE1L,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAACkL,MAAM,EAAElL,SAAS,CAACqL,IAAI,CAAC;EACjE,CAAC,CAAC;EACFpE,MAAM,EAAEjH,SAAS,CAACmL,SAAS,CAAC,CAC1BnL,SAAS,CAACkL,MAAM,EAChBlL,SAAS,CAACoL,IAAI,EACdpL,SAAS,CAACqL,IAAI,CACf,CAAC;EACFjE,WAAW,EAAEpH,SAAS,CAACqL,IAAI;EAC3BhE,eAAe,EAAErH,SAAS,CAACuL,IAAI;EAC/BjE,KAAK,EAAEtH,SAAS,CAACsL,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EACzC/D,IAAI,EAAEvH,SAAS,CAACsL,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;EACnDnE,OAAO,EAAEnH,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAACkL,MAAM,EAAElL,SAAS,CAACuL,IAAI,CAAC,CAAC;EAChErE,QAAQ,EAAElH,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAACkL,MAAM,EAAElL,SAAS,CAACuL,IAAI,CAAC,CAAC;EACjEpF,QAAQ,EAAEnG,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAACkL,MAAM,EAAElL,SAAS,CAACuL,IAAI,CAAC,CAAC;EACjE3D,gBAAgB,EAAE5H,SAAS,CAACmL,SAAS,CAAC,CACpCnL,SAAS,CAACyL,KAAK,CAAC;IACdnB,GAAG,EAAEtK,SAAS,CAAC2L,MAAM;IACrBC,OAAO,EAAE5L,SAAS,CAACsL,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC;EACzC,CAAC,CAAC,EACFtL,SAAS,CAAC2L,MAAM,CACjB,CAAC;EACF9I,UAAU,EAAE7C,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAACkL,MAAM,EAAElL,SAAS,CAACuL,IAAI,CAAC,CAAC;EACnEvH,mBAAmB,EAAEhE,SAAS,CAACmL,SAAS,CAAC,CACvCnL,SAAS,CAACkL,MAAM,EAChBlL,SAAS,CAAC2L,MAAM,CACjB,CAAC;EACFnE,cAAc,EAAExH,SAAS,CAACkL,MAAM;EAChCxD,mBAAmB,EAAE1H,SAAS,CAACmL,SAAS,CAAC,CACvCnL,SAAS,CAACkL,MAAM,EAChBlL,SAAS,CAACwL,MAAM,CACjB,CAAC;EACF/D,QAAQ,EAAEzH,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAACkL,MAAM,EAAElL,SAAS,CAACuL,IAAI,CAAC,CAAC;EACjExI,IAAI,EAAE/C,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAAC2L,MAAM,EAAE3L,SAAS,CAACkL,MAAM,CAAC,CAAC;EAC/DT,IAAI,EAAEzK,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAAC2L,MAAM,EAAE3L,SAAS,CAACkL,MAAM,CAAC,CAAC;EAC/DrG,SAAS,EAAE7E,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAACoL,IAAI,EAAEpL,SAAS,CAACwL,MAAM,CAAC;AAAC,GAE/DvK,gBAAgB;EAEnB0G,SAAS,EAAE3H,SAAS,CAACkL,MAAM;EAC3BpD,gBAAgB,EAAE9H,SAAS,CAACmL,SAAS,CAAC,CACpCnL,SAAS,CAACoL,IAAI,EACdpL,SAAS,CAACqL,IAAI,CACf,CAAC;EACFxD,QAAQ,EAAE7H,SAAS,CAACmL,SAAS,CAAC,CAACnL,SAAS,CAACqL,IAAI,EAAErL,SAAS,CAACoL,IAAI,CAAC,CAAC;EAE/DV,SAAS,EAAE1K,SAAS,CAACoL,IAAI;EACzBT,QAAQ,EAAE3K,SAAS,CAACoL,IAAI;EACxBR,OAAO,EAAE5K,SAAS,CAACoL,IAAI;EACvBP,WAAW,EAAE7K,SAAS,CAACoL,IAAI;EAC3BrJ,eAAe,EAAE/B,SAAS,CAACoL;AAAI;AAofnC7J,QAAQ,CAACsK,YAAY,GAAG,IAAI;AAC5BtK,QAAQ,CAACuK,qBAAqB,GAAG,IAAI"}
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
--dt-max-width: 40%;
|
|
152
152
|
--dd-max-width: calc(60% - 1rem); // minus margin-right and the gap
|
|
153
153
|
|
|
154
|
-
// We
|
|
154
|
+
// We cannot use gap: 0.5rem because of our wrapper "__item"
|
|
155
155
|
display: flex;
|
|
156
156
|
flex-wrap: wrap;
|
|
157
157
|
max-width: 60ch; // to enhance readability
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * as postalCode from './postalCode';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * as postalCode from './postalCode';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["postalCode"],"sources":["../../../../../../src/extensions/forms/Connectors/Bring/index.ts"],"sourcesContent":["export * as postalCode from './postalCode'\n"],"mappings":"AAAA,OAAO,KAAKA,UAAU,MAAM,cAAc"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { UseFieldProps } from '../../types';
|
|
2
|
+
import { GeneralConfig, HandlerConfig, PreResponseResolver, ResponseResolver } from '../createContext';
|
|
3
|
+
export declare const supportedCountryCodes: string[];
|
|
4
|
+
export declare const unsupportedCountryCodeMessage = "Postal code verification is not supported for {countryCode}.";
|
|
5
|
+
export type PostalCodeResolverData = {
|
|
6
|
+
postal_codes: {
|
|
7
|
+
postal_code: string;
|
|
8
|
+
city: string;
|
|
9
|
+
}[];
|
|
10
|
+
};
|
|
11
|
+
export type PostalCodeResolverPayload = {
|
|
12
|
+
city: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const preResponseResolver: PreResponseResolver;
|
|
15
|
+
export declare const responseResolver: ResponseResolver<PostalCodeResolverData, PostalCodeResolverPayload>;
|
|
16
|
+
export declare function autofill(generalConfig: GeneralConfig, handlerConfig?: HandlerConfig & {
|
|
17
|
+
cityPath: string;
|
|
18
|
+
}): UseFieldProps<string>['onChange'];
|
|
19
|
+
export declare function validator(generalConfig: GeneralConfig, handlerConfig?: HandlerConfig): UseFieldProps<string>['onChangeValidator'] | UseFieldProps<string>['onBlurValidator'];
|
|
20
|
+
export declare function getMockData(countryCode?: string): {
|
|
21
|
+
postal_codes: {
|
|
22
|
+
city: string;
|
|
23
|
+
postal_code: string;
|
|
24
|
+
}[];
|
|
25
|
+
};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { FormError } from '../../utils';
|
|
2
|
+
import { fetchData, getCountryCodeValue, handleCountryPath } from '../createContext';
|
|
3
|
+
export const supportedCountryCodes = ['NO', 'DK', 'SE', 'FI', 'NL', 'DE', 'US', 'BE', 'FO', 'GL', 'IS', 'SJ'];
|
|
4
|
+
export const unsupportedCountryCodeMessage = 'Postal code verification is not supported for {countryCode}.';
|
|
5
|
+
export const preResponseResolver = ({
|
|
6
|
+
value
|
|
7
|
+
}) => {
|
|
8
|
+
if (!value) {
|
|
9
|
+
return {
|
|
10
|
+
postal_codes: []
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
export const responseResolver = (data, handlerConfig) => {
|
|
15
|
+
var _data$postal_codes;
|
|
16
|
+
const resolver = handlerConfig === null || handlerConfig === void 0 ? void 0 : handlerConfig.responseResolver;
|
|
17
|
+
if (typeof resolver === 'function') {
|
|
18
|
+
return resolver(data);
|
|
19
|
+
}
|
|
20
|
+
const {
|
|
21
|
+
postal_code,
|
|
22
|
+
city
|
|
23
|
+
} = (data === null || data === void 0 ? void 0 : (_data$postal_codes = data.postal_codes) === null || _data$postal_codes === void 0 ? void 0 : _data$postal_codes[0]) || {};
|
|
24
|
+
return {
|
|
25
|
+
matcher: value => value === postal_code,
|
|
26
|
+
payload: {
|
|
27
|
+
city
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export function autofill(generalConfig, handlerConfig) {
|
|
32
|
+
const abortControllerRef = {
|
|
33
|
+
current: null
|
|
34
|
+
};
|
|
35
|
+
return async function autofillHandler(value, additionalArgs) {
|
|
36
|
+
if (!(typeof value === 'string' && value.length >= 4)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const {
|
|
40
|
+
countryCode
|
|
41
|
+
} = handleCountryPath({
|
|
42
|
+
value,
|
|
43
|
+
additionalArgs,
|
|
44
|
+
handler: autofillHandler
|
|
45
|
+
});
|
|
46
|
+
if (countryCode && !supportedCountryCodes.includes(countryCode)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
var _handlerConfig$preRes;
|
|
51
|
+
const parameters = {
|
|
52
|
+
countryCode: String(countryCode).toLowerCase()
|
|
53
|
+
};
|
|
54
|
+
const {
|
|
55
|
+
data
|
|
56
|
+
} = await fetchData(value, {
|
|
57
|
+
generalConfig,
|
|
58
|
+
parameters,
|
|
59
|
+
abortControllerRef,
|
|
60
|
+
preResponseResolver: (_handlerConfig$preRes = handlerConfig === null || handlerConfig === void 0 ? void 0 : handlerConfig.preResponseResolver) !== null && _handlerConfig$preRes !== void 0 ? _handlerConfig$preRes : preResponseResolver
|
|
61
|
+
});
|
|
62
|
+
const onMatch = payload => {
|
|
63
|
+
const {
|
|
64
|
+
cityPath
|
|
65
|
+
} = handlerConfig || {};
|
|
66
|
+
if (cityPath) {
|
|
67
|
+
if (!additionalArgs.dataContext) {
|
|
68
|
+
throw new Error('No data context found in the postalCode connector');
|
|
69
|
+
}
|
|
70
|
+
additionalArgs.dataContext.handlePathChangeUnvalidated(cityPath, payload.city);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const {
|
|
74
|
+
matcher,
|
|
75
|
+
payload
|
|
76
|
+
} = responseResolver(data, handlerConfig);
|
|
77
|
+
const match = matcher(value);
|
|
78
|
+
if (match) {
|
|
79
|
+
return onMatch(payload);
|
|
80
|
+
}
|
|
81
|
+
} catch (error) {
|
|
82
|
+
return error;
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export function validator(generalConfig, handlerConfig) {
|
|
87
|
+
const abortControllerRef = {
|
|
88
|
+
current: null
|
|
89
|
+
};
|
|
90
|
+
return async function validatorHandler(value, additionalArgs) {
|
|
91
|
+
if (!(typeof value === 'string' && value.length >= 4)) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const {
|
|
95
|
+
countryCode
|
|
96
|
+
} = getCountryCodeValue({
|
|
97
|
+
additionalArgs
|
|
98
|
+
});
|
|
99
|
+
if (countryCode && !supportedCountryCodes.includes(countryCode)) {
|
|
100
|
+
return new Error(unsupportedCountryCodeMessage.replace('{countryCode}', countryCode));
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
var _handlerConfig$preRes2;
|
|
104
|
+
const parameters = {
|
|
105
|
+
countryCode: String(countryCode).toLowerCase()
|
|
106
|
+
};
|
|
107
|
+
const {
|
|
108
|
+
data,
|
|
109
|
+
status
|
|
110
|
+
} = await fetchData(value, {
|
|
111
|
+
generalConfig,
|
|
112
|
+
parameters,
|
|
113
|
+
abortControllerRef,
|
|
114
|
+
preResponseResolver: (_handlerConfig$preRes2 = handlerConfig === null || handlerConfig === void 0 ? void 0 : handlerConfig.preResponseResolver) !== null && _handlerConfig$preRes2 !== void 0 ? _handlerConfig$preRes2 : preResponseResolver
|
|
115
|
+
});
|
|
116
|
+
const onMatch = () => {
|
|
117
|
+
return new FormError('PostalCodeAndCity.invalidCode');
|
|
118
|
+
};
|
|
119
|
+
const {
|
|
120
|
+
matcher
|
|
121
|
+
} = responseResolver(data, handlerConfig);
|
|
122
|
+
const match = matcher(value);
|
|
123
|
+
if (status !== 400 && !match) {
|
|
124
|
+
return onMatch();
|
|
125
|
+
}
|
|
126
|
+
} catch (error) {
|
|
127
|
+
return error;
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
export function getMockData(countryCode) {
|
|
132
|
+
switch (String(countryCode).toUpperCase()) {
|
|
133
|
+
case 'SE':
|
|
134
|
+
return {
|
|
135
|
+
postal_codes: [{
|
|
136
|
+
city: 'Stockholm',
|
|
137
|
+
postal_code: '11432'
|
|
138
|
+
}]
|
|
139
|
+
};
|
|
140
|
+
case 'NO':
|
|
141
|
+
default:
|
|
142
|
+
return {
|
|
143
|
+
postal_codes: [{
|
|
144
|
+
city: 'Vollen',
|
|
145
|
+
postal_code: '1391'
|
|
146
|
+
}]
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=postalCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postalCode.js","names":["FormError","fetchData","getCountryCodeValue","handleCountryPath","supportedCountryCodes","unsupportedCountryCodeMessage","preResponseResolver","value","postal_codes","responseResolver","data","handlerConfig","_data$postal_codes","resolver","postal_code","city","matcher","payload","autofill","generalConfig","abortControllerRef","current","autofillHandler","additionalArgs","length","countryCode","handler","includes","_handlerConfig$preRes","parameters","String","toLowerCase","onMatch","cityPath","dataContext","Error","handlePathChangeUnvalidated","match","error","validator","validatorHandler","replace","_handlerConfig$preRes2","status","getMockData","toUpperCase"],"sources":["../../../../../../src/extensions/forms/Connectors/Bring/postalCode.ts"],"sourcesContent":["import type { UseFieldProps } from '../../types'\nimport { FormError } from '../../utils'\nimport {\n GeneralConfig,\n HandlerConfig,\n PreResponseResolver,\n ResponseResolver,\n fetchData,\n getCountryCodeValue,\n handleCountryPath,\n} from '../createContext'\n\nexport const supportedCountryCodes = [\n 'NO', // Norway\n 'DK', // Denmark\n 'SE', // Sweden\n 'FI', // Finland\n 'NL', // Netherlands\n 'DE', // Germany\n 'US', // United States\n 'BE', // Belgium\n 'FO', // Faroe Islands\n 'GL', // Greenland\n 'IS', // Iceland\n 'SJ', // Svalbard and Jan Mayen\n]\n\nexport const unsupportedCountryCodeMessage =\n 'Postal code verification is not supported for {countryCode}.'\n\nexport type PostalCodeResolverData = {\n postal_codes: { postal_code: string; city: string }[]\n}\nexport type PostalCodeResolverPayload = {\n city: string\n}\n\nexport const preResponseResolver: PreResponseResolver = ({ value }) => {\n if (!value) {\n return { postal_codes: [] }\n }\n}\n\nexport const responseResolver: ResponseResolver<\n PostalCodeResolverData,\n PostalCodeResolverPayload\n> = (data, handlerConfig) => {\n const resolver = handlerConfig?.responseResolver\n if (typeof resolver === 'function') {\n return resolver(data) as ReturnType<typeof resolver> & {\n payload: PostalCodeResolverPayload\n }\n }\n\n const { postal_code, city } = data?.postal_codes?.[0] || {}\n\n return {\n matcher: (value) => value === postal_code,\n payload: { city },\n }\n}\n\nexport function autofill(\n generalConfig: GeneralConfig,\n handlerConfig?: HandlerConfig & { cityPath: string }\n): UseFieldProps<string>['onChange'] {\n const abortControllerRef = { current: null }\n\n return async function autofillHandler(value, additionalArgs) {\n if (!(typeof value === 'string' && value.length >= 4)) {\n return // stop here\n }\n\n const { countryCode } = handleCountryPath({\n value,\n additionalArgs,\n handler: autofillHandler,\n })\n\n if (countryCode && !supportedCountryCodes.includes(countryCode)) {\n return // stop here\n }\n\n try {\n const parameters = {\n countryCode: String(countryCode).toLowerCase(),\n }\n const { data } = await fetchData<PostalCodeResolverData>(value, {\n generalConfig,\n parameters,\n abortControllerRef,\n preResponseResolver:\n handlerConfig?.preResponseResolver ?? preResponseResolver,\n })\n\n const onMatch = (payload: PostalCodeResolverPayload) => {\n const { cityPath } = handlerConfig || {}\n if (cityPath) {\n if (!additionalArgs.dataContext) {\n throw new Error(\n 'No data context found in the postalCode connector'\n )\n }\n additionalArgs.dataContext.handlePathChangeUnvalidated(\n cityPath,\n payload.city\n )\n }\n }\n\n const { matcher, payload } = responseResolver(data, handlerConfig)\n const match = matcher(value)\n\n if (match) {\n return onMatch(payload)\n }\n } catch (error) {\n return error\n }\n }\n}\n\nexport function validator(\n generalConfig: GeneralConfig,\n handlerConfig?: HandlerConfig\n):\n | UseFieldProps<string>['onChangeValidator']\n | UseFieldProps<string>['onBlurValidator'] {\n const abortControllerRef = { current: null }\n\n return async function validatorHandler(value, additionalArgs) {\n if (!(typeof value === 'string' && value.length >= 4)) {\n return // stop here\n }\n\n const { countryCode } = getCountryCodeValue({ additionalArgs })\n\n if (countryCode && !supportedCountryCodes.includes(countryCode)) {\n return new Error(\n unsupportedCountryCodeMessage.replace('{countryCode}', countryCode)\n )\n }\n\n try {\n const parameters = {\n countryCode: String(countryCode).toLowerCase(),\n }\n const { data, status } = await fetchData<PostalCodeResolverData>(\n value,\n {\n generalConfig,\n parameters,\n abortControllerRef,\n preResponseResolver:\n handlerConfig?.preResponseResolver ?? preResponseResolver,\n }\n )\n\n const onMatch = () => {\n return new FormError('PostalCodeAndCity.invalidCode')\n }\n\n const { matcher } = responseResolver(data, handlerConfig)\n const match = matcher(value)\n\n if (status !== 400 && !match) {\n return onMatch()\n }\n } catch (error) {\n return error\n }\n }\n}\n\nexport function getMockData(countryCode?: string) {\n switch (String(countryCode).toUpperCase()) {\n case 'SE':\n return {\n postal_codes: [\n {\n city: 'Stockholm',\n postal_code: '11432',\n },\n ],\n }\n case 'NO':\n default:\n return {\n postal_codes: [\n {\n city: 'Vollen',\n postal_code: '1391',\n },\n ],\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ReceiveAdditionalEventArgs } from '../types';
|
|
2
|
+
export type UrlSecondParameter = {
|
|
3
|
+
countryCode: string;
|
|
4
|
+
};
|
|
5
|
+
export type GeneralConfig = {
|
|
6
|
+
fetchConfig?: {
|
|
7
|
+
url: string | ((value: string, { countryCode }: UrlSecondParameter) => string | Promise<string>);
|
|
8
|
+
headers?: HeadersInit;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare function createContext<GeneralConfigGeneric = GeneralConfig>(generalConfig?: GeneralConfigGeneric): {
|
|
12
|
+
withConfig<HandlerMethod extends (generalConfig: GeneralConfigGeneric, handlerConfig: unknown) => ReturnType<HandlerMethod>>(fn: HandlerMethod, handlerConfig?: Parameters<HandlerMethod>[1]): ReturnType<HandlerMethod>;
|
|
13
|
+
};
|
|
14
|
+
export type HandlerConfig = {
|
|
15
|
+
preResponseResolver?: PreResponseResolver;
|
|
16
|
+
responseResolver?: ResponseResolver;
|
|
17
|
+
};
|
|
18
|
+
export type PreResponseResolver = (fromField: {
|
|
19
|
+
value: string;
|
|
20
|
+
}) => unknown;
|
|
21
|
+
export type ResponseResolver<Response = unknown, Payload = Record<string, unknown>> = (response: Response, handlerConfig?: HandlerConfig) => {
|
|
22
|
+
/**
|
|
23
|
+
* The matcher to be used to determine if and how the connector,
|
|
24
|
+
* such as an validator for `onChangeValidator` or `onBlurValidator`,
|
|
25
|
+
* should validate the field value.
|
|
26
|
+
*/
|
|
27
|
+
matcher?: (value: string) => boolean;
|
|
28
|
+
/**
|
|
29
|
+
* The payload to be returned and used by the connector.
|
|
30
|
+
*/
|
|
31
|
+
payload?: Payload;
|
|
32
|
+
};
|
|
33
|
+
export type FetchDataFromAPIOptions = {
|
|
34
|
+
generalConfig: GeneralConfig;
|
|
35
|
+
parameters?: UrlSecondParameter;
|
|
36
|
+
abortControllerRef?: {
|
|
37
|
+
current: null | AbortController;
|
|
38
|
+
};
|
|
39
|
+
preResponseResolver?: PreResponseResolver;
|
|
40
|
+
};
|
|
41
|
+
export type FetchDataReturnValue<Data = unknown> = {
|
|
42
|
+
data: Data;
|
|
43
|
+
status: number;
|
|
44
|
+
};
|
|
45
|
+
export declare function fetchData<Data = unknown>(value: string, options: FetchDataFromAPIOptions): Promise<FetchDataReturnValue<Data>>;
|
|
46
|
+
export declare function getCountryCodeValue({ additionalArgs, }: {
|
|
47
|
+
additionalArgs: ReceiveAdditionalEventArgs<unknown>;
|
|
48
|
+
}): {
|
|
49
|
+
countryCode: string;
|
|
50
|
+
countryCodeValue: any;
|
|
51
|
+
};
|
|
52
|
+
export declare function handleCountryPath({ value, additionalArgs, handler, }: {
|
|
53
|
+
value: string;
|
|
54
|
+
additionalArgs: ReceiveAdditionalEventArgs<unknown>;
|
|
55
|
+
handler: (value: string, additionalArgs: ReceiveAdditionalEventArgs<unknown>) => void;
|
|
56
|
+
}): {
|
|
57
|
+
countryCode: string;
|
|
58
|
+
};
|