@dnb/eufemia 10.45.0 → 10.47.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 +58 -0
- package/cjs/components/CopyOnClick.d.ts +12 -0
- package/cjs/components/CopyOnClick.js +24 -0
- package/cjs/components/CopyOnClick.js.map +1 -0
- package/cjs/components/accordion/Accordion.d.ts +17 -1
- package/cjs/components/accordion/Accordion.js +4 -2
- package/cjs/components/accordion/Accordion.js.map +1 -1
- package/cjs/components/accordion/AccordionContext.d.ts +4 -0
- package/cjs/components/accordion/AccordionContext.js.map +1 -1
- package/cjs/components/accordion/AccordionDocs.js +6 -1
- package/cjs/components/accordion/AccordionDocs.js.map +1 -1
- package/cjs/components/accordion/AccordionGroup.js +5 -3
- package/cjs/components/accordion/AccordionGroup.js.map +1 -1
- package/cjs/components/accordion/AccordionProviderContext.d.ts +4 -0
- package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
- package/cjs/components/accordion/AccordionStore.js +2 -1
- package/cjs/components/accordion/AccordionStore.js.map +1 -1
- package/cjs/components/accordion/style/dnb-accordion.css +3 -3
- package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
- package/cjs/components/autocomplete/style/dnb-autocomplete.css +1 -1
- package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/cjs/components/button/Button.d.ts +1 -1
- package/cjs/components/button/Button.js +5 -2
- package/cjs/components/button/Button.js.map +1 -1
- package/cjs/components/card/style/dnb-card.css +1 -1
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/copy-on-click/CopyOnClick.d.ts +9 -0
- package/cjs/components/copy-on-click/CopyOnClick.js +73 -0
- package/cjs/components/copy-on-click/CopyOnClick.js.map +1 -0
- package/cjs/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
- package/cjs/components/copy-on-click/CopyOnClickDocs.js +30 -0
- package/cjs/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
- package/cjs/components/copy-on-click/index.d.ts +7 -0
- package/cjs/components/copy-on-click/index.js +24 -0
- package/cjs/components/copy-on-click/index.js.map +1 -0
- package/cjs/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
- package/cjs/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
- package/cjs/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
- package/cjs/components/copy-on-click/style/index.d.ts +5 -0
- package/cjs/components/copy-on-click/style/index.js +4 -0
- package/cjs/components/copy-on-click/style/index.js.map +1 -0
- package/cjs/components/copy-on-click/style.d.ts +5 -0
- package/cjs/components/copy-on-click/style.js +4 -0
- package/cjs/components/copy-on-click/style.js.map +1 -0
- package/cjs/components/copy-on-click/types.d.ts +24 -0
- package/cjs/components/copy-on-click/types.js +1 -0
- package/cjs/components/copy-on-click/types.js.map +1 -0
- package/cjs/components/drawer/style/dnb-drawer.css +3 -3
- package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
- package/cjs/components/dropdown/style/dnb-dropdown.css +1 -1
- package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
- package/cjs/components/flex/Container.js +9 -1
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/flex/utils.d.ts +1 -1
- package/cjs/components/flex/utils.js +1 -1
- package/cjs/components/flex/utils.js.map +1 -1
- package/cjs/components/form-row/style/dnb-form-row.css +1 -1
- package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
- package/cjs/components/grid/style/dnb-grid.css +6 -6
- package/cjs/components/grid/style/dnb-grid.min.css +1 -1
- package/cjs/components/index.d.ts +2 -1
- package/cjs/components/index.js +7 -0
- package/cjs/components/index.js.map +1 -1
- package/cjs/components/lib.d.ts +6 -1
- package/cjs/components/lib.js +8 -0
- package/cjs/components/lib.js.map +1 -1
- package/cjs/components/pagination/Pagination.d.ts +27 -1
- package/cjs/components/pagination/Pagination.js +3 -1
- package/cjs/components/pagination/Pagination.js.map +1 -1
- package/cjs/components/pagination/PaginationInfinity.js +20 -8
- package/cjs/components/pagination/PaginationInfinity.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/section/style/dnb-section.css +2 -2
- package/cjs/components/section/style/dnb-section.min.css +2 -2
- package/cjs/components/space/style/dnb-space.css +2 -2
- package/cjs/components/space/style/dnb-space.min.css +1 -1
- package/cjs/components/tabs/Tabs.js +2 -2
- package/cjs/components/tabs/Tabs.js.map +1 -1
- package/cjs/components/tag/Tag.js +2 -2
- package/cjs/components/tag/Tag.js.map +1 -1
- package/cjs/components/toggle-button/style/dnb-toggle-button.css +1 -1
- package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +10 -7
- package/cjs/extensions/forms/DataContext/Context.js +0 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +7 -7
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +60 -34
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +15 -3
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -3
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/cjs/extensions/forms/Field/Email/Email.js +1 -1
- package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +36 -8
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +20 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -2
- package/cjs/extensions/forms/Field/Number/Number.js +33 -31
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +11 -3
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
- package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Slider/Slider.js +7 -7
- package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +3 -4
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js +1 -3
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
- package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
- package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +9 -5
- package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +9 -7
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js +4 -4
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Value/Date/Date.d.ts +1 -1
- package/cjs/extensions/forms/Value/Date/Date.js +15 -5
- package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Value/Date/DateDocs.js +1 -1
- package/cjs/extensions/forms/Value/Date/DateDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
- package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js +54 -0
- package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
- package/cjs/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
- package/cjs/extensions/forms/Value/SelectCountry/index.js +27 -0
- package/cjs/extensions/forms/Value/SelectCountry/index.js.map +1 -0
- package/cjs/extensions/forms/Value/Selection/SelectionDocs.js +1 -1
- package/cjs/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/index.d.ts +1 -0
- package/cjs/extensions/forms/Value/index.js +7 -0
- package/cjs/extensions/forms/Value/index.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -3
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +5 -2
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/cjs/extensions/forms/constants/countries.d.ts +5 -2
- package/cjs/extensions/forms/constants/countries.js +72 -0
- package/cjs/extensions/forms/constants/countries.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +3 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +4 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueDocs.js +7 -7
- package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.d.ts +2 -1
- package/cjs/extensions/forms/hooks/useDataValue.js +7 -7
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +296 -115
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +13 -10
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +33 -4
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +7 -0
- package/cjs/index.js.map +1 -1
- package/cjs/shared/Context.js +4 -6
- 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/locales/en-GB.d.ts +3 -0
- package/cjs/shared/locales/en-GB.js +3 -0
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +3 -0
- package/cjs/shared/locales/index.d.ts +6 -0
- package/cjs/shared/locales/nb-NO.d.ts +3 -0
- package/cjs/shared/locales/nb-NO.js +3 -0
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/core/utilities.scss +3 -6
- 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 +45 -34
- package/cjs/style/dnb-ui-components.min.css +5 -5
- package/cjs/style/dnb-ui-components.scss +1 -0
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-elements.css +1 -1
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +13 -10
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +13 -10
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/dnb-ui-fragments.css +2 -2
- package/cjs/style/dnb-ui-fragments.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +59 -45
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -10
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +13 -10
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +59 -45
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -10
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +13 -10
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +59 -45
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -6
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +13 -10
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +13 -10
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/CopyOnClick.d.ts +12 -0
- package/components/CopyOnClick.js +4 -0
- package/components/CopyOnClick.js.map +1 -0
- package/components/accordion/Accordion.d.ts +17 -1
- package/components/accordion/Accordion.js +4 -2
- package/components/accordion/Accordion.js.map +1 -1
- package/components/accordion/AccordionContext.d.ts +4 -0
- package/components/accordion/AccordionContext.js.map +1 -1
- package/components/accordion/AccordionDocs.js +6 -1
- package/components/accordion/AccordionDocs.js.map +1 -1
- package/components/accordion/AccordionGroup.js +5 -3
- package/components/accordion/AccordionGroup.js.map +1 -1
- package/components/accordion/AccordionProviderContext.d.ts +4 -0
- package/components/accordion/AccordionProviderContext.js.map +1 -1
- package/components/accordion/AccordionStore.js +2 -1
- package/components/accordion/AccordionStore.js.map +1 -1
- package/components/accordion/style/dnb-accordion.css +3 -3
- package/components/accordion/style/dnb-accordion.min.css +1 -1
- package/components/autocomplete/style/dnb-autocomplete.css +1 -1
- package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/components/button/Button.d.ts +1 -1
- package/components/button/Button.js +5 -2
- package/components/button/Button.js.map +1 -1
- package/components/card/style/dnb-card.css +1 -1
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/copy-on-click/CopyOnClick.d.ts +9 -0
- package/components/copy-on-click/CopyOnClick.js +63 -0
- package/components/copy-on-click/CopyOnClick.js.map +1 -0
- package/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
- package/components/copy-on-click/CopyOnClickDocs.js +23 -0
- package/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
- package/components/copy-on-click/index.d.ts +7 -0
- package/components/copy-on-click/index.js +4 -0
- package/components/copy-on-click/index.js.map +1 -0
- package/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
- package/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
- package/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
- package/components/copy-on-click/style/index.d.ts +5 -0
- package/components/copy-on-click/style/index.js +1 -0
- package/components/copy-on-click/style/index.js.map +1 -0
- package/components/copy-on-click/style.d.ts +5 -0
- package/components/copy-on-click/style.js +1 -0
- package/components/copy-on-click/style.js.map +1 -0
- package/components/copy-on-click/types.d.ts +24 -0
- package/components/copy-on-click/types.js +1 -0
- package/components/copy-on-click/types.js.map +1 -0
- package/components/drawer/style/dnb-drawer.css +3 -3
- package/components/drawer/style/dnb-drawer.min.css +1 -1
- package/components/dropdown/style/dnb-dropdown.css +1 -1
- package/components/dropdown/style/dnb-dropdown.min.css +1 -1
- package/components/flex/Container.js +10 -2
- package/components/flex/Container.js.map +1 -1
- package/components/flex/utils.d.ts +1 -1
- package/components/flex/utils.js +1 -1
- package/components/flex/utils.js.map +1 -1
- package/components/form-row/style/dnb-form-row.css +1 -1
- package/components/form-row/style/dnb-form-row.min.css +1 -1
- package/components/grid/style/dnb-grid.css +6 -6
- package/components/grid/style/dnb-grid.min.css +1 -1
- package/components/index.d.ts +2 -1
- package/components/index.js +2 -1
- package/components/index.js.map +1 -1
- package/components/lib.d.ts +6 -1
- package/components/lib.js +3 -1
- package/components/lib.js.map +1 -1
- package/components/pagination/Pagination.d.ts +27 -1
- package/components/pagination/Pagination.js +3 -1
- package/components/pagination/Pagination.js.map +1 -1
- package/components/pagination/PaginationInfinity.js +20 -8
- package/components/pagination/PaginationInfinity.js.map +1 -1
- package/components/progress-indicator/ProgressIndicator.js +2 -2
- package/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/components/section/style/dnb-section.css +2 -2
- package/components/section/style/dnb-section.min.css +2 -2
- package/components/space/style/dnb-space.css +2 -2
- package/components/space/style/dnb-space.min.css +1 -1
- package/components/tabs/Tabs.js +2 -2
- package/components/tabs/Tabs.js.map +1 -1
- package/components/tag/Tag.js +2 -2
- package/components/tag/Tag.js.map +1 -1
- package/components/toggle-button/style/dnb-toggle-button.css +1 -1
- package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/es/components/CopyOnClick.d.ts +12 -0
- package/es/components/CopyOnClick.js +4 -0
- package/es/components/CopyOnClick.js.map +1 -0
- package/es/components/accordion/Accordion.d.ts +17 -1
- package/es/components/accordion/Accordion.js +4 -2
- package/es/components/accordion/Accordion.js.map +1 -1
- package/es/components/accordion/AccordionContext.d.ts +4 -0
- package/es/components/accordion/AccordionContext.js.map +1 -1
- package/es/components/accordion/AccordionDocs.js +6 -1
- package/es/components/accordion/AccordionDocs.js.map +1 -1
- package/es/components/accordion/AccordionGroup.js +5 -3
- package/es/components/accordion/AccordionGroup.js.map +1 -1
- package/es/components/accordion/AccordionProviderContext.d.ts +4 -0
- package/es/components/accordion/AccordionProviderContext.js.map +1 -1
- package/es/components/accordion/AccordionStore.js +2 -1
- package/es/components/accordion/AccordionStore.js.map +1 -1
- package/es/components/accordion/style/dnb-accordion.css +3 -3
- package/es/components/accordion/style/dnb-accordion.min.css +1 -1
- package/es/components/autocomplete/style/dnb-autocomplete.css +1 -1
- package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/es/components/button/Button.d.ts +1 -1
- package/es/components/button/Button.js +5 -2
- package/es/components/button/Button.js.map +1 -1
- package/es/components/card/style/dnb-card.css +1 -1
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/copy-on-click/CopyOnClick.d.ts +9 -0
- package/es/components/copy-on-click/CopyOnClick.js +63 -0
- package/es/components/copy-on-click/CopyOnClick.js.map +1 -0
- package/es/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
- package/es/components/copy-on-click/CopyOnClickDocs.js +23 -0
- package/es/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
- package/es/components/copy-on-click/index.d.ts +7 -0
- package/es/components/copy-on-click/index.js +4 -0
- package/es/components/copy-on-click/index.js.map +1 -0
- package/es/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
- package/es/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
- package/es/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
- package/es/components/copy-on-click/style/index.d.ts +5 -0
- package/es/components/copy-on-click/style/index.js +1 -0
- package/es/components/copy-on-click/style/index.js.map +1 -0
- package/es/components/copy-on-click/style.d.ts +5 -0
- package/es/components/copy-on-click/style.js +1 -0
- package/es/components/copy-on-click/style.js.map +1 -0
- package/es/components/copy-on-click/types.d.ts +24 -0
- package/es/components/copy-on-click/types.js +1 -0
- package/es/components/copy-on-click/types.js.map +1 -0
- package/es/components/drawer/style/dnb-drawer.css +3 -3
- package/es/components/drawer/style/dnb-drawer.min.css +1 -1
- package/es/components/dropdown/style/dnb-dropdown.css +1 -1
- package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
- package/es/components/flex/Container.js +10 -2
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/flex/utils.d.ts +1 -1
- package/es/components/flex/utils.js +1 -1
- package/es/components/flex/utils.js.map +1 -1
- package/es/components/form-row/style/dnb-form-row.css +1 -1
- package/es/components/form-row/style/dnb-form-row.min.css +1 -1
- package/es/components/grid/style/dnb-grid.css +6 -6
- package/es/components/grid/style/dnb-grid.min.css +1 -1
- package/es/components/index.d.ts +2 -1
- package/es/components/index.js +2 -1
- package/es/components/index.js.map +1 -1
- package/es/components/lib.d.ts +6 -1
- package/es/components/lib.js +3 -1
- package/es/components/lib.js.map +1 -1
- package/es/components/pagination/Pagination.d.ts +27 -1
- package/es/components/pagination/Pagination.js +3 -1
- package/es/components/pagination/Pagination.js.map +1 -1
- package/es/components/pagination/PaginationInfinity.js +20 -8
- package/es/components/pagination/PaginationInfinity.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/section/style/dnb-section.css +2 -2
- package/es/components/section/style/dnb-section.min.css +2 -2
- package/es/components/space/style/dnb-space.css +2 -2
- package/es/components/space/style/dnb-space.min.css +1 -1
- package/es/components/tabs/Tabs.js +2 -2
- package/es/components/tabs/Tabs.js.map +1 -1
- package/es/components/tag/Tag.js +2 -2
- package/es/components/tag/Tag.js.map +1 -1
- package/es/components/toggle-button/style/dnb-toggle-button.css +1 -1
- package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +10 -7
- package/es/extensions/forms/DataContext/Context.js +0 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +7 -7
- package/es/extensions/forms/DataContext/Provider/Provider.js +59 -33
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +15 -3
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -3
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
- package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/es/extensions/forms/Field/Email/Email.js +1 -1
- package/es/extensions/forms/Field/Email/Email.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +37 -9
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.d.ts +2 -0
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +13 -0
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -0
- package/es/extensions/forms/Field/Number/Number.d.ts +2 -2
- package/es/extensions/forms/Field/Number/Number.js +33 -31
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.d.ts +1 -1
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
- package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/es/extensions/forms/Field/Slider/Slider.js +7 -7
- package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +3 -4
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js +1 -3
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
- package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
- package/es/extensions/forms/Form/Section/Section.js.map +1 -1
- package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +9 -5
- package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +9 -7
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js +4 -4
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Value/Date/Date.d.ts +1 -1
- package/es/extensions/forms/Value/Date/Date.js +15 -5
- package/es/extensions/forms/Value/Date/Date.js.map +1 -1
- package/es/extensions/forms/Value/Date/DateDocs.js +1 -1
- package/es/extensions/forms/Value/Date/DateDocs.js.map +1 -1
- package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
- package/es/extensions/forms/Value/SelectCountry/SelectCountry.js +44 -0
- package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
- package/es/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
- package/es/extensions/forms/Value/SelectCountry/index.js +3 -0
- package/es/extensions/forms/Value/SelectCountry/index.js.map +1 -0
- package/es/extensions/forms/Value/Selection/SelectionDocs.js +1 -1
- package/es/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -1
- package/es/extensions/forms/Value/index.d.ts +1 -0
- package/es/extensions/forms/Value/index.js +1 -0
- package/es/extensions/forms/Value/index.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -3
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +5 -2
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/es/extensions/forms/constants/countries.d.ts +5 -2
- package/es/extensions/forms/constants/countries.js +72 -0
- package/es/extensions/forms/constants/countries.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -0
- package/es/extensions/forms/constants/locales/en-GB.js +3 -1
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +2 -0
- package/es/extensions/forms/constants/locales/index.d.ts +4 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +3 -1
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueDocs.js +7 -7
- package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/es/extensions/forms/hooks/useDataValue.d.ts +2 -1
- package/es/extensions/forms/hooks/useDataValue.js +7 -7
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.d.ts +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +288 -112
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +13 -10
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +33 -4
- package/es/extensions/forms/types.js.map +1 -1
- package/es/index.d.ts +2 -1
- package/es/index.js +2 -1
- package/es/index.js.map +1 -1
- package/es/shared/Context.js +4 -6
- 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/locales/en-GB.d.ts +3 -0
- package/es/shared/locales/en-GB.js +3 -0
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +3 -0
- package/es/shared/locales/index.d.ts +6 -0
- package/es/shared/locales/nb-NO.d.ts +3 -0
- package/es/shared/locales/nb-NO.js +3 -0
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/core/utilities.scss +3 -6
- 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 +45 -34
- package/es/style/dnb-ui-components.min.css +5 -5
- package/es/style/dnb-ui-components.scss +1 -0
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-elements.css +1 -1
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +13 -10
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +13 -10
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/dnb-ui-fragments.css +2 -2
- package/es/style/dnb-ui-fragments.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +59 -45
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -10
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +13 -10
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +59 -45
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -10
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +13 -10
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +59 -45
- package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -6
- package/es/style/themes/theme-ui/ui-theme-elements.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +13 -10
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +13 -10
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/esm/dnb-ui-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 +10 -7
- package/extensions/forms/DataContext/Context.js +0 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +7 -7
- package/extensions/forms/DataContext/Provider/Provider.js +60 -34
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +15 -3
- package/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -3
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
- package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/extensions/forms/Field/Email/Email.js +1 -1
- package/extensions/forms/Field/Email/Email.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +37 -9
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.d.ts +2 -0
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +13 -0
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -0
- package/extensions/forms/Field/Number/Number.d.ts +2 -2
- package/extensions/forms/Field/Number/Number.js +33 -31
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.d.ts +1 -1
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
- package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/extensions/forms/Field/Slider/Slider.js +7 -7
- package/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +3 -4
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/extensions/forms/Form/Handler/Handler.js +1 -3
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
- package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
- package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
- package/extensions/forms/Form/Section/Section.js.map +1 -1
- package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +9 -5
- package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js +9 -7
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +4 -4
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Value/Date/Date.d.ts +1 -1
- package/extensions/forms/Value/Date/Date.js +15 -5
- package/extensions/forms/Value/Date/Date.js.map +1 -1
- package/extensions/forms/Value/Date/DateDocs.js +1 -1
- package/extensions/forms/Value/Date/DateDocs.js.map +1 -1
- package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
- package/extensions/forms/Value/SelectCountry/SelectCountry.js +44 -0
- package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
- package/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
- package/extensions/forms/Value/SelectCountry/index.js +3 -0
- package/extensions/forms/Value/SelectCountry/index.js.map +1 -0
- package/extensions/forms/Value/Selection/SelectionDocs.js +1 -1
- package/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -1
- package/extensions/forms/Value/index.d.ts +1 -0
- package/extensions/forms/Value/index.js +1 -0
- package/extensions/forms/Value/index.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +4 -3
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.css +5 -2
- package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
- package/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
- package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/extensions/forms/constants/countries.d.ts +5 -2
- package/extensions/forms/constants/countries.js +72 -0
- package/extensions/forms/constants/countries.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +2 -0
- package/extensions/forms/constants/locales/en-GB.js +3 -1
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +2 -0
- package/extensions/forms/constants/locales/index.d.ts +4 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +2 -0
- package/extensions/forms/constants/locales/nb-NO.js +3 -1
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/DataValueDocs.js +7 -7
- package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.d.ts +2 -1
- package/extensions/forms/hooks/useDataValue.js +7 -7
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.d.ts +1 -1
- package/extensions/forms/hooks/useFieldProps.js +297 -116
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +13 -10
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +33 -4
- package/extensions/forms/types.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/package.json +2 -1
- package/shared/Context.js +4 -6
- 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/locales/en-GB.d.ts +3 -0
- package/shared/locales/en-GB.js +3 -0
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +3 -0
- package/shared/locales/index.d.ts +6 -0
- package/shared/locales/nb-NO.d.ts +3 -0
- package/shared/locales/nb-NO.js +3 -0
- package/shared/locales/nb-NO.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/core/utilities.scss +3 -6
- 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 +45 -34
- package/style/dnb-ui-components.min.css +5 -5
- package/style/dnb-ui-components.scss +1 -0
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-elements.css +1 -1
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/dnb-ui-extensions.css +13 -10
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +13 -10
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/dnb-ui-fragments.css +2 -2
- package/style/dnb-ui-fragments.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +59 -45
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
- package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -10
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +13 -10
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +59 -45
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -10
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +13 -10
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +59 -45
- package/style/themes/theme-ui/ui-theme-components.min.css +6 -6
- package/style/themes/theme-ui/ui-theme-elements.css +1 -1
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +13 -10
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +13 -10
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/umd/dnb-ui-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
- package/cjs/shared/helpers/useUnmountEffect.d.ts +0 -4
- package/cjs/shared/helpers/useUnmountEffect.js +0 -14
- package/cjs/shared/helpers/useUnmountEffect.js.map +0 -1
- package/es/shared/helpers/useUnmountEffect.d.ts +0 -4
- package/es/shared/helpers/useUnmountEffect.js +0 -9
- package/es/shared/helpers/useUnmountEffect.js.map +0 -1
- package/shared/helpers/useUnmountEffect.d.ts +0 -4
- package/shared/helpers/useUnmountEffect.js +0 -9
- package/shared/helpers/useUnmountEffect.js.map +0 -1
|
@@ -15,6 +15,16 @@ export const arraySelectionProperties = {
|
|
|
15
15
|
doc: 'For providing `<Field.Option>` components.',
|
|
16
16
|
type: 'React.Node',
|
|
17
17
|
status: 'optional'
|
|
18
|
+
},
|
|
19
|
+
data: {
|
|
20
|
+
doc: 'Data to be used for the component. The object needs to have a `value` and a `title` property. Provide the Dropdown or Autocomplete data in the format documented here: [Dropdown](/uilib/components/dropdown) and [Autocomplete](/uilib/components/autocomplete) documentation.',
|
|
21
|
+
type: 'array',
|
|
22
|
+
status: 'optional'
|
|
23
|
+
},
|
|
24
|
+
dataPath: {
|
|
25
|
+
doc: 'The path to the context data (Form.Handler). The context data object needs to have a `value` and a `title` property. The generated options will be placed above given JSX based children.',
|
|
26
|
+
type: 'string',
|
|
27
|
+
status: 'optional'
|
|
18
28
|
}
|
|
19
29
|
};
|
|
20
30
|
//# sourceMappingURL=ArraySelectionDocs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArraySelectionDocs.js","names":["arraySelectionProperties","variant","doc","type","defaultValue","status","optionsLayout","children"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const arraySelectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Choice of UI feature.',\n type: [`'checkbox'`, `'button'`, `'checkbox-button'`],\n defaultValue: `'checkbox'`,\n status: 'optional',\n },\n optionsLayout: {\n doc: 'Layout for the list of options.',\n type: [`'horizontal'`, `'vertical'`],\n defaultValue: `'vertical'`,\n status: 'optional',\n },\n children: {\n doc: 'For providing `<Field.Option>` components.',\n type: 'React.Node',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,wBAA8C,GAAG;EAC5DC,OAAO,EAAE;IACPC,GAAG,EAAE,uBAAuB;IAC5BC,IAAI,EAAE,CAAE,YAAW,EAAG,UAAS,EAAG,mBAAkB,CAAC;IACrDC,YAAY,EAAG,YAAW;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDC,aAAa,EAAE;IACbJ,GAAG,EAAE,iCAAiC;IACtCC,IAAI,EAAE,CAAE,cAAa,EAAG,YAAW,CAAC;IACpCC,YAAY,EAAG,YAAW;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRL,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,YAAY;IAClBE,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"ArraySelectionDocs.js","names":["arraySelectionProperties","variant","doc","type","defaultValue","status","optionsLayout","children","data","dataPath"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const arraySelectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Choice of UI feature.',\n type: [`'checkbox'`, `'button'`, `'checkbox-button'`],\n defaultValue: `'checkbox'`,\n status: 'optional',\n },\n optionsLayout: {\n doc: 'Layout for the list of options.',\n type: [`'horizontal'`, `'vertical'`],\n defaultValue: `'vertical'`,\n status: 'optional',\n },\n children: {\n doc: 'For providing `<Field.Option>` components.',\n type: 'React.Node',\n status: 'optional',\n },\n data: {\n doc: 'Data to be used for the component. The object needs to have a `value` and a `title` property. Provide the Dropdown or Autocomplete data in the format documented here: [Dropdown](/uilib/components/dropdown) and [Autocomplete](/uilib/components/autocomplete) documentation.',\n type: 'array',\n status: 'optional',\n },\n dataPath: {\n doc: 'The path to the context data (Form.Handler). The context data object needs to have a `value` and a `title` property. The generated options will be placed above given JSX based children.',\n type: 'string',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,wBAA8C,GAAG;EAC5DC,OAAO,EAAE;IACPC,GAAG,EAAE,uBAAuB;IAC5BC,IAAI,EAAE,CAAE,YAAW,EAAG,UAAS,EAAG,mBAAkB,CAAC;IACrDC,YAAY,EAAG,YAAW;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDC,aAAa,EAAE;IACbJ,GAAG,EAAE,iCAAiC;IACtCC,IAAI,EAAE,CAAE,cAAa,EAAG,YAAW,CAAC;IACpCC,YAAY,EAAG,YAAW;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRL,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,YAAY;IAClBE,MAAM,EAAE;EACV,CAAC;EACDG,IAAI,EAAE;IACJN,GAAG,EAAE,iRAAiR;IACtRC,IAAI,EAAE,OAAO;IACbE,MAAM,EAAE;EACV,CAAC;EACDI,QAAQ,EAAE;IACRP,GAAG,EAAE,2LAA2L;IAChMC,IAAI,EAAE,QAAQ;IACdE,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
column-gap: var(--spacing-small);
|
|
26
26
|
row-gap: var(--row-gap);
|
|
27
27
|
}
|
|
28
|
-
@media screen and (min-width:
|
|
28
|
+
@media screen and (min-width: 40.0625em) {
|
|
29
29
|
.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label {
|
|
30
30
|
line-height: 2.5rem;
|
|
31
31
|
margin-bottom: 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-forms-field-array-selection{--row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--row-gap)}.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{align-items:flex-start}.dnb-forms-field-array-selection--variant-checkbox.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{row-gap:0}.dnb-forms-field-array-selection--variant-button.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{line-height:2.5rem}.dnb-forms-field-array-selection--options-layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--row-gap)}@media screen and (min-width:
|
|
1
|
+
.dnb-forms-field-array-selection{--row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--row-gap)}.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{align-items:flex-start}.dnb-forms-field-array-selection--variant-checkbox.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{row-gap:0}.dnb-forms-field-array-selection--variant-button.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{line-height:2.5rem}.dnb-forms-field-array-selection--options-layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--row-gap)}@media screen and (min-width:40.0625em){.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem;margin-bottom:0}}
|
|
@@ -15,7 +15,7 @@ function Email(props) {
|
|
|
15
15
|
label: translations.label,
|
|
16
16
|
autoComplete: 'email',
|
|
17
17
|
inputMode: 'email',
|
|
18
|
-
pattern:
|
|
18
|
+
pattern: `^(?!.*\\.\\.)(?!.*--)(?!.*\\.-)(?!.*-\\.)` + `[a-zA-Z0-9]+([._%+-]?[a-zA-Z0-9]+)*@` + `(?:` + `([a-zA-Z0-9]+([.-]?[a-zA-Z0-9]+)*\\.[a-zA-Z]{2,})` + `|` + `\\[(?:` + `(?:\\d{1,3}\\.){3}\\d{1,3}` + `|` + `IPv6:[0-9a-fA-F:]+` + `)\\]` + `)$`,
|
|
19
19
|
trim: true
|
|
20
20
|
}, props), {}, {
|
|
21
21
|
errorMessages
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Email.js","names":["React","StringField","useErrorMessage","useTranslation","Email","props","translations","errorMessages","path","required","errorRequired","pattern","errorPattern","StringFieldProps","_objectSpread","label","autoComplete","inputMode","trim","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Email/Email.tsx"],"sourcesContent":["import React from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps\n\nfunction Email(props: Props) {\n const translations = useTranslation().Email\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n\n const StringFieldProps: Props = {\n label: translations.label,\n autoComplete: 'email',\n inputMode: 'email',\n pattern:\n \
|
|
1
|
+
{"version":3,"file":"Email.js","names":["React","StringField","useErrorMessage","useTranslation","Email","props","translations","errorMessages","path","required","errorRequired","pattern","errorPattern","StringFieldProps","_objectSpread","label","autoComplete","inputMode","trim","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Email/Email.tsx"],"sourcesContent":["import React from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps\n\nfunction Email(props: Props) {\n const translations = useTranslation().Email\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n\n const StringFieldProps: Props = {\n label: translations.label,\n autoComplete: 'email',\n inputMode: 'email',\n pattern:\n `^(?!.*\\\\.\\\\.)(?!.*--)(?!.*\\\\.-)(?!.*-\\\\.)` + // No consecutive dots, hyphens, or dot-hyphen sequences\n `[a-zA-Z0-9]+([._%+-]?[a-zA-Z0-9]+)*@` + // Local part: letters, numbers, dots, etc.\n `(?:` +\n `([a-zA-Z0-9]+([.-]?[a-zA-Z0-9]+)*\\\\.[a-zA-Z]{2,})` + // Domain part: standard domain names\n `|` +\n `\\\\[(?:` +\n `(?:\\\\d{1,3}\\\\.){3}\\\\d{1,3}` + // Allow IPv4 address (no validation)\n `|` +\n `IPv6:[0-9a-fA-F:]+` + // Allow IPv6 address (no validation)\n `)\\\\]` +\n `)$`,\n trim: true,\n ...props,\n errorMessages,\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nEmail._supportsSpacingProps = true\nexport default Email\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,eAAe,MAAM,6BAA6B;AACzD,OAAOC,cAAc,MAAM,4BAA4B;AAIvD,SAASC,KAAKA,CAACC,KAAY,EAAE;EAC3B,MAAMC,YAAY,GAAGH,cAAc,CAAC,CAAC,CAACC,KAAK;EAE3C,MAAMG,aAAa,GAAGL,eAAe,CAACG,KAAK,CAACG,IAAI,EAAEH,KAAK,CAACE,aAAa,EAAE;IACrEE,QAAQ,EAAEH,YAAY,CAACI,aAAa;IACpCC,OAAO,EAAEL,YAAY,CAACM;EACxB,CAAC,CAAC;EAEF,MAAMC,gBAAuB,GAAAC,aAAA,CAAAA,aAAA;IAC3BC,KAAK,EAAET,YAAY,CAACS,KAAK;IACzBC,YAAY,EAAE,OAAO;IACrBC,SAAS,EAAE,OAAO;IAClBN,OAAO,EACJ,2CAA0C,GAC1C,sCAAqC,GACrC,KAAI,GACJ,mDAAkD,GAClD,GAAE,GACF,QAAO,GACP,4BAA2B,GAC3B,GAAE,GACF,oBAAmB,GACnB,MAAK,GACL,IAAG;IACNO,IAAI,EAAE;EAAI,GACPb,KAAK;IACRE;EAAa,EACd;EAED,OAAOP,KAAA,CAAAmB,aAAA,CAAClB,WAAW,EAAKY,gBAAmB,CAAC;AAC9C;AAEAT,KAAK,CAACgB,qBAAqB,GAAG,IAAI;AAClC,eAAehB,KAAK"}
|
|
@@ -1,30 +1,58 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
3
|
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; }
|
|
4
|
-
import React, { useMemo } from 'react';
|
|
4
|
+
import React, { useCallback, useMemo } from 'react';
|
|
5
5
|
import StringField from '../String';
|
|
6
|
+
import { dnr, fnr } from '@navikt/fnrvalidator';
|
|
6
7
|
import useErrorMessage from '../../hooks/useErrorMessage';
|
|
7
8
|
import useTranslation from '../../hooks/useTranslation';
|
|
8
9
|
function NationalIdentityNumber(props) {
|
|
9
|
-
var _props$
|
|
10
|
-
const translations = useTranslation().NationalIdentityNumber;
|
|
11
|
-
const errorMessage = translations.errorRequired;
|
|
10
|
+
var _props$label, _props$width;
|
|
12
11
|
const {
|
|
13
12
|
validate = true,
|
|
14
13
|
omitMask
|
|
15
14
|
} = props;
|
|
15
|
+
const translations = useTranslation().NationalIdentityNumber;
|
|
16
|
+
const {
|
|
17
|
+
label,
|
|
18
|
+
errorRequired,
|
|
19
|
+
errorFnr,
|
|
20
|
+
errorDnr
|
|
21
|
+
} = translations;
|
|
16
22
|
const errorMessages = useErrorMessage(props.path, props.errorMessages, {
|
|
17
|
-
required:
|
|
18
|
-
pattern:
|
|
23
|
+
required: errorRequired,
|
|
24
|
+
pattern: errorRequired,
|
|
25
|
+
errorFnr,
|
|
26
|
+
errorDnr
|
|
19
27
|
});
|
|
20
28
|
const mask = useMemo(() => omitMask ? Array(11).fill(/\d/) : [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, /\d/], [omitMask]);
|
|
29
|
+
const validationPattern = '^[0-9]{11}$';
|
|
30
|
+
const fnrValidator = useCallback(value => {
|
|
31
|
+
if (new RegExp(validationPattern).test(value) && fnr(value).status === 'invalid') {
|
|
32
|
+
return Error(errorFnr);
|
|
33
|
+
}
|
|
34
|
+
}, [errorFnr]);
|
|
35
|
+
const dnrValidator = useCallback(value => {
|
|
36
|
+
const validationPattern = '^[4-7]([0-9]{10}$)';
|
|
37
|
+
if (new RegExp(validationPattern).test(value) && dnr(value).status === 'invalid') {
|
|
38
|
+
return Error(errorDnr);
|
|
39
|
+
}
|
|
40
|
+
}, [errorDnr]);
|
|
41
|
+
const dnrAndFnrValidator = useCallback(value => {
|
|
42
|
+
return dnrValidator(value) || fnrValidator(value);
|
|
43
|
+
}, [dnrValidator, fnrValidator]);
|
|
21
44
|
const StringFieldProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
22
|
-
pattern:
|
|
23
|
-
label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label :
|
|
45
|
+
pattern: validate && props.pattern ? props.pattern : validate && !props.validator ? validationPattern : undefined,
|
|
46
|
+
label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : label,
|
|
24
47
|
errorMessages,
|
|
25
48
|
mask,
|
|
26
49
|
width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : 'medium',
|
|
27
|
-
inputMode: 'numeric'
|
|
50
|
+
inputMode: 'numeric',
|
|
51
|
+
validator: validate ? props.validator || dnrAndFnrValidator : undefined,
|
|
52
|
+
exportValidators: {
|
|
53
|
+
dnrValidator,
|
|
54
|
+
fnrValidator
|
|
55
|
+
}
|
|
28
56
|
});
|
|
29
57
|
return React.createElement(StringField, StringFieldProps);
|
|
30
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NationalIdentityNumber.js","names":["React","useMemo","StringField","useErrorMessage","useTranslation","NationalIdentityNumber","props","_props$
|
|
1
|
+
{"version":3,"file":"NationalIdentityNumber.js","names":["React","useCallback","useMemo","StringField","dnr","fnr","useErrorMessage","useTranslation","NationalIdentityNumber","props","_props$label","_props$width","validate","omitMask","translations","label","errorRequired","errorFnr","errorDnr","errorMessages","path","required","pattern","mask","Array","fill","validationPattern","fnrValidator","value","RegExp","test","status","Error","dnrValidator","dnrAndFnrValidator","StringFieldProps","_objectSpread","validator","undefined","width","inputMode","exportValidators","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { dnr, fnr } from '@navikt/fnrvalidator'\n\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps & {\n omitMask?: boolean\n validate?: boolean\n}\n\nfunction NationalIdentityNumber(props: Props) {\n const { validate = true, omitMask } = props\n\n const translations = useTranslation().NationalIdentityNumber\n const { label, errorRequired, errorFnr, errorDnr } = translations\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: errorRequired,\n pattern: errorRequired,\n errorFnr,\n errorDnr,\n })\n\n const mask = useMemo(\n () =>\n omitMask\n ? Array(11).fill(/\\d/)\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n const validationPattern = '^[0-9]{11}$'\n\n const fnrValidator = useCallback(\n (value: string) => {\n if (\n new RegExp(validationPattern).test(value) &&\n fnr(value).status === 'invalid'\n ) {\n return Error(errorFnr)\n }\n },\n [errorFnr]\n )\n\n const dnrValidator = useCallback(\n (value: string) => {\n const validationPattern = '^[4-7]([0-9]{10}$)' // 1st num is increased by 4. i.e, if 01.01.1985, D number would be 410185.\n if (\n new RegExp(validationPattern).test(value) &&\n dnr(value).status === 'invalid'\n ) {\n return Error(errorDnr)\n }\n },\n [errorDnr]\n )\n\n const dnrAndFnrValidator = useCallback(\n (value: string) => {\n return dnrValidator(value) || fnrValidator(value)\n },\n [dnrValidator, fnrValidator]\n )\n\n const StringFieldProps: Props = {\n ...props,\n pattern:\n validate && props.pattern\n ? props.pattern\n : validate && !props.validator\n ? validationPattern\n : undefined,\n label: props.label ?? label,\n errorMessages,\n mask,\n width: props.width ?? 'medium',\n inputMode: 'numeric',\n validator: validate\n ? props.validator || dnrAndFnrValidator\n : undefined,\n exportValidators: { dnrValidator, fnrValidator },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nNationalIdentityNumber._supportsSpacingProps = true\nexport default NationalIdentityNumber\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACnD,OAAOC,WAAW,MAAqC,WAAW;AAClE,SAASC,GAAG,EAAEC,GAAG,QAAQ,sBAAsB;AAE/C,OAAOC,eAAe,MAAM,6BAA6B;AACzD,OAAOC,cAAc,MAAM,4BAA4B;AAOvD,SAASC,sBAAsBA,CAACC,KAAY,EAAE;EAAA,IAAAC,YAAA,EAAAC,YAAA;EAC5C,MAAM;IAAEC,QAAQ,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGJ,KAAK;EAE3C,MAAMK,YAAY,GAAGP,cAAc,CAAC,CAAC,CAACC,sBAAsB;EAC5D,MAAM;IAAEO,KAAK;IAAEC,aAAa;IAAEC,QAAQ;IAAEC;EAAS,CAAC,GAAGJ,YAAY;EACjE,MAAMK,aAAa,GAAGb,eAAe,CAACG,KAAK,CAACW,IAAI,EAAEX,KAAK,CAACU,aAAa,EAAE;IACrEE,QAAQ,EAAEL,aAAa;IACvBM,OAAO,EAAEN,aAAa;IACtBC,QAAQ;IACRC;EACF,CAAC,CAAC;EAEF,MAAMK,IAAI,GAAGrB,OAAO,CAClB,MACEW,QAAQ,GACJW,KAAK,CAAC,EAAE,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,GACpB,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,EACP,CAACZ,QAAQ,CACX,CAAC;EACD,MAAMa,iBAAiB,GAAG,aAAa;EAEvC,MAAMC,YAAY,GAAG1B,WAAW,CAC7B2B,KAAa,IAAK;IACjB,IACE,IAAIC,MAAM,CAACH,iBAAiB,CAAC,CAACI,IAAI,CAACF,KAAK,CAAC,IACzCvB,GAAG,CAACuB,KAAK,CAAC,CAACG,MAAM,KAAK,SAAS,EAC/B;MACA,OAAOC,KAAK,CAACf,QAAQ,CAAC;IACxB;EACF,CAAC,EACD,CAACA,QAAQ,CACX,CAAC;EAED,MAAMgB,YAAY,GAAGhC,WAAW,CAC7B2B,KAAa,IAAK;IACjB,MAAMF,iBAAiB,GAAG,oBAAoB;IAC9C,IACE,IAAIG,MAAM,CAACH,iBAAiB,CAAC,CAACI,IAAI,CAACF,KAAK,CAAC,IACzCxB,GAAG,CAACwB,KAAK,CAAC,CAACG,MAAM,KAAK,SAAS,EAC/B;MACA,OAAOC,KAAK,CAACd,QAAQ,CAAC;IACxB;EACF,CAAC,EACD,CAACA,QAAQ,CACX,CAAC;EAED,MAAMgB,kBAAkB,GAAGjC,WAAW,CACnC2B,KAAa,IAAK;IACjB,OAAOK,YAAY,CAACL,KAAK,CAAC,IAAID,YAAY,CAACC,KAAK,CAAC;EACnD,CAAC,EACD,CAACK,YAAY,EAAEN,YAAY,CAC7B,CAAC;EAED,MAAMQ,gBAAuB,GAAAC,aAAA,CAAAA,aAAA,KACxB3B,KAAK;IACRa,OAAO,EACLV,QAAQ,IAAIH,KAAK,CAACa,OAAO,GACrBb,KAAK,CAACa,OAAO,GACbV,QAAQ,IAAI,CAACH,KAAK,CAAC4B,SAAS,GAC5BX,iBAAiB,GACjBY,SAAS;IACfvB,KAAK,GAAAL,YAAA,GAAED,KAAK,CAACM,KAAK,cAAAL,YAAA,cAAAA,YAAA,GAAIK,KAAK;IAC3BI,aAAa;IACbI,IAAI;IACJgB,KAAK,GAAA5B,YAAA,GAAEF,KAAK,CAAC8B,KAAK,cAAA5B,YAAA,cAAAA,YAAA,GAAI,QAAQ;IAC9B6B,SAAS,EAAE,SAAS;IACpBH,SAAS,EAAEzB,QAAQ,GACfH,KAAK,CAAC4B,SAAS,IAAIH,kBAAkB,GACrCI,SAAS;IACbG,gBAAgB,EAAE;MAAER,YAAY;MAAEN;IAAa;EAAC,EACjD;EAED,OAAO3B,KAAA,CAAA0C,aAAA,CAACvC,WAAW,EAAKgC,gBAAmB,CAAC;AAC9C;AAEA3B,sBAAsB,CAACmC,qBAAqB,GAAG,IAAI;AACnD,eAAenC,sBAAsB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const NationalIdentityNumberProperties = {
|
|
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
|
+
};
|
|
13
|
+
//# sourceMappingURL=NationalIdentityNumberDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NationalIdentityNumberDocs.js","names":["NationalIdentityNumberProperties","validate","doc","type","status","help"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const NationalIdentityNumberProperties: 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}\n"],"mappings":"AAEA,OAAO,MAAMA,gCAAsD,GAAG;EACpEC,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;AACF,CAAC"}
|
|
@@ -21,8 +21,8 @@ export type Props = FieldHelpProps & FieldProps<number, undefined | number, Erro
|
|
|
21
21
|
decimalLimit?: number;
|
|
22
22
|
allowNegative?: boolean;
|
|
23
23
|
disallowLeadingZeroes?: boolean;
|
|
24
|
-
prefix?: string;
|
|
25
|
-
suffix?: string;
|
|
24
|
+
prefix?: string | ((value: number) => string);
|
|
25
|
+
suffix?: string | ((value: number) => string);
|
|
26
26
|
minimum?: number;
|
|
27
27
|
maximum?: number;
|
|
28
28
|
exclusiveMinimum?: number;
|
|
@@ -33,8 +33,8 @@ function NumberComponent(props) {
|
|
|
33
33
|
decimalLimit = 12,
|
|
34
34
|
allowNegative = true,
|
|
35
35
|
disallowLeadingZeroes = false,
|
|
36
|
-
prefix,
|
|
37
|
-
suffix,
|
|
36
|
+
prefix: prefixProp,
|
|
37
|
+
suffix: suffixProp,
|
|
38
38
|
showStepControls
|
|
39
39
|
} = props;
|
|
40
40
|
const errorMessages = useErrorMessage(props.path, props.errorMessages, {
|
|
@@ -72,35 +72,6 @@ function NumberComponent(props) {
|
|
|
72
72
|
}
|
|
73
73
|
return numberValue;
|
|
74
74
|
}, [props.emptyValue]);
|
|
75
|
-
const maskProps = useMemo(() => {
|
|
76
|
-
const mask_options = {
|
|
77
|
-
prefix,
|
|
78
|
-
suffix,
|
|
79
|
-
decimalLimit,
|
|
80
|
-
allowNegative,
|
|
81
|
-
disallowLeadingZeroes
|
|
82
|
-
};
|
|
83
|
-
if (currency) {
|
|
84
|
-
return {
|
|
85
|
-
as_currency: currency,
|
|
86
|
-
mask_options,
|
|
87
|
-
currency_mask: {
|
|
88
|
-
currencyDisplay
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
if (percent) {
|
|
93
|
-
return {
|
|
94
|
-
as_percent: percent,
|
|
95
|
-
mask_options
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
99
|
-
as_number: true,
|
|
100
|
-
mask,
|
|
101
|
-
number_mask: _objectSpread({}, mask_options)
|
|
102
|
-
};
|
|
103
|
-
}, [currency, currencyDisplay, decimalLimit, mask, percent, prefix, suffix, allowNegative, disallowLeadingZeroes]);
|
|
104
75
|
const preparedProps = _objectSpread(_objectSpread({
|
|
105
76
|
valueType: 'number'
|
|
106
77
|
}, props), {}, {
|
|
@@ -214,6 +185,37 @@ function NumberComponent(props) {
|
|
|
214
185
|
onClick: decreaseClickHandler,
|
|
215
186
|
title: sharedContext === null || sharedContext === void 0 ? void 0 : (_sharedContext$transl2 = sharedContext.translation.Slider.subtractTitle) === null || _sharedContext$transl2 === void 0 ? void 0 : _sharedContext$transl2.replace('%s', String(value - step))
|
|
216
187
|
});
|
|
188
|
+
const prefix = typeof prefixProp === 'function' ? prefixProp(value) : prefixProp;
|
|
189
|
+
const suffix = typeof suffixProp === 'function' ? suffixProp(value) : suffixProp;
|
|
190
|
+
const maskProps = useMemo(() => {
|
|
191
|
+
const mask_options = {
|
|
192
|
+
prefix,
|
|
193
|
+
suffix,
|
|
194
|
+
decimalLimit,
|
|
195
|
+
allowNegative,
|
|
196
|
+
disallowLeadingZeroes
|
|
197
|
+
};
|
|
198
|
+
if (currency) {
|
|
199
|
+
return {
|
|
200
|
+
as_currency: currency,
|
|
201
|
+
mask_options,
|
|
202
|
+
currency_mask: {
|
|
203
|
+
currencyDisplay
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
if (percent) {
|
|
208
|
+
return {
|
|
209
|
+
as_percent: percent,
|
|
210
|
+
mask_options
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
as_number: true,
|
|
215
|
+
mask,
|
|
216
|
+
number_mask: _objectSpread({}, mask_options)
|
|
217
|
+
};
|
|
218
|
+
}, [currency, currencyDisplay, decimalLimit, mask, percent, prefix, suffix, allowNegative, disallowLeadingZeroes]);
|
|
217
219
|
const ariaParams = showStepControls && {
|
|
218
220
|
role: 'spinbutton',
|
|
219
221
|
'aria-valuemin': String(minimum),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","DataContext","defaultMinimum","Number","MIN_SAFE_INTEGER","defaultMaximum","MAX_SAFE_INTEGER","NumberComponent","props","_props$width","_dataContext$props2","_sharedContext$transl","_sharedContext$transl2","dataContext","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","suffix","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","_props$minimum","_props$maximum","type","toInput","external","undefined","fromInput","_ref","value","numberValue","emptyValue","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","_objectSpread","preparedProps","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","startWith","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","handleSubmit","onKeyDownHandler","_ref2","_dataContext$props","event","isolate","key","_event$preventDefault","preventDefault","call","persist","fieldBlockProps","contentClassName","forId","contentWidth","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseClickHandler","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext from '../../DataContext/Context'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined | number, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n }\n\nconst defaultMinimum = Number.MIN_SAFE_INTEGER\nconst defaultMaximum = Number.MAX_SAFE_INTEGER\n\nfunction NumberComponent(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix,\n suffix,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum ?? defaultMinimum,\n maximum: props.maximum ?? defaultMaximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n startWith = null,\n minimum = defaultMinimum,\n maximum = defaultMaximum,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const { handleSubmit } = dataContext ?? {}\n const onKeyDownHandler = useCallback(\n ({ event }: { event: React.KeyboardEvent<HTMLInputElement> }) => {\n if (dataContext?.props?.isolate && event.key === 'Enter') {\n handleSubmit() // So we commit the data to the outer context\n event.preventDefault?.() // And prevent the default form submit\n }\n\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (event.key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n dataContext?.props?.isolate,\n handleChange,\n handleSubmit,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","DataContext","defaultMinimum","Number","MIN_SAFE_INTEGER","defaultMaximum","MAX_SAFE_INTEGER","NumberComponent","props","_props$width","_dataContext$props2","_sharedContext$transl","_sharedContext$transl2","dataContext","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","prefixProp","suffix","suffixProp","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","_props$minimum","_props$maximum","type","toInput","external","undefined","fromInput","_ref","value","numberValue","emptyValue","preparedProps","_objectSpread","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","startWith","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","handleSubmit","onKeyDownHandler","_ref2","_dataContext$props","event","isolate","key","_event$preventDefault","preventDefault","call","persist","fieldBlockProps","contentClassName","forId","contentWidth","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseClickHandler","decreaseProps","subtractTitle","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext from '../../DataContext/Context'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined | number, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\n prefix?: string | ((value: number) => string)\n suffix?: string | ((value: number) => string)\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n }\n\nconst defaultMinimum = Number.MIN_SAFE_INTEGER\nconst defaultMaximum = Number.MAX_SAFE_INTEGER\n\nfunction NumberComponent(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix: prefixProp,\n suffix: suffixProp,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum ?? defaultMinimum,\n maximum: props.maximum ?? defaultMaximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n startWith = null,\n minimum = defaultMinimum,\n maximum = defaultMaximum,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const { handleSubmit } = dataContext ?? {}\n const onKeyDownHandler = useCallback(\n ({ event }: { event: React.KeyboardEvent<HTMLInputElement> }) => {\n if (dataContext?.props?.isolate && event.key === 'Enter') {\n handleSubmit() // So we commit the data to the outer context\n event.preventDefault?.() // And prevent the default form submit\n }\n\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (event.key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n dataContext?.props?.isolate,\n handleChange,\n handleSubmit,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const prefix =\n typeof prefixProp === 'function' ? prefixProp(value) : prefixProp\n const suffix =\n typeof suffixProp === 'function' ? suffixProp(value) : suffixProp\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import { PropertiesTableProps } from '../../../../shared/types';
|
|
2
|
+
export declare const SelectCountryProperties: PropertiesTableProps;
|
|
3
|
+
export declare const SelectCountryGeneralEvents: PropertiesTableProps;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { getFieldEventsWithTypes } from '../FieldDocs';
|
|
2
|
-
export const
|
|
2
|
+
export const SelectCountryProperties = {
|
|
3
|
+
countries: {
|
|
4
|
+
doc: 'List only a certain set of countries: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all countries [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCountry/#filter-or-prioritize-country-listing)). Defaults to `Prioritized`.',
|
|
5
|
+
type: 'string',
|
|
6
|
+
status: 'optional'
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
export const SelectCountryGeneralEvents = getFieldEventsWithTypes({
|
|
3
10
|
type: 'string',
|
|
4
11
|
optional: true
|
|
5
12
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectCountryDocs.js","names":["getFieldEventsWithTypes","
|
|
1
|
+
{"version":3,"file":"SelectCountryDocs.js","names":["getFieldEventsWithTypes","SelectCountryProperties","countries","doc","type","status","SelectCountryGeneralEvents","optional"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountryDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { getFieldEventsWithTypes } from '../FieldDocs'\n\nexport const SelectCountryProperties: PropertiesTableProps = {\n countries: {\n doc: 'List only a certain set of countries: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all countries [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCountry/#filter-or-prioritize-country-listing)). Defaults to `Prioritized`.',\n type: 'string',\n status: 'optional',\n },\n}\n\nexport const SelectCountryGeneralEvents = getFieldEventsWithTypes(\n { type: 'string', optional: true },\n { type: 'object', optional: true }\n)\n"],"mappings":"AACA,SAASA,uBAAuB,QAAQ,cAAc;AAEtD,OAAO,MAAMC,uBAA6C,GAAG;EAC3DC,SAAS,EAAE;IACTC,GAAG,EAAE,sPAAsP;IAC3PC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMC,0BAA0B,GAAGN,uBAAuB,CAC/D;EAAEI,IAAI,EAAE,QAAQ;EAAEG,QAAQ,EAAE;AAAK,CAAC,EAClC;EAAEH,IAAI,EAAE,QAAQ;EAAEG,QAAQ,EAAE;AAAK,CACnC,CAAC"}
|
|
@@ -32,7 +32,7 @@ export type Props = FieldHelpProps & FieldProps<IOption['value']> & {
|
|
|
32
32
|
optionsLayout?: 'horizontal' | 'vertical';
|
|
33
33
|
/**
|
|
34
34
|
* The path to the context data (Form.Handler).
|
|
35
|
-
* The object needs to have a `value` and a `title` property.
|
|
35
|
+
* The context data object needs to have a `value` and a `title` property.
|
|
36
36
|
*/
|
|
37
37
|
dataPath?: Path;
|
|
38
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Selection.js","names":["React","useMemo","useCallback","classnames","makeUniqueId","ToggleButton","Dropdown","Radio","HelpButton","Autocomplete","OptionField","useFieldProps","pickSpacingProps","FieldBlock","FormError","convertCamelCaseProps","useDataValue","Selection","props","clearValue","id","className","variant","label","labelDescription","layout","optionsLayout","placeholder","value","info","warning","error","hasError","disabled","help","emptyValue","width","htmlAttributes","setHasFocus","handleChange","data","dataPath","children","autocompleteProps","dropdownProps","getValueByPath","dataList","handleDropdownChange","_ref","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","fieldBlockProps","_objectSpread","forId","Component","items","renderRadioItems","createElement","_extends","asFieldset","Children","count","Group","layout_direction","on_change","String","status","getStatus","renderDropdownItems","concat","makeOptions","filter","Boolean","sharedProps","list_class","portal_class","title","suffix","content","on_show","on_hide","stretch","_error$message","message","Error","toString","_ref5","optionsCount","length","createOption","i","rest","_objectWithoutProperties","_excluded","size","key","text","map","mapOptions","_ref6","child","isValidElement","type","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref7","_props$children","_props$value","_em","_ref8","_em2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n Autocomplete,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock from '../../FieldBlock'\nimport {\n FormError,\n FieldProps,\n FieldHelpProps,\n FieldBlockWidth,\n Path,\n} from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpButtonProps } from '../../../../components/HelpButton'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n}>\n\nexport type Props = FieldHelpProps &\n FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * The path to the context data (Form.Handler).\n * The object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n }\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n label,\n labelDescription,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n data,\n dataPath,\n children,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection__options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n }\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n })\n\n return (\n <FieldBlock\n {...fieldBlockProps}\n asFieldset={React.Children.count(items) > 1}\n >\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const status = getStatus(error, info, warning)\n const data = renderDropdownItems(dataList)\n .concat(makeOptions(children))\n .filter(Boolean)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status: (hasError || status) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleDropdownChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldBlockProps} width={width}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\nexport function getStatus(\n error: Error | FormError | undefined,\n info: React.ReactNode,\n warning: React.ReactNode\n) {\n return (\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n )\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n error?: Error | FormError | undefined\n title: React.ReactNode\n help?: HelpButtonProps\n children?: React.ReactNode\n }>\n>\n\nfunction renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { error, title, help, children, ...rest } = props\n\n const label = title ?? children\n const status = getStatus(error, info, warning)\n const suffix = help ? (\n <HelpButton size=\"small\" title={help.title}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n label={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\n value={String(value ?? '')}\n status={(hasError || status) && 'error'}\n suffix={suffix}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(children: React.ReactNode, { createOption }) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.children ?? props.title ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selectedKey = String(props.value ?? '')\n\n return { selectedKey, content }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(data: Data) {\n return (\n data?.map(({ value, title, text }) => ({\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n })) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Selection.js","names":["React","useMemo","useCallback","classnames","makeUniqueId","ToggleButton","Dropdown","Radio","HelpButton","Autocomplete","OptionField","useFieldProps","pickSpacingProps","FieldBlock","FormError","convertCamelCaseProps","useDataValue","Selection","props","clearValue","id","className","variant","label","labelDescription","layout","optionsLayout","placeholder","value","info","warning","error","hasError","disabled","help","emptyValue","width","htmlAttributes","setHasFocus","handleChange","data","dataPath","children","autocompleteProps","dropdownProps","getValueByPath","dataList","handleDropdownChange","_ref","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","fieldBlockProps","_objectSpread","forId","Component","items","renderRadioItems","createElement","_extends","asFieldset","Children","count","Group","layout_direction","on_change","String","status","getStatus","renderDropdownItems","concat","makeOptions","filter","Boolean","sharedProps","list_class","portal_class","title","suffix","content","on_show","on_hide","stretch","_error$message","message","Error","toString","_ref5","optionsCount","length","createOption","i","rest","_objectWithoutProperties","_excluded","size","key","text","map","mapOptions","_ref6","child","isValidElement","type","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref7","_props$children","_props$value","_em","_ref8","_em2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n Autocomplete,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock from '../../FieldBlock'\nimport {\n FormError,\n FieldProps,\n FieldHelpProps,\n FieldBlockWidth,\n Path,\n} from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpButtonProps } from '../../../../components/HelpButton'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n}>\n\nexport type Props = FieldHelpProps &\n FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * The path to the context data (Form.Handler).\n * The context data object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n }\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n label,\n labelDescription,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n data,\n dataPath,\n children,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection__options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n }\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n })\n\n return (\n <FieldBlock\n {...fieldBlockProps}\n asFieldset={React.Children.count(items) > 1}\n >\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const status = getStatus(error, info, warning)\n const data = renderDropdownItems(dataList)\n .concat(makeOptions(children))\n .filter(Boolean)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status: (hasError || status) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleDropdownChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldBlockProps} width={width}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\nexport function getStatus(\n error: Error | FormError | undefined,\n info: React.ReactNode,\n warning: React.ReactNode\n) {\n return (\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n )\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n error?: Error | FormError | undefined\n title: React.ReactNode\n help?: HelpButtonProps\n children?: React.ReactNode\n }>\n>\n\nfunction renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { error, title, help, children, ...rest } = props\n\n const label = title ?? children\n const status = getStatus(error, info, warning)\n const suffix = help ? (\n <HelpButton size=\"small\" title={help.title}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n label={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\n value={String(value ?? '')}\n status={(hasError || status) && 'error'}\n suffix={suffix}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(children: React.ReactNode, { createOption }) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.children ?? props.title ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selectedKey = String(props.value ?? '')\n\n return { selectedKey, content }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(data: Data) {\n return (\n data?.map(({ value, title, text }) => ({\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n })) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
|
|
@@ -4,6 +4,11 @@ export const SelectionProperties = {
|
|
|
4
4
|
type: 'string',
|
|
5
5
|
status: 'optional'
|
|
6
6
|
},
|
|
7
|
+
value: {
|
|
8
|
+
doc: 'Defines the `value`. When using variant `radio` or `button`, value has to be a `string`.',
|
|
9
|
+
type: ['number', 'string'],
|
|
10
|
+
status: 'optional'
|
|
11
|
+
},
|
|
7
12
|
optionsLayout: {
|
|
8
13
|
doc: 'Layout for the list of options. Can be `horizontal` or `vertical`.',
|
|
9
14
|
type: 'string',
|
|
@@ -25,7 +30,7 @@ export const SelectionProperties = {
|
|
|
25
30
|
status: 'optional'
|
|
26
31
|
},
|
|
27
32
|
dataPath: {
|
|
28
|
-
doc: 'The path to the context data (Form.Handler). The object needs to have a `value` and a `title` property. The generated options will be placed above given JSX based children.',
|
|
33
|
+
doc: 'The path to the context data (Form.Handler). The context data object needs to have a `value` and a `title` property. The generated options will be placed above given JSX based children.',
|
|
29
34
|
type: 'string',
|
|
30
35
|
status: 'optional'
|
|
31
36
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionDocs.js","names":["SelectionProperties","variant","doc","type","status","optionsLayout","width","help","data","dataPath","autocompleteProps","dropdownProps","children"],"sources":["../../../../../../src/extensions/forms/Field/Selection/SelectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const SelectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Choice of UI feature. Can be: `dropdown`, `autocomplete`, `radio` or `button`.',\n type: 'string',\n status: 'optional',\n },\n optionsLayout: {\n doc: 'Layout for the list of options. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\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 data: {\n doc: 'Data to be used for the component. The object needs to have a `value` and a `title` property. Provide the Dropdown or Autocomplete data in the format documented here: [Dropdown](/uilib/components/dropdown) and [Autocomplete](/uilib/components/autocomplete) documentation.',\n type: 'array',\n status: 'optional',\n },\n dataPath: {\n doc: 'The path to the context data (Form.Handler). The object needs to have a `value` and a `title` property. The generated options will be placed above given JSX based children.',\n type: 'string',\n status: 'optional',\n },\n autocompleteProps: {\n doc: 'Forward any additional props (camelCase) to the [Autocomplete](/uilib/components/autocomplete/) component.',\n type: 'object',\n status: 'optional',\n },\n dropdownProps: {\n doc: 'Forward any additional props (camelCase) to the [Dropdown](/uilib/components/dropdown/) component.',\n type: 'object',\n status: 'optional',\n },\n children: {\n doc: 'For providing Option components.',\n type: 'React.Node',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,mBAAyC,GAAG;EACvDC,OAAO,EAAE;IACPC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"SelectionDocs.js","names":["SelectionProperties","variant","doc","type","status","value","optionsLayout","width","help","data","dataPath","autocompleteProps","dropdownProps","children"],"sources":["../../../../../../src/extensions/forms/Field/Selection/SelectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const SelectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Choice of UI feature. Can be: `dropdown`, `autocomplete`, `radio` or `button`.',\n type: 'string',\n status: 'optional',\n },\n value: {\n doc: 'Defines the `value`. When using variant `radio` or `button`, value has to be a `string`.',\n type: ['number', 'string'],\n status: 'optional',\n },\n optionsLayout: {\n doc: 'Layout for the list of options. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\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 data: {\n doc: 'Data to be used for the component. The object needs to have a `value` and a `title` property. Provide the Dropdown or Autocomplete data in the format documented here: [Dropdown](/uilib/components/dropdown) and [Autocomplete](/uilib/components/autocomplete) documentation.',\n type: 'array',\n status: 'optional',\n },\n dataPath: {\n doc: 'The path to the context data (Form.Handler). The context data object needs to have a `value` and a `title` property. The generated options will be placed above given JSX based children.',\n type: 'string',\n status: 'optional',\n },\n autocompleteProps: {\n doc: 'Forward any additional props (camelCase) to the [Autocomplete](/uilib/components/autocomplete/) component.',\n type: 'object',\n status: 'optional',\n },\n dropdownProps: {\n doc: 'Forward any additional props (camelCase) to the [Dropdown](/uilib/components/dropdown/) component.',\n type: 'object',\n status: 'optional',\n },\n children: {\n doc: 'For providing Option components.',\n type: 'React.Node',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,mBAAyC,GAAG;EACvDC,OAAO,EAAE;IACPC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACLH,GAAG,EAAE,0FAA0F;IAC/FC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,aAAa,EAAE;IACbJ,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,KAAK,EAAE;IACLL,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,iRAAiR;IACtRC,IAAI,EAAE,OAAO;IACbC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,2LAA2L;IAChMC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,iBAAiB,EAAE;IACjBT,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,aAAa,EAAE;IACbV,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,QAAQ,EAAE;IACRX,GAAG,EAAE,kCAAkC;IACvCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
|