@dnb/eufemia 10.52.0 → 10.53.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 +35 -0
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/progress-indicator/ProgressIndicator.js +2 -2
- package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/cjs/components/upload/UploadVerify.js +2 -2
- package/cjs/components/upload/UploadVerify.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +3 -4
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +5 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +51 -11
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +25 -0
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +61 -17
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Slider/Slider.js +3 -1
- package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +21 -3
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js +51 -27
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
- package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +89 -73
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +12 -12
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +24 -24
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js +3 -2
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -1
- package/cjs/extensions/forms/constants/locales/index.d.ts +4 -2
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -2
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +4 -2
- package/cjs/extensions/forms/hooks/useFieldProps.js +40 -8
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/useTranslation.d.ts +4 -1
- package/cjs/extensions/forms/hooks/useTranslation.js +6 -3
- package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.d.ts +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.js +2 -2
- package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +6 -0
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +2 -1
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/shared/Context.d.ts +4 -4
- package/cjs/shared/Context.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/defaults.d.ts +1 -0
- package/cjs/shared/defaults.js +3 -1
- package/cjs/shared/defaults.js.map +1 -1
- package/cjs/shared/useTranslation.d.ts +11 -4
- package/cjs/shared/useTranslation.js +68 -22
- package/cjs/shared/useTranslation.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +6 -0
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +6 -0
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +6 -0
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +12 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -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 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -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 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +6 -0
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +6 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/progress-indicator/ProgressIndicator.js +2 -2
- package/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/components/upload/UploadVerify.js +2 -2
- package/components/upload/UploadVerify.js.map +1 -1
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/progress-indicator/ProgressIndicator.js +2 -2
- package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/es/components/upload/UploadVerify.js +2 -2
- package/es/components/upload/UploadVerify.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +1 -0
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +3 -4
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +5 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +52 -12
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +18 -0
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +59 -17
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/es/extensions/forms/Field/Slider/Slider.js +3 -1
- package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +21 -3
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js +52 -28
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
- package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +89 -70
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +12 -12
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +24 -24
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -1
- package/es/extensions/forms/constants/locales/en-GB.js +3 -2
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +2 -1
- package/es/extensions/forms/constants/locales/index.d.ts +4 -2
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
- package/es/extensions/forms/constants/locales/nb-NO.js +3 -2
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.d.ts +4 -2
- package/es/extensions/forms/hooks/useFieldProps.js +40 -9
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/useTranslation.d.ts +4 -1
- package/es/extensions/forms/hooks/useTranslation.js +7 -4
- package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
- package/es/extensions/forms/hooks/useValueProps.d.ts +1 -1
- package/es/extensions/forms/hooks/useValueProps.js +2 -2
- package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +6 -0
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +2 -1
- package/es/extensions/forms/types.js.map +1 -1
- package/es/shared/Context.d.ts +4 -4
- package/es/shared/Context.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/defaults.d.ts +1 -0
- package/es/shared/defaults.js +1 -0
- package/es/shared/defaults.js.map +1 -1
- package/es/shared/useTranslation.d.ts +11 -4
- package/es/shared/useTranslation.js +64 -22
- package/es/shared/useTranslation.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +6 -0
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +6 -0
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +6 -0
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +12 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -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 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -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 -0
- package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +6 -0
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +6 -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 +5 -5
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -0
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +3 -4
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +5 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +52 -12
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +18 -0
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +59 -17
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/extensions/forms/Field/Slider/Slider.js +3 -1
- package/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +21 -3
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
- package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +52 -28
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
- package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +89 -73
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +12 -12
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +24 -24
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +2 -1
- package/extensions/forms/constants/locales/en-GB.js +3 -2
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +2 -1
- package/extensions/forms/constants/locales/index.d.ts +4 -2
- package/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
- package/extensions/forms/constants/locales/nb-NO.js +3 -2
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.d.ts +4 -2
- package/extensions/forms/hooks/useFieldProps.js +41 -9
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/useTranslation.d.ts +4 -1
- package/extensions/forms/hooks/useTranslation.js +7 -4
- package/extensions/forms/hooks/useTranslation.js.map +1 -1
- package/extensions/forms/hooks/useValueProps.d.ts +1 -1
- package/extensions/forms/hooks/useValueProps.js +2 -2
- package/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +6 -0
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +2 -1
- package/extensions/forms/types.js.map +1 -1
- package/package.json +1 -1
- package/shared/Context.d.ts +4 -4
- package/shared/Context.js.map +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/defaults.d.ts +1 -0
- package/shared/defaults.js +1 -0
- package/shared/defaults.js.map +1 -1
- package/shared/useTranslation.d.ts +11 -4
- package/shared/useTranslation.js +64 -22
- package/shared/useTranslation.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +6 -0
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +6 -0
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +6 -0
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +12 -0
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -0
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +12 -0
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -0
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +12 -0
- package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +6 -0
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +6 -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 +5 -5
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BankAccountNumber.js","names":["React","useMemo","StringField","useErrorMessage","useTranslation","BankAccountNumber","props","
|
|
1
|
+
{"version":3,"file":"BankAccountNumber.js","names":["React","useCallback","useMemo","StringField","useErrorMessage","useTranslation","BankAccountNumber","props","errorBankAccountNumber","errorBankAccountNumberLength","errorRequired","label","errorMessages","path","required","pattern","bankAccountNumberValidator","value","undefined","bankAccountNoIs11Digits","length","Error","isValidAccountNumber","validate","omitMask","validator","onBlurValidator","labelProp","width","mask","onBlurValidatorToUse","StringFieldProps","_objectSpread","className","inputMode","exportValidators","createElement","digits","checkDigit","sum","i","parseInt","charAt","result","finalCheckDigit","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\n\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\nimport { Validator } from '../../types'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n validate?: boolean\n omitMask?: boolean\n onBlurValidator?: Validator<string> | false\n}\n\nfunction BankAccountNumber(props: Props) {\n const {\n errorBankAccountNumber,\n errorBankAccountNumberLength,\n errorRequired,\n label,\n } = useTranslation().BankAccountNumber\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: errorRequired,\n pattern: errorBankAccountNumber,\n errorBankAccountNumber,\n errorBankAccountNumberLength,\n })\n\n const bankAccountNumberValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n const bankAccountNoIs11Digits = value?.length === 11\n\n if (!bankAccountNoIs11Digits) {\n return Error(errorBankAccountNumberLength)\n }\n\n if (bankAccountNoIs11Digits && !isValidAccountNumber(value)) {\n return Error(errorBankAccountNumber)\n }\n }\n },\n [errorBankAccountNumber, errorBankAccountNumberLength]\n )\n\n const {\n validate = true,\n omitMask,\n validator,\n onBlurValidator = bankAccountNumberValidator,\n label: labelProp,\n width,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n className: 'dnb-forms-field-bank-account-number',\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n validator: validate ? validator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: { bankAccountNumberValidator },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nfunction isValidAccountNumber(digits: string) {\n let checkDigit = 2\n let sum = 0\n\n for (let i = digits.length - 2; i >= 0; --i) {\n sum += parseInt(digits.charAt(i)) * checkDigit\n\n checkDigit += 1\n\n if (checkDigit > 7) {\n checkDigit = 2\n }\n }\n\n const result = 11 - (sum % 11)\n const finalCheckDigit = result === 11 ? 0 : result\n\n return parseInt(digits.charAt(digits.length - 1), 10) === finalCheckDigit\n}\n\nBankAccountNumber._supportsSpacingProps = true\nexport default BankAccountNumber\n"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const BankAccountNumberProperties = {
|
|
2
|
+
validate: {
|
|
3
|
+
doc: 'Using this prop you can disable the default validation.',
|
|
4
|
+
type: 'boolean',
|
|
5
|
+
status: 'optional'
|
|
6
|
+
},
|
|
7
|
+
help: {
|
|
8
|
+
doc: 'Provide a help button. Object consisting of `title` and `content`.',
|
|
9
|
+
type: 'object',
|
|
10
|
+
status: 'optional'
|
|
11
|
+
},
|
|
12
|
+
onBlurValidator: {
|
|
13
|
+
doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to bank account number validation, using `bankAccountNumberValidator`. Can be disabled using `false`.',
|
|
14
|
+
type: 'function',
|
|
15
|
+
status: 'optional'
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=BankAccountNumberDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BankAccountNumberDocs.js","names":["BankAccountNumberProperties","validate","doc","type","status","help","onBlurValidator"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const BankAccountNumberProperties: PropertiesTableProps = {\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\n status: 'optional',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n onBlurValidator: {\n doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to bank account number validation, using `bankAccountNumberValidator`. Can be disabled using `false`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,2BAAiD,GAAG;EAC/DC,QAAQ,EAAE;IACRC,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,8aAA8a;IACnbC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -10,7 +10,7 @@ export const OrganizationNumberProperties = {
|
|
|
10
10
|
status: 'optional'
|
|
11
11
|
},
|
|
12
12
|
onBlurValidator: {
|
|
13
|
-
doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to organization number validation, using `organizationNumberValidator`.',
|
|
13
|
+
doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to organization number validation, using `organizationNumberValidator`. Can be disabled using `false`.',
|
|
14
14
|
type: 'function',
|
|
15
15
|
status: 'optional'
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationNumberDocs.js","names":["OrganizationNumberProperties","validate","doc","type","status","help","onBlurValidator"],"sources":["../../../../../../src/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const OrganizationNumberProperties: PropertiesTableProps = {\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\n status: 'optional',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n onBlurValidator: {\n doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to organization number validation, using `organizationNumberValidator`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,4BAAkD,GAAG;EAChEC,QAAQ,EAAE;IACRC,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE
|
|
1
|
+
{"version":3,"file":"OrganizationNumberDocs.js","names":["OrganizationNumberProperties","validate","doc","type","status","help","onBlurValidator"],"sources":["../../../../../../src/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const OrganizationNumberProperties: PropertiesTableProps = {\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\n status: 'optional',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n onBlurValidator: {\n doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to organization number validation, using `organizationNumberValidator`. Can be disabled using `false`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,4BAAkD,GAAG;EAChEC,QAAQ,EAAE;IACRC,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,+aAA+a;IACpbC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { Props as FieldBlockProps } from '../../FieldBlock';
|
|
2
2
|
import { Props as StringFieldProps } from '../String';
|
|
3
|
-
import { FieldHelpProps } from '../../types';
|
|
4
|
-
export type Props = FieldHelpProps & Omit<FieldBlockProps, 'children'> & Partial<Record<'postalCode' | 'city', StringFieldProps
|
|
3
|
+
import { FieldHelpProps, Path } from '../../types';
|
|
4
|
+
export type Props = FieldHelpProps & Omit<FieldBlockProps, 'children'> & Partial<Record<'postalCode' | 'city', StringFieldProps>> & {
|
|
5
|
+
/**
|
|
6
|
+
* Defines which country the postal code and city is for.
|
|
7
|
+
* Setting it to anything other than `no` will remove the default norwegian postal code pattern.
|
|
8
|
+
* You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`.
|
|
9
|
+
* Default: `NO`
|
|
10
|
+
*/
|
|
11
|
+
country?: Path | string;
|
|
12
|
+
};
|
|
5
13
|
declare function PostalCodeAndCity(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
6
14
|
declare namespace PostalCodeAndCity {
|
|
7
15
|
var _supportsSpacingProps: boolean;
|
|
@@ -1,52 +1,94 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
-
const _excluded = ["postalCode", "city", "help", "width"];
|
|
4
|
+
const _excluded = ["postalCode", "city", "help", "width", "country"];
|
|
5
5
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6
6
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
|
-
import React from 'react';
|
|
7
|
+
import React, { useCallback } from 'react';
|
|
8
8
|
import classnames from 'classnames';
|
|
9
9
|
import StringField from '../String';
|
|
10
10
|
import CompositionField from '../Composition';
|
|
11
11
|
import useTranslation from '../../hooks/useTranslation';
|
|
12
|
+
import useDataValue from '../../hooks/useDataValue';
|
|
13
|
+
import { COUNTRY as defaultCountry } from '../../../../shared/defaults';
|
|
12
14
|
function PostalCodeAndCity(props) {
|
|
13
|
-
var _postalCode$pattern, _postalCode$label, _postalCode$placehold, _city$label, _city$pattern;
|
|
14
15
|
const translations = useTranslation();
|
|
16
|
+
const {
|
|
17
|
+
getSourceValue
|
|
18
|
+
} = useDataValue();
|
|
15
19
|
const {
|
|
16
20
|
postalCode = {},
|
|
17
21
|
city = {},
|
|
18
22
|
help,
|
|
19
|
-
width = 'large'
|
|
23
|
+
width = 'large',
|
|
24
|
+
country = defaultCountry
|
|
20
25
|
} = props,
|
|
21
26
|
fieldBlockProps = _objectWithoutProperties(props, _excluded);
|
|
27
|
+
const {
|
|
28
|
+
pattern: cityPattern,
|
|
29
|
+
className: cityClassName,
|
|
30
|
+
label: cityLabel,
|
|
31
|
+
width: cityWidth,
|
|
32
|
+
errorMessages: cityErrorMessages
|
|
33
|
+
} = city;
|
|
34
|
+
const countryValue = getSourceValue(country);
|
|
35
|
+
const handleDefaults = useCallback(postalCode => {
|
|
36
|
+
const props = {};
|
|
37
|
+
switch (countryValue) {
|
|
38
|
+
case defaultCountry:
|
|
39
|
+
case 'DK':
|
|
40
|
+
case 'CH':
|
|
41
|
+
{
|
|
42
|
+
props.mask = [/\d/, /\d/, /\d/, /\d/];
|
|
43
|
+
props.pattern = '^[0-9]{4}$';
|
|
44
|
+
props.placeholder = '0000';
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
default:
|
|
48
|
+
props.width = '8rem';
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
return _objectSpread(_objectSpread({}, props), postalCode);
|
|
52
|
+
}, [countryValue]);
|
|
53
|
+
const {
|
|
54
|
+
mask: postalCodeMask,
|
|
55
|
+
pattern: postalCodePattern,
|
|
56
|
+
placeholder: postalCodePlaceHolder,
|
|
57
|
+
className: postalCodeClassName,
|
|
58
|
+
label: postalCodeLabel,
|
|
59
|
+
width: postalCodeWidth,
|
|
60
|
+
errorMessages: postalCodeErrorMessages
|
|
61
|
+
} = handleDefaults(postalCode);
|
|
62
|
+
const postalCodeValidationProps = {
|
|
63
|
+
mask: postalCodeMask,
|
|
64
|
+
pattern: postalCodePattern,
|
|
65
|
+
placeholder: postalCodePlaceHolder
|
|
66
|
+
};
|
|
22
67
|
return React.createElement(CompositionField, _extends({
|
|
23
68
|
className: classnames('dnb-forms-field-postal-code-and-city', props.className)
|
|
24
69
|
}, fieldBlockProps, {
|
|
25
70
|
width: width
|
|
26
|
-
}), React.createElement(StringField, _extends({}, postalCode, {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
className: classnames('dnb-forms-field-postal-code-and-city__postal-code', postalCode.className),
|
|
30
|
-
label: (_postalCode$label = postalCode.label) !== null && _postalCode$label !== void 0 ? _postalCode$label : translations.PostalCode.label,
|
|
71
|
+
}), React.createElement(StringField, _extends({}, postalCode, postalCodeValidationProps, {
|
|
72
|
+
className: classnames('dnb-forms-field-postal-code-and-city__postal-code', postalCodeClassName),
|
|
73
|
+
label: postalCodeLabel !== null && postalCodeLabel !== void 0 ? postalCodeLabel : translations.PostalCode.label,
|
|
31
74
|
errorMessages: _objectSpread({
|
|
32
75
|
required: translations.PostalCode.errorRequired,
|
|
33
76
|
pattern: translations.PostalCode.errorPattern
|
|
34
|
-
},
|
|
35
|
-
|
|
36
|
-
width: false,
|
|
77
|
+
}, postalCodeErrorMessages),
|
|
78
|
+
width: postalCodeWidth !== null && postalCodeWidth !== void 0 ? postalCodeWidth : false,
|
|
37
79
|
inputClassName: "dnb-forms-field-postal-code-and-city__postal-code-input",
|
|
38
80
|
inputMode: "numeric",
|
|
39
81
|
autoComplete: "postal-code"
|
|
40
82
|
})), React.createElement(StringField, _extends({}, city, {
|
|
41
|
-
className: classnames('dnb-forms-field-postal-code-and-city__city',
|
|
42
|
-
label:
|
|
83
|
+
className: classnames('dnb-forms-field-postal-code-and-city__city', cityClassName),
|
|
84
|
+
label: cityLabel !== null && cityLabel !== void 0 ? cityLabel : translations.City.label,
|
|
43
85
|
errorMessages: _objectSpread({
|
|
44
86
|
required: translations.City.errorRequired,
|
|
45
87
|
pattern: translations.City.errorPattern
|
|
46
|
-
},
|
|
47
|
-
pattern:
|
|
88
|
+
}, cityErrorMessages),
|
|
89
|
+
pattern: cityPattern !== null && cityPattern !== void 0 ? cityPattern : '^[A-Za-zÆØÅæøå -]+$',
|
|
48
90
|
trim: true,
|
|
49
|
-
width:
|
|
91
|
+
width: cityWidth !== null && cityWidth !== void 0 ? cityWidth : 'stretch',
|
|
50
92
|
autoComplete: "address-level2",
|
|
51
93
|
help: help
|
|
52
94
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostalCodeAndCity.js","names":["React","classnames","StringField","CompositionField","useTranslation","
|
|
1
|
+
{"version":3,"file":"PostalCodeAndCity.js","names":["React","useCallback","classnames","StringField","CompositionField","useTranslation","useDataValue","COUNTRY","defaultCountry","PostalCodeAndCity","props","translations","getSourceValue","postalCode","city","help","width","country","fieldBlockProps","_objectWithoutProperties","_excluded","pattern","cityPattern","className","cityClassName","label","cityLabel","cityWidth","errorMessages","cityErrorMessages","countryValue","handleDefaults","mask","placeholder","_objectSpread","postalCodeMask","postalCodePattern","postalCodePlaceHolder","postalCodeClassName","postalCodeLabel","postalCodeWidth","postalCodeErrorMessages","postalCodeValidationProps","createElement","_extends","PostalCode","required","errorRequired","errorPattern","inputClassName","inputMode","autoComplete","City","trim","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport classnames from 'classnames'\nimport { Props as FieldBlockProps } from '../../FieldBlock'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport CompositionField from '../Composition'\nimport { FieldHelpProps, Path } from '../../types'\nimport useTranslation from '../../hooks/useTranslation'\nimport useDataValue from '../../hooks/useDataValue'\nimport { COUNTRY as defaultCountry } from '../../../../shared/defaults'\n\nexport type Props = FieldHelpProps &\n Omit<FieldBlockProps, 'children'> &\n Partial<Record<'postalCode' | 'city', StringFieldProps>> & {\n /**\n * Defines which country the postal code and city is for.\n * Setting it to anything other than `no` will remove the default norwegian postal code pattern.\n * You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`.\n * Default: `NO`\n */\n // Add type for all country codes?\n country?: Path | string\n }\n\nfunction PostalCodeAndCity(props: Props) {\n const translations = useTranslation()\n const { getSourceValue } = useDataValue()\n\n const {\n postalCode = {},\n city = {},\n help,\n width = 'large',\n country = defaultCountry,\n ...fieldBlockProps\n } = props\n\n const {\n pattern: cityPattern,\n className: cityClassName,\n label: cityLabel,\n width: cityWidth,\n errorMessages: cityErrorMessages,\n } = city\n\n const countryValue = getSourceValue(country)\n const handleDefaults = useCallback(\n (postalCode: StringFieldProps) => {\n const props: StringFieldProps = {}\n\n switch (countryValue) {\n case defaultCountry:\n case 'DK':\n case 'CH': {\n props.mask = [/\\d/, /\\d/, /\\d/, /\\d/]\n props.pattern = '^[0-9]{4}$'\n props.placeholder = '0000'\n break\n }\n default:\n props.width = '8rem'\n break\n }\n\n return { ...props, ...postalCode }\n },\n [countryValue]\n )\n\n const {\n mask: postalCodeMask,\n pattern: postalCodePattern,\n placeholder: postalCodePlaceHolder,\n className: postalCodeClassName,\n label: postalCodeLabel,\n width: postalCodeWidth,\n errorMessages: postalCodeErrorMessages,\n } = handleDefaults(postalCode)\n\n const postalCodeValidationProps = {\n mask: postalCodeMask,\n pattern: postalCodePattern,\n placeholder: postalCodePlaceHolder,\n }\n\n return (\n <CompositionField\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldBlockProps}\n width={width}\n >\n <StringField\n {...postalCode}\n {...postalCodeValidationProps}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCodeClassName\n )}\n label={postalCodeLabel ?? translations.PostalCode.label}\n errorMessages={{\n required: translations.PostalCode.errorRequired,\n pattern: translations.PostalCode.errorPattern,\n ...postalCodeErrorMessages,\n }}\n width={postalCodeWidth ?? false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n />\n <StringField\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n cityClassName\n )}\n label={cityLabel ?? translations.City.label}\n errorMessages={{\n required: translations.City.errorRequired,\n pattern: translations.City.errorPattern,\n ...cityErrorMessages,\n }}\n pattern={cityPattern ?? '^[A-Za-zÆØÅæøå -]+$'}\n trim\n width={cityWidth ?? 'stretch'}\n autoComplete=\"address-level2\"\n help={help}\n />\n </CompositionField>\n )\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export const PostalCodeAndCityProperties = {
|
|
2
|
+
country: {
|
|
3
|
+
doc: 'Defines which country the postal code and city is for, based on the ISO 3166-1 alpha-2 format i.e. `NO`, `DE` etc. ' + 'Setting it to anything other than `NO` will remove the default norwegian postal code pattern. ' + 'You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`. ' + 'Defaults to `NO`',
|
|
4
|
+
type: ['Path', 'string'],
|
|
5
|
+
status: 'optional'
|
|
6
|
+
},
|
|
2
7
|
postalCode: {
|
|
3
8
|
doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postcode.',
|
|
4
9
|
type: 'object',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostalCodeAndCityDocs.js","names":["PostalCodeAndCityProperties","
|
|
1
|
+
{"version":3,"file":"PostalCodeAndCityDocs.js","names":["PostalCodeAndCityProperties","country","doc","type","status","postalCode","city","help"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PostalCodeAndCityProperties: PropertiesTableProps = {\n country: {\n doc:\n 'Defines which country the postal code and city is for, based on the ISO 3166-1 alpha-2 format i.e. `NO`, `DE` etc. ' +\n 'Setting it to anything other than `NO` will remove the default norwegian postal code pattern. ' +\n 'You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`. ' +\n 'Defaults to `NO`',\n type: ['Path', 'string'],\n status: 'optional',\n },\n postalCode: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postcode.',\n type: 'object',\n status: 'required',\n },\n city: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for city.',\n type: 'object',\n status: 'required',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,2BAAiD,GAAG;EAC/DC,OAAO,EAAE;IACPC,GAAG,EACD,qHAAqH,GACrH,gGAAgG,GAChG,kHAAkH,GAClH,kBAAkB;IACpBC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACxBC,MAAM,EAAE;EACV,CAAC;EACDC,UAAU,EAAE;IACVH,GAAG,EAAE,wGAAwG;IAC7GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAE;IACJJ,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,IAAI,EAAE;IACJL,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -48,7 +48,9 @@ function SliderComponent(props) {
|
|
|
48
48
|
handleChange,
|
|
49
49
|
handleFocus,
|
|
50
50
|
handleBlur
|
|
51
|
-
} = useFieldProps(preparedProps
|
|
51
|
+
} = useFieldProps(preparedProps, {
|
|
52
|
+
omitMultiplePathWarning: true
|
|
53
|
+
});
|
|
52
54
|
const handleLocalChange = useCallback(({
|
|
53
55
|
value
|
|
54
56
|
}) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","names":["React","useCallback","useContext","useRef","FieldBlock","useFieldProps","Slider","pickSpacingProps","HelpButton","DataContext","useDataValue","SliderComponent","props","_ref","_props$paths","dataContextRef","current","getSourceValue","getValues","source","Array","isArray","map","s","value","paths","path","preparedProps","_objectSpread","step","min","max","id","width","layout","label","help","labelDescription","info","warning","error","hasError","disabled","handleChange","handleFocus","handleBlur","handleLocalChange","forEach","i","updateDataValue","fieldBlockProps","forId","sliderProps","status","undefined","suffix","createElement","title","content","on_change","on_drag_start","on_drag_end","vertical","reverse","hideButtons","multiThumbBehavior","thumbTitle","subtractTitle","addTitle","numberFormat","tooltip","alwaysShowTooltip","extensions","stretch","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Slider/Slider.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldBlockWidth,\n FieldHelpProps,\n FieldProps,\n Path,\n} from '../../types'\nimport Slider, { SliderProps } from '../../../../components/Slider'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { HelpButton } from '../../../../components'\nimport DataContext, { ContextState } from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\n\nexport type SliderVisibilityEvent = React.MouseEvent<HTMLButtonElement> & {\n value: string\n}\n\nexport type SliderValue = number | Array<number>\nexport type Props = FieldHelpProps &\n FieldProps<SliderValue> & {\n /**\n * Define an array with JSON Pointers for multiple thumb buttons.\n */\n paths?: Array<Path>\n step?: SliderProps['step'] | Path\n min?: SliderProps['min'] | Path\n max?: SliderProps['max'] | Path\n vertical?: SliderProps['vertical']\n reverse?: SliderProps['reverse']\n hideButtons?: SliderProps['hideButtons']\n multiThumbBehavior?: SliderProps['multiThumbBehavior']\n thumbTitle?: SliderProps['thumbTitle']\n subtractTitle?: SliderProps['subtractTitle']\n addTitle?: SliderProps['addTitle']\n numberFormat?: SliderProps['numberFormat']\n tooltip?: SliderProps['tooltip']\n alwaysShowTooltip?: SliderProps['alwaysShowTooltip']\n extensions?: SliderProps['extensions']\n\n /** Styling */\n width?: FieldBlockWidth\n }\n\nfunction SliderComponent(props: Props) {\n const dataContextRef = useRef<ContextState>()\n dataContextRef.current = useContext<ContextState>(DataContext)\n\n const { getSourceValue } = useDataValue()\n const getValues = useCallback(\n (source: SliderValue | Path | Array<Path>) => {\n if (Array.isArray(source)) {\n return source.map((s) => getSourceValue(s) || 0)\n }\n\n return getSourceValue(source) || 0\n },\n [getSourceValue]\n )\n\n const value = getValues(props.paths ?? props.path ?? props.value)\n const preparedProps = {\n ...props,\n step: getSourceValue(props.step),\n min: getSourceValue(props.min),\n max: getSourceValue(props.max),\n }\n\n const {\n id,\n step = 1,\n min = 0,\n max = 100,\n width = 'stretch',\n layout,\n label,\n help,\n labelDescription,\n info,\n warning,\n error,\n hasError,\n disabled,\n handleChange,\n handleFocus,\n handleBlur,\n } = useFieldProps(preparedProps)\n\n const handleLocalChange = useCallback(\n ({ value }: { value: number | number[] }) => {\n if (Array.isArray(props.paths) && Array.isArray(value)) {\n value.forEach((value, i) => {\n dataContextRef.current.updateDataValue(props.paths[i], value)\n })\n }\n\n handleChange?.(value)\n },\n [handleChange, props.paths]\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width,\n ...pickSpacingProps(props),\n }\n\n const sliderProps: SliderProps = {\n value,\n step,\n min,\n max,\n disabled,\n status: hasError ? 'error' : undefined,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleLocalChange,\n on_drag_start: handleFocus,\n on_drag_end: handleBlur,\n vertical: props.vertical,\n reverse: props.reverse,\n hideButtons: props.hideButtons,\n multiThumbBehavior: props.multiThumbBehavior,\n thumbTitle: props.thumbTitle,\n subtractTitle: props.subtractTitle,\n addTitle: props.addTitle,\n numberFormat: props.numberFormat,\n tooltip: props.tooltip,\n alwaysShowTooltip: props.alwaysShowTooltip,\n extensions: props.extensions,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Slider {...sliderProps} />\n </FieldBlock>\n )\n}\n\nexport default SliderComponent\n\nSliderComponent._supportsSpacingProps = true\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAC9D,OAAOC,UAAU,MAAoC,kBAAkB;AACvE,SAASC,aAAa,QAAQ,aAAa;AAO3C,OAAOC,MAAM,MAAuB,+BAA+B;AACnE,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,SAASC,UAAU,QAAQ,wBAAwB;AACnD,OAAOC,WAAW,MAAwB,2BAA2B;AACrE,OAAOC,YAAY,MAAM,0BAA0B;AAgCnD,SAASC,eAAeA,CAACC,KAAY,EAAE;EAAA,IAAAC,IAAA,EAAAC,YAAA;EACrC,MAAMC,cAAc,GAAGZ,MAAM,CAAe,CAAC;EAC7CY,cAAc,CAACC,OAAO,GAAGd,UAAU,CAAeO,WAAW,CAAC;EAE9D,MAAM;IAAEQ;EAAe,CAAC,GAAGP,YAAY,CAAC,CAAC;EACzC,MAAMQ,SAAS,GAAGjB,WAAW,CAC1BkB,MAAwC,IAAK;IAC5C,IAAIC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;MACzB,OAAOA,MAAM,CAACG,GAAG,CAAEC,CAAC,IAAKN,cAAc,CAACM,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD;IAEA,OAAON,cAAc,CAACE,MAAM,CAAC,IAAI,CAAC;EACpC,CAAC,EACD,CAACF,cAAc,CACjB,CAAC;EAED,MAAMO,KAAK,GAAGN,SAAS,EAAAL,IAAA,IAAAC,YAAA,GAACF,KAAK,CAACa,KAAK,cAAAX,YAAA,cAAAA,YAAA,GAAIF,KAAK,CAACc,IAAI,cAAAb,IAAA,cAAAA,IAAA,GAAID,KAAK,CAACY,KAAK,CAAC;EACjE,MAAMG,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdhB,KAAK;IACRiB,IAAI,EAAEZ,cAAc,CAACL,KAAK,CAACiB,IAAI,CAAC;IAChCC,GAAG,EAAEb,cAAc,CAACL,KAAK,CAACkB,GAAG,CAAC;IAC9BC,GAAG,EAAEd,cAAc,CAACL,KAAK,CAACmB,GAAG;EAAC,EAC/B;EAED,MAAM;IACJC,EAAE;IACFH,IAAI,GAAG,CAAC;IACRC,GAAG,GAAG,CAAC;IACPC,GAAG,GAAG,GAAG;IACTE,KAAK,GAAG,SAAS;IACjBC,MAAM;IACNC,KAAK;IACLC,IAAI;IACJC,gBAAgB;IAChBC,IAAI;IACJC,OAAO;IACPC,KAAK;IACLC,QAAQ;IACRC,QAAQ;IACRC,YAAY;IACZC,WAAW;IACXC;EACF,CAAC,GAAGxC,aAAa,CAACsB,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Slider.js","names":["React","useCallback","useContext","useRef","FieldBlock","useFieldProps","Slider","pickSpacingProps","HelpButton","DataContext","useDataValue","SliderComponent","props","_ref","_props$paths","dataContextRef","current","getSourceValue","getValues","source","Array","isArray","map","s","value","paths","path","preparedProps","_objectSpread","step","min","max","id","width","layout","label","help","labelDescription","info","warning","error","hasError","disabled","handleChange","handleFocus","handleBlur","omitMultiplePathWarning","handleLocalChange","forEach","i","updateDataValue","fieldBlockProps","forId","sliderProps","status","undefined","suffix","createElement","title","content","on_change","on_drag_start","on_drag_end","vertical","reverse","hideButtons","multiThumbBehavior","thumbTitle","subtractTitle","addTitle","numberFormat","tooltip","alwaysShowTooltip","extensions","stretch","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Slider/Slider.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldBlockWidth,\n FieldHelpProps,\n FieldProps,\n Path,\n} from '../../types'\nimport Slider, { SliderProps } from '../../../../components/Slider'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { HelpButton } from '../../../../components'\nimport DataContext, { ContextState } from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\n\nexport type SliderVisibilityEvent = React.MouseEvent<HTMLButtonElement> & {\n value: string\n}\n\nexport type SliderValue = number | Array<number>\nexport type Props = FieldHelpProps &\n FieldProps<SliderValue> & {\n /**\n * Define an array with JSON Pointers for multiple thumb buttons.\n */\n paths?: Array<Path>\n step?: SliderProps['step'] | Path\n min?: SliderProps['min'] | Path\n max?: SliderProps['max'] | Path\n vertical?: SliderProps['vertical']\n reverse?: SliderProps['reverse']\n hideButtons?: SliderProps['hideButtons']\n multiThumbBehavior?: SliderProps['multiThumbBehavior']\n thumbTitle?: SliderProps['thumbTitle']\n subtractTitle?: SliderProps['subtractTitle']\n addTitle?: SliderProps['addTitle']\n numberFormat?: SliderProps['numberFormat']\n tooltip?: SliderProps['tooltip']\n alwaysShowTooltip?: SliderProps['alwaysShowTooltip']\n extensions?: SliderProps['extensions']\n\n /** Styling */\n width?: FieldBlockWidth\n }\n\nfunction SliderComponent(props: Props) {\n const dataContextRef = useRef<ContextState>()\n dataContextRef.current = useContext<ContextState>(DataContext)\n\n const { getSourceValue } = useDataValue()\n const getValues = useCallback(\n (source: SliderValue | Path | Array<Path>) => {\n if (Array.isArray(source)) {\n return source.map((s) => getSourceValue(s) || 0)\n }\n\n return getSourceValue(source) || 0\n },\n [getSourceValue]\n )\n\n const value = getValues(props.paths ?? props.path ?? props.value)\n const preparedProps = {\n ...props,\n step: getSourceValue(props.step),\n min: getSourceValue(props.min),\n max: getSourceValue(props.max),\n }\n\n const {\n id,\n step = 1,\n min = 0,\n max = 100,\n width = 'stretch',\n layout,\n label,\n help,\n labelDescription,\n info,\n warning,\n error,\n hasError,\n disabled,\n handleChange,\n handleFocus,\n handleBlur,\n } = useFieldProps(preparedProps, {\n omitMultiplePathWarning: true,\n })\n\n const handleLocalChange = useCallback(\n ({ value }: { value: number | number[] }) => {\n if (Array.isArray(props.paths) && Array.isArray(value)) {\n value.forEach((value, i) => {\n dataContextRef.current.updateDataValue(props.paths[i], value)\n })\n }\n\n handleChange?.(value)\n },\n [handleChange, props.paths]\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width,\n ...pickSpacingProps(props),\n }\n\n const sliderProps: SliderProps = {\n value,\n step,\n min,\n max,\n disabled,\n status: hasError ? 'error' : undefined,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleLocalChange,\n on_drag_start: handleFocus,\n on_drag_end: handleBlur,\n vertical: props.vertical,\n reverse: props.reverse,\n hideButtons: props.hideButtons,\n multiThumbBehavior: props.multiThumbBehavior,\n thumbTitle: props.thumbTitle,\n subtractTitle: props.subtractTitle,\n addTitle: props.addTitle,\n numberFormat: props.numberFormat,\n tooltip: props.tooltip,\n alwaysShowTooltip: props.alwaysShowTooltip,\n extensions: props.extensions,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Slider {...sliderProps} />\n </FieldBlock>\n )\n}\n\nexport default SliderComponent\n\nSliderComponent._supportsSpacingProps = true\n"],"mappings":"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"}
|
|
@@ -49,6 +49,8 @@ function FieldBlock(props) {
|
|
|
49
49
|
children
|
|
50
50
|
} = _Object$assign,
|
|
51
51
|
rest = _objectWithoutProperties(_Object$assign, _excluded);
|
|
52
|
+
const hasCustomWidth = /\d(rem)$/.test(String(width));
|
|
53
|
+
const hasCustomContentWidth = /\d(rem)$/.test(String(contentWidth));
|
|
52
54
|
const iterateItemContext = useContext(IterateElementContext);
|
|
53
55
|
const {
|
|
54
56
|
index: iterateIndex
|
|
@@ -88,7 +90,7 @@ function FieldBlock(props) {
|
|
|
88
90
|
}
|
|
89
91
|
}
|
|
90
92
|
return content;
|
|
91
|
-
}, [iterateIndex, labelProp, labelSuffixText]);
|
|
93
|
+
}, [iterateIndex, labelProp, labelSuffixText, optionalLabelSuffix]);
|
|
92
94
|
const setInternalRecord = useCallback(props => {
|
|
93
95
|
const {
|
|
94
96
|
stateId,
|
|
@@ -240,7 +242,7 @@ function FieldBlock(props) {
|
|
|
240
242
|
mountedFieldsRef.current = {};
|
|
241
243
|
stateRecordRef.current = {};
|
|
242
244
|
}, []);
|
|
243
|
-
const mainClasses = classnames('dnb-forms-field-block', className, width
|
|
245
|
+
const mainClasses = classnames('dnb-forms-field-block', className, width && `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`);
|
|
244
246
|
const gridClasses = `dnb-forms-field-block__grid dnb-forms-field-block--layout-${layout}`;
|
|
245
247
|
const enableFieldset = useEnableFieldset({
|
|
246
248
|
label,
|
|
@@ -259,6 +261,20 @@ function FieldBlock(props) {
|
|
|
259
261
|
size: labelSize,
|
|
260
262
|
disabled
|
|
261
263
|
};
|
|
264
|
+
const mainStyle = useMemo(() => {
|
|
265
|
+
if (hasCustomWidth) {
|
|
266
|
+
return {
|
|
267
|
+
'--dnb-forms-field-block-width': width
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
}, [hasCustomWidth, width]);
|
|
271
|
+
const contentsStyle = useMemo(() => {
|
|
272
|
+
if (hasCustomContentWidth) {
|
|
273
|
+
return {
|
|
274
|
+
'--dnb-forms-field-block-content-width': contentWidth
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
}, [contentWidth, hasCustomContentWidth]);
|
|
262
278
|
if (dataContext !== null && dataContext !== void 0 && dataContext.prerenderFieldProps) {
|
|
263
279
|
return null;
|
|
264
280
|
}
|
|
@@ -277,6 +293,7 @@ function FieldBlock(props) {
|
|
|
277
293
|
}
|
|
278
294
|
}, React.createElement(Space, _extends({
|
|
279
295
|
element: enableFieldset ? 'fieldset' : 'div',
|
|
296
|
+
style: mainStyle,
|
|
280
297
|
className: mainClasses
|
|
281
298
|
}, rest), React.createElement("div", {
|
|
282
299
|
className: gridClasses
|
|
@@ -289,7 +306,8 @@ function FieldBlock(props) {
|
|
|
289
306
|
}, labelDescription)))), React.createElement("div", {
|
|
290
307
|
className: "dnb-forms-field-block__status"
|
|
291
308
|
}, React.createElement(FormStatus, statusContent === null || statusContent === void 0 ? void 0 : statusContent.error), React.createElement(FormStatus, statusContent === null || statusContent === void 0 ? void 0 : statusContent.warning), React.createElement(FormStatus, statusContent === null || statusContent === void 0 ? void 0 : statusContent.info)), React.createElement("div", {
|
|
292
|
-
|
|
309
|
+
style: contentsStyle,
|
|
310
|
+
className: classnames('dnb-forms-field-block__contents', contentClassName, contentWidth && `dnb-forms-field-block__contents--width-${hasCustomContentWidth ? 'custom' : contentWidth}`, align && `dnb-forms-field-block__contents--align-${align}`, composition && `dnb-forms-field-block__contents__composition--${composition === true ? 'horizontal' : composition}`),
|
|
293
311
|
ref: contentsRef
|
|
294
312
|
}, children))));
|
|
295
313
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","IterateElementContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","warn","useId","FormError","SubmitIndicator","createSharedState","useTranslation","states","FieldBlock","props","dataContext","nestedFieldBlockContext","sharedData","forId","id","_Object$assign","Object","assign","data","className","layout","composition","label","labelProp","labelDescription","labelSuffix","labelSrOnly","asFieldset","required","info","warning","error","errorProp","fieldState","disabled","width","contentWidth","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","iterateItemContext","index","iterateIndex","blockId","wasUpdated","forceUpdate","mountedFieldsRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorProp","Boolean","optionalLabelSuffix","Field","labelSuffixText","content","undefined","replace","String","includes","isValidElement","createElement","Fragment","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setFieldState","showFieldError","show","map","showInitially","statusContent","statesWithMessages","entries","flatMap","reduce","acc","cur","existing","find","message","getMessage","messages","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","i","arr","length","text","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","top","bottom","size","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","Provider","value","hasErrorProp","_extends","LabelDescription","ref","result","count","child","_child$props","_child$type","translations","errorSummary","stateSummary","key","Error","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\n\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport IterateElementContext from '../Iterate/IterateItemContext'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n warn,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n FormError,\n SubmitState,\n Identifier,\n FieldBlockWidth,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\nexport type Props = Pick<\n FieldProps,\n | keyof ComponentProps\n | 'layout'\n | 'label'\n | 'labelSuffix'\n | 'labelDescription'\n | 'info'\n | 'warning'\n | 'error'\n | 'disabled'\n> & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** Width of outer block element */\n width?: FieldBlockWidth\n /** Width of contents block, while label etc can be wider if space is available */\n contentWidth?: FieldBlockWidth\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Typography size */\n labelSize?: 'medium' | 'large'\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n} & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const dataContext = useContext(DataContext)\n const nestedFieldBlockContext = useContext(FieldBlockContext)\n\n const sharedData = createSharedState<Props>(\n 'field-block-props-' + (props.forId || props.id)\n )\n const {\n className,\n forId,\n layout = 'vertical',\n composition,\n label: labelProp,\n labelDescription,\n labelSuffix,\n labelSrOnly,\n asFieldset,\n required,\n info,\n warning,\n error: errorProp,\n fieldState,\n disabled,\n width,\n contentWidth,\n align,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n\n const iterateItemContext = useContext(IterateElementContext)\n const { index: iterateIndex } = iterateItemContext ?? {}\n\n const blockId = useId(props.id)\n const [wasUpdated, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>({})\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorProp = useMemo(() => {\n return Boolean(errorProp)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const { optionalLabelSuffix } = useTranslation().Field\n const labelSuffixText = useMemo(() => {\n if (required === false || typeof labelSuffix !== 'undefined') {\n return labelSuffix ?? optionalLabelSuffix\n }\n return ''\n }, [required, labelSuffix, optionalLabelSuffix])\n\n const label = useMemo(() => {\n let content = labelProp\n\n if (iterateIndex !== undefined) {\n content = convertJsxToString(labelProp).replace(\n '{itemNo}',\n String(iterateIndex + 1)\n )\n }\n\n if (labelSuffixText) {\n if (convertJsxToString(content).includes(optionalLabelSuffix)) {\n return content\n }\n\n if (typeof content === 'string') {\n return content + ' ' + labelSuffixText\n }\n\n if (React.isValidElement(content)) {\n return (\n <>\n {content}\n {' '}\n {labelSuffixText}\n </>\n )\n }\n }\n\n return content\n }, [iterateIndex, labelProp, labelSuffixText])\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setFieldState = useCallback(\n (props: StateBasis) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setFieldState(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [nestedFieldBlockContext, setInternalRecord]\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof errorProp !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorProp,\n type: 'error',\n content: errorProp,\n })\n }\n\n if (typeof warning !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const message = getMessage(cur)\n\n if (existing) {\n existing.messages.push({\n ...cur,\n message,\n })\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages: [\n {\n ...cur,\n message,\n },\n ],\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n text: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, {}) as StatusContent\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n info,\n warning,\n errorProp,\n nestedFieldBlockContext,\n setInternalRecord,\n blockId,\n wasUpdated, // wasUpdated is needed to get the current errors\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(errorProp))\n }\n }, [errorProp, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width !== undefined && `dnb-forms-field-block--width-${width}`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: { top: 0, bottom: 'x-small' },\n size: labelSize,\n disabled,\n }\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n if (fieldState && typeof label === 'undefined') {\n warn(\n 'Provide a label when using an async validator or onChange event.'\n )\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n\n return (\n <FieldBlockContext.Provider\n value={{\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(errorProp),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n <LabelDescription labelDescription={labelDescription}>\n {(label || labelDescription) && (\n <FormLabel {...labelProps}>\n <SubmitIndicator state={fieldState}>\n {label}\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label-description\">\n {labelDescription}\n </span>\n )}\n </SubmitIndicator>\n </FormLabel>\n )}\n </LabelDescription>\n\n <div className=\"dnb-forms-field-block__status\">\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${contentWidth}`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n composition &&\n `dnb-forms-field-block__contents__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nfunction LabelDescription({ labelDescription, children }) {\n if (!labelDescription) {\n return children ?? null\n }\n return <div className=\"dnb-forms-field-block__label\">{children}</div>\n}\n\nexport function getMessage(item: Partial<StateWithMessage>): StateMessage {\n const { content } = item\n\n return ((content instanceof Error && content.message) ||\n (content instanceof FormError && content.message) ||\n content?.toString() ||\n content) as StateMessage\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","IterateElementContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","warn","useId","FormError","SubmitIndicator","createSharedState","useTranslation","states","FieldBlock","props","dataContext","nestedFieldBlockContext","sharedData","forId","id","_Object$assign","Object","assign","data","className","layout","composition","label","labelProp","labelDescription","labelSuffix","labelSrOnly","asFieldset","required","info","warning","error","errorProp","fieldState","disabled","width","contentWidth","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","hasCustomWidth","test","String","hasCustomContentWidth","iterateItemContext","index","iterateIndex","blockId","wasUpdated","forceUpdate","mountedFieldsRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorProp","Boolean","optionalLabelSuffix","Field","labelSuffixText","content","undefined","replace","includes","isValidElement","createElement","Fragment","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setFieldState","showFieldError","show","map","showInitially","statusContent","statesWithMessages","entries","flatMap","reduce","acc","cur","existing","find","message","getMessage","messages","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","i","arr","length","text","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","top","bottom","size","mainStyle","contentsStyle","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","Provider","value","hasErrorProp","_extends","style","LabelDescription","ref","result","count","child","_child$props","_child$type","translations","errorSummary","stateSummary","key","Error","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport IterateElementContext from '../Iterate/IterateItemContext'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n warn,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n FormError,\n SubmitState,\n Identifier,\n FieldBlockWidth,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\nexport type Props = Pick<\n FieldProps,\n | keyof ComponentProps\n | 'layout'\n | 'label'\n | 'labelSuffix'\n | 'labelDescription'\n | 'info'\n | 'warning'\n | 'error'\n | 'disabled'\n> & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** Width of outer block element */\n width?: FieldBlockWidth\n /** Width of contents block, while label etc can be wider if space is available */\n contentWidth?: FieldBlockWidth\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Typography size */\n labelSize?: 'medium' | 'large'\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n} & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const dataContext = useContext(DataContext)\n const nestedFieldBlockContext = useContext(FieldBlockContext)\n\n const sharedData = createSharedState<Props>(\n 'field-block-props-' + (props.forId || props.id)\n )\n const {\n className,\n forId,\n layout = 'vertical',\n composition,\n label: labelProp,\n labelDescription,\n labelSuffix,\n labelSrOnly,\n asFieldset,\n required,\n info,\n warning,\n error: errorProp,\n fieldState,\n disabled,\n width,\n contentWidth,\n align,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n const hasCustomWidth = /\\d(rem)$/.test(String(width))\n const hasCustomContentWidth = /\\d(rem)$/.test(String(contentWidth))\n\n const iterateItemContext = useContext(IterateElementContext)\n const { index: iterateIndex } = iterateItemContext ?? {}\n\n const blockId = useId(props.id)\n const [wasUpdated, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>({})\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorProp = useMemo(() => {\n return Boolean(errorProp)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const { optionalLabelSuffix } = useTranslation().Field\n const labelSuffixText = useMemo(() => {\n if (required === false || typeof labelSuffix !== 'undefined') {\n return labelSuffix ?? optionalLabelSuffix\n }\n return ''\n }, [required, labelSuffix, optionalLabelSuffix])\n\n const label = useMemo(() => {\n let content = labelProp\n\n if (iterateIndex !== undefined) {\n content = convertJsxToString(labelProp).replace(\n '{itemNo}',\n String(iterateIndex + 1)\n )\n }\n\n if (labelSuffixText) {\n if (convertJsxToString(content).includes(optionalLabelSuffix)) {\n return content\n }\n\n if (typeof content === 'string') {\n return content + ' ' + labelSuffixText\n }\n\n if (React.isValidElement(content)) {\n return (\n <>\n {content}\n {' '}\n {labelSuffixText}\n </>\n )\n }\n }\n\n return content\n }, [iterateIndex, labelProp, labelSuffixText, optionalLabelSuffix])\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setFieldState = useCallback(\n (props: StateBasis) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setFieldState(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [nestedFieldBlockContext, setInternalRecord]\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof errorProp !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorProp,\n type: 'error',\n content: errorProp,\n })\n }\n\n if (typeof warning !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const message = getMessage(cur)\n\n if (existing) {\n existing.messages.push({\n ...cur,\n message,\n })\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages: [\n {\n ...cur,\n message,\n },\n ],\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n text: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, {}) as StatusContent\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n info,\n warning,\n errorProp,\n nestedFieldBlockContext,\n setInternalRecord,\n blockId,\n wasUpdated, // wasUpdated is needed to get the current errors\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(errorProp))\n }\n }, [errorProp, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width &&\n `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: { top: 0, bottom: 'x-small' },\n size: labelSize,\n disabled,\n }\n\n const mainStyle = useMemo(() => {\n if (hasCustomWidth) {\n return {\n '--dnb-forms-field-block-width': width,\n } as React.CSSProperties\n }\n }, [hasCustomWidth, width])\n\n const contentsStyle = useMemo(() => {\n if (hasCustomContentWidth) {\n return {\n '--dnb-forms-field-block-content-width': contentWidth,\n } as React.CSSProperties\n }\n }, [contentWidth, hasCustomContentWidth])\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n if (fieldState && typeof label === 'undefined') {\n warn(\n 'Provide a label when using an async validator or onChange event.'\n )\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n\n return (\n <FieldBlockContext.Provider\n value={{\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(errorProp),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n style={mainStyle}\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n <LabelDescription labelDescription={labelDescription}>\n {(label || labelDescription) && (\n <FormLabel {...labelProps}>\n <SubmitIndicator state={fieldState}>\n {label}\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label-description\">\n {labelDescription}\n </span>\n )}\n </SubmitIndicator>\n </FormLabel>\n )}\n </LabelDescription>\n\n <div className=\"dnb-forms-field-block__status\">\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n style={contentsStyle}\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n composition &&\n `dnb-forms-field-block__contents__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nfunction LabelDescription({ labelDescription, children }) {\n if (!labelDescription) {\n return children ?? null\n }\n return <div className=\"dnb-forms-field-block__label\">{children}</div>\n}\n\nexport function getMessage(item: Partial<StateWithMessage>): StateMessage {\n const { content } = item\n\n return ((content instanceof Error && content.message) ||\n (content instanceof FormError && content.message) ||\n content?.toString() ||\n content) as StateMessage\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n"],"mappings":"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"}
|
|
@@ -23,12 +23,12 @@ export const fieldBlockSharedProperties = {
|
|
|
23
23
|
status: 'optional'
|
|
24
24
|
},
|
|
25
25
|
width: {
|
|
26
|
-
doc: '`small`, `medium`, `large
|
|
26
|
+
doc: 'Will set the width for the whole block. Use `small`, `medium`, `large` for predefined standard widths. You can also set a custom width `{number}rem` or use `stretch` or `false`.',
|
|
27
27
|
type: ['string', 'false'],
|
|
28
28
|
status: 'optional'
|
|
29
29
|
},
|
|
30
30
|
contentWidth: {
|
|
31
|
-
doc: '`small`, `medium`, `large
|
|
31
|
+
doc: 'Will set the width for its contents. Use `small`, `medium`, `large` for predefined standard widths. You can also set a custom width `{number}rem` or use `stretch` or `false`.',
|
|
32
32
|
type: ['string', 'false'],
|
|
33
33
|
status: 'optional'
|
|
34
34
|
},
|