@dnb/eufemia 10.46.0 → 10.48.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 +53 -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 +1 -1
- package/cjs/components/copy-on-click/CopyOnClick.js +5 -4
- package/cjs/components/copy-on-click/CopyOnClick.js.map +1 -1
- package/cjs/components/copy-on-click/CopyOnClickDocs.js +5 -0
- package/cjs/components/copy-on-click/CopyOnClickDocs.js.map +1 -1
- package/cjs/components/copy-on-click/types.d.ts +5 -0
- package/cjs/components/copy-on-click/types.js.map +1 -1
- 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/lib.d.ts +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 +9 -5
- package/cjs/extensions/forms/DataContext/Context.js +0 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +3 -2
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.d.ts +8 -3
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +12 -5
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +6 -2
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +36 -16
- package/cjs/extensions/forms/DataContext/Provider/Provider.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/NationalIdentityNumber/NationalIdentityNumber.js +21 -12
- 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/SelectCountry/SelectCountry.js +1 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.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.d.ts +5 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +35 -11
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.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/Isolation/Isolation.js +2 -3
- package/cjs/extensions/forms/Form/Isolation/Isolation.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/EditContainer/EditContainer.js +20 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +17 -11
- package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/Section.d.ts +7 -2
- package/cjs/extensions/forms/Form/Section/Section.js +3 -1
- package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/SectionDocs.js +6 -1
- package/cjs/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.d.ts +3 -1
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +22 -20
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +2 -0
- package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +1 -0
- package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js +4 -1
- package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +3 -0
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.scss +4 -0
- 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/Iterate/Array/Array.js +71 -28
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +9 -0
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/{AnimatedContainer/ElementBlock.d.ts → Array/ArrayItemArea.d.ts} +6 -6
- package/cjs/extensions/forms/Iterate/{AnimatedContainer/ElementBlock.js → Array/ArrayItemArea.js} +66 -49
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -0
- package/cjs/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +6 -0
- package/cjs/extensions/forms/Iterate/{AnimatedContainer/ElementBlockContext.js → Array/ArrayItemAreaContext.js} +3 -3
- package/cjs/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -0
- package/cjs/extensions/forms/Iterate/Array/types.d.ts +7 -5
- package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +9 -0
- package/cjs/extensions/forms/Iterate/EditContainer/{EditToolbarTools.js → CancelButton.js} +30 -56
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -0
- package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.d.ts +4 -0
- package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +75 -0
- package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -0
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +8 -2
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +33 -12
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.d.ts +2 -0
- package/cjs/extensions/forms/Iterate/EditContainer/index.js +19 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/IterateItemContext.d.ts +7 -1
- package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushButton/PushButton.d.ts +7 -2
- package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +23 -12
- package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +5 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +78 -24
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +9 -9
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.d.ts +10 -2
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +52 -6
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Toolbar/ToolbarContext.d.ts +6 -0
- package/cjs/extensions/forms/Iterate/Toolbar/ToolbarContext.js +12 -0
- package/cjs/extensions/forms/Iterate/Toolbar/ToolbarContext.js.map +1 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/{ViewToolbarTools.js → EditButton.js} +8 -11
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +1 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.js +19 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +8 -2
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +25 -10
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/index.d.ts +2 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/index.js +19 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/hooks/index.d.ts +2 -0
- package/cjs/extensions/forms/Iterate/hooks/index.js +21 -0
- package/cjs/extensions/forms/Iterate/hooks/index.js.map +1 -0
- package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +17 -0
- package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +93 -0
- package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -0
- package/cjs/extensions/forms/Tools/Log.d.ts +6 -0
- package/cjs/extensions/forms/Tools/Log.js +29 -0
- package/cjs/extensions/forms/Tools/Log.js.map +1 -0
- package/cjs/extensions/forms/Tools/index.d.ts +1 -0
- package/cjs/extensions/forms/Tools/index.js +7 -0
- package/cjs/extensions/forms/Tools/index.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/ValueBlock/style/dnb-value-block.css +2 -2
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +19 -7
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +3 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.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 +0 -2
- 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 +81 -25
- package/cjs/extensions/forms/constants/countries.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js +3 -2
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -1
- package/cjs/extensions/forms/constants/locales/index.d.ts +4 -2
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -2
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueDocs.js +10 -5
- 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/useExternalValue.js +8 -6
- package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +2 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +317 -121
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/usePath.d.ts +1 -0
- package/cjs/extensions/forms/hooks/usePath.js +5 -1
- package/cjs/extensions/forms/hooks/usePath.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 +32 -2
- package/cjs/extensions/forms/types.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/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 +37 -34
- package/cjs/style/dnb-ui-components.min.css +5 -5
- 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 +51 -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 +51 -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 +51 -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/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 +1 -1
- package/components/copy-on-click/CopyOnClick.js +5 -4
- package/components/copy-on-click/CopyOnClick.js.map +1 -1
- package/components/copy-on-click/CopyOnClickDocs.js +5 -0
- package/components/copy-on-click/CopyOnClickDocs.js.map +1 -1
- package/components/copy-on-click/types.d.ts +5 -0
- package/components/copy-on-click/types.js.map +1 -1
- 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/lib.d.ts +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/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 +1 -1
- package/es/components/copy-on-click/CopyOnClick.js +5 -4
- package/es/components/copy-on-click/CopyOnClick.js.map +1 -1
- package/es/components/copy-on-click/CopyOnClickDocs.js +5 -0
- package/es/components/copy-on-click/CopyOnClickDocs.js.map +1 -1
- package/es/components/copy-on-click/types.d.ts +5 -0
- package/es/components/copy-on-click/types.js.map +1 -1
- 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/lib.d.ts +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 +9 -5
- package/es/extensions/forms/DataContext/Context.js +0 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +3 -2
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.d.ts +8 -3
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +13 -5
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +6 -2
- package/es/extensions/forms/DataContext/Provider/Provider.js +36 -16
- package/es/extensions/forms/DataContext/Provider/Provider.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/NationalIdentityNumber/NationalIdentityNumber.js +21 -12
- 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/SelectCountry/SelectCountry.js +1 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.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.d.ts +5 -2
- package/es/extensions/forms/FieldBlock/FieldBlock.js +33 -11
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.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/Isolation/Isolation.js +2 -3
- package/es/extensions/forms/Form/Isolation/Isolation.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/EditContainer/EditContainer.js +22 -2
- package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +17 -11
- package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
- package/es/extensions/forms/Form/Section/Section.d.ts +7 -2
- package/es/extensions/forms/Form/Section/Section.js +3 -1
- package/es/extensions/forms/Form/Section/Section.js.map +1 -1
- package/es/extensions/forms/Form/Section/SectionDocs.js +6 -1
- package/es/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/containers/SectionContainer.d.ts +3 -1
- package/es/extensions/forms/Form/Section/containers/SectionContainer.js +22 -20
- package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/es/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +2 -0
- package/es/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -1
- package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +1 -0
- package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js +4 -1
- package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -1
- package/es/extensions/forms/Form/Section/style/dnb-form-section.css +3 -0
- package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/es/extensions/forms/Form/Section/style/dnb-form-section.scss +4 -0
- 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/Iterate/Array/Array.js +71 -29
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js +9 -0
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/{AnimatedContainer/ElementBlock.d.ts → Array/ArrayItemArea.d.ts} +6 -6
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +137 -0
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -0
- package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +6 -0
- package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.js +6 -0
- package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -0
- package/es/extensions/forms/Iterate/Array/types.d.ts +7 -5
- package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +9 -0
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +87 -0
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -0
- package/es/extensions/forms/Iterate/EditContainer/DoneButton.d.ts +4 -0
- package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +67 -0
- package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -0
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +8 -2
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +32 -11
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.d.ts +2 -0
- package/es/extensions/forms/Iterate/EditContainer/index.js +2 -0
- package/es/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/es/extensions/forms/Iterate/IterateItemContext.d.ts +7 -1
- package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
- package/es/extensions/forms/Iterate/PushButton/PushButton.d.ts +7 -2
- package/es/extensions/forms/Iterate/PushButton/PushButton.js +23 -12
- package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +5 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +78 -23
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +9 -9
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.d.ts +10 -2
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +51 -7
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/es/extensions/forms/Iterate/Toolbar/ToolbarContext.d.ts +6 -0
- package/es/extensions/forms/Iterate/Toolbar/ToolbarContext.js +4 -0
- package/es/extensions/forms/Iterate/Toolbar/ToolbarContext.js.map +1 -0
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -0
- package/{extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js → es/extensions/forms/Iterate/ViewContainer/EditButton.js} +8 -11
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -0
- package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +1 -0
- package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.js +12 -0
- package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -0
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +8 -2
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +24 -9
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/index.d.ts +2 -0
- package/es/extensions/forms/Iterate/ViewContainer/index.js +2 -0
- package/es/extensions/forms/Iterate/ViewContainer/index.js.map +1 -1
- package/es/extensions/forms/Iterate/hooks/index.d.ts +2 -0
- package/es/extensions/forms/Iterate/hooks/index.js +3 -0
- package/es/extensions/forms/Iterate/hooks/index.js.map +1 -0
- package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +17 -0
- package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +85 -0
- package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -0
- package/es/extensions/forms/Tools/Log.d.ts +6 -0
- package/es/extensions/forms/Tools/Log.js +22 -0
- package/es/extensions/forms/Tools/Log.js.map +1 -0
- package/es/extensions/forms/Tools/index.d.ts +1 -0
- package/es/extensions/forms/Tools/index.js +1 -0
- package/es/extensions/forms/Tools/index.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/ValueBlock/style/dnb-value-block.css +2 -2
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +18 -7
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +3 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.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 +0 -2
- 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 +81 -25
- package/es/extensions/forms/constants/countries.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -1
- package/es/extensions/forms/constants/locales/en-GB.js +3 -2
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +2 -1
- package/es/extensions/forms/constants/locales/index.d.ts +4 -2
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
- package/es/extensions/forms/constants/locales/nb-NO.js +3 -2
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueDocs.js +10 -5
- 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/useExternalValue.js +8 -6
- package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.d.ts +2 -1
- package/es/extensions/forms/hooks/useFieldProps.js +309 -119
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/usePath.d.ts +1 -0
- package/es/extensions/forms/hooks/usePath.js +5 -1
- package/es/extensions/forms/hooks/usePath.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 +32 -2
- package/es/extensions/forms/types.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/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 +37 -34
- package/es/style/dnb-ui-components.min.css +5 -5
- 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 +51 -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 +51 -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 +51 -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 +9 -5
- package/extensions/forms/DataContext/Context.js +0 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +3 -2
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.d.ts +8 -3
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +12 -5
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +6 -2
- package/extensions/forms/DataContext/Provider/Provider.js +36 -16
- package/extensions/forms/DataContext/Provider/Provider.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/NationalIdentityNumber/NationalIdentityNumber.js +21 -12
- 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/SelectCountry/SelectCountry.js +1 -1
- package/extensions/forms/Field/SelectCountry/SelectCountry.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.d.ts +5 -2
- package/extensions/forms/FieldBlock/FieldBlock.js +33 -11
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
- package/extensions/forms/FieldBlock/FieldBlockDocs.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/Isolation/Isolation.js +2 -3
- package/extensions/forms/Form/Isolation/Isolation.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/EditContainer/EditContainer.js +22 -2
- package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +17 -11
- package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
- package/extensions/forms/Form/Section/Section.d.ts +7 -2
- package/extensions/forms/Form/Section/Section.js +3 -1
- package/extensions/forms/Form/Section/Section.js.map +1 -1
- package/extensions/forms/Form/Section/SectionDocs.js +6 -1
- package/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
- package/extensions/forms/Form/Section/containers/SectionContainer.d.ts +3 -1
- package/extensions/forms/Form/Section/containers/SectionContainer.js +22 -20
- package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +2 -0
- package/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -1
- package/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +1 -0
- package/extensions/forms/Form/Section/containers/SectionContainerProvider.js +4 -1
- package/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -1
- package/extensions/forms/Form/Section/style/dnb-form-section.css +3 -0
- package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/extensions/forms/Form/Section/style/dnb-form-section.scss +4 -0
- package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +9 -5
- package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +72 -29
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayDocs.js +9 -0
- package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/extensions/forms/Iterate/{AnimatedContainer/ElementBlock.d.ts → Array/ArrayItemArea.d.ts} +6 -6
- package/extensions/forms/Iterate/Array/ArrayItemArea.js +137 -0
- package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -0
- package/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +6 -0
- package/extensions/forms/Iterate/Array/ArrayItemAreaContext.js +6 -0
- package/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -0
- package/extensions/forms/Iterate/Array/types.d.ts +7 -5
- package/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +9 -0
- package/extensions/forms/Iterate/EditContainer/CancelButton.js +88 -0
- package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -0
- package/extensions/forms/Iterate/EditContainer/DoneButton.d.ts +4 -0
- package/extensions/forms/Iterate/EditContainer/DoneButton.js +67 -0
- package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -0
- package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +8 -2
- package/extensions/forms/Iterate/EditContainer/EditContainer.js +32 -11
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/index.d.ts +2 -0
- package/extensions/forms/Iterate/EditContainer/index.js +2 -0
- package/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/extensions/forms/Iterate/IterateItemContext.d.ts +7 -1
- package/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
- package/extensions/forms/Iterate/PushButton/PushButton.d.ts +7 -2
- package/extensions/forms/Iterate/PushButton/PushButton.js +23 -12
- package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +5 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +80 -26
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +9 -9
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/extensions/forms/Iterate/Toolbar/Toolbar.d.ts +10 -2
- package/extensions/forms/Iterate/Toolbar/Toolbar.js +52 -7
- package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/extensions/forms/Iterate/Toolbar/ToolbarContext.d.ts +6 -0
- package/extensions/forms/Iterate/Toolbar/ToolbarContext.js +4 -0
- package/extensions/forms/Iterate/Toolbar/ToolbarContext.js.map +1 -0
- package/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -0
- package/{es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js → extensions/forms/Iterate/ViewContainer/EditButton.js} +8 -11
- package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -0
- package/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +1 -0
- package/extensions/forms/Iterate/ViewContainer/RemoveButton.js +12 -0
- package/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -0
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +8 -2
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +24 -9
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/index.d.ts +2 -0
- package/extensions/forms/Iterate/ViewContainer/index.js +2 -0
- package/extensions/forms/Iterate/ViewContainer/index.js.map +1 -1
- package/extensions/forms/Iterate/hooks/index.d.ts +2 -0
- package/extensions/forms/Iterate/hooks/index.js +3 -0
- package/extensions/forms/Iterate/hooks/index.js.map +1 -0
- package/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +17 -0
- package/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +87 -0
- package/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -0
- package/extensions/forms/Tools/Log.d.ts +6 -0
- package/extensions/forms/Tools/Log.js +22 -0
- package/extensions/forms/Tools/Log.js.map +1 -0
- package/extensions/forms/Tools/index.d.ts +1 -0
- package/extensions/forms/Tools/index.js +1 -0
- package/extensions/forms/Tools/index.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/ValueBlock/style/dnb-value-block.css +2 -2
- package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +19 -7
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +3 -1
- package/extensions/forms/Wizard/Context/WizardContext.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 +0 -2
- 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 +81 -25
- package/extensions/forms/constants/countries.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +2 -1
- package/extensions/forms/constants/locales/en-GB.js +3 -2
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +2 -1
- package/extensions/forms/constants/locales/index.d.ts +4 -2
- package/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
- package/extensions/forms/constants/locales/nb-NO.js +3 -2
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/DataValueDocs.js +10 -5
- 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/useExternalValue.js +8 -6
- package/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.d.ts +2 -1
- package/extensions/forms/hooks/useFieldProps.js +318 -122
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/usePath.d.ts +1 -0
- package/extensions/forms/hooks/usePath.js +5 -1
- package/extensions/forms/hooks/usePath.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 +32 -2
- package/extensions/forms/types.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/style/core/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 +37 -34
- package/style/dnb-ui-components.min.css +5 -5
- 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 +51 -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 +51 -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 +51 -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/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +0 -1
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.d.ts +0 -6
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js.map +0 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.d.ts +0 -6
- package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +0 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.d.ts +0 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +0 -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/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +0 -120
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +0 -1
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.d.ts +0 -6
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js +0 -6
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js.map +0 -1
- package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.d.ts +0 -6
- package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +0 -113
- package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +0 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.d.ts +0 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.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/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +0 -120
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +0 -1
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.d.ts +0 -6
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js +0 -6
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js.map +0 -1
- package/extensions/forms/Iterate/EditContainer/EditToolbarTools.d.ts +0 -6
- package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +0 -114
- package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +0 -1
- package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.d.ts +0 -1
- package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.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
|
@@ -3,25 +3,33 @@
|
|
|
3
3
|
import React, { useCallback, useContext, useReducer, useRef } from 'react';
|
|
4
4
|
import FieldBoundaryContext from './FieldBoundaryContext';
|
|
5
5
|
import DataContext from '../Context';
|
|
6
|
-
export default function FieldBoundaryProvider({
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
export default function FieldBoundaryProvider(props) {
|
|
7
|
+
const {
|
|
8
|
+
showErrors = false,
|
|
9
|
+
onPathError = null,
|
|
10
|
+
children
|
|
11
|
+
} = props;
|
|
9
12
|
const [, forceUpdate] = useReducer(() => ({}), {});
|
|
10
13
|
const {
|
|
11
14
|
showAllErrors,
|
|
12
15
|
hasVisibleError
|
|
13
16
|
} = useContext(DataContext);
|
|
17
|
+
const onPathErrorRef = useRef(onPathError);
|
|
18
|
+
onPathErrorRef.current = onPathError;
|
|
14
19
|
const errorsRef = useRef({});
|
|
15
|
-
const showBoundaryErrorsRef = useRef(
|
|
16
|
-
const hasError = Object.keys(errorsRef.current
|
|
20
|
+
const showBoundaryErrorsRef = useRef(showErrors);
|
|
21
|
+
const hasError = Object.keys(errorsRef.current).length > 0;
|
|
17
22
|
const hasSubmitError = showAllErrors && hasError;
|
|
18
23
|
const setFieldError = useCallback((path, error) => {
|
|
24
|
+
var _onPathErrorRef$curre;
|
|
19
25
|
if (error) {
|
|
20
26
|
errorsRef.current[path] = !!error;
|
|
21
27
|
} else {
|
|
22
28
|
var _errorsRef$current;
|
|
23
29
|
(_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? true : delete _errorsRef$current[path];
|
|
24
30
|
}
|
|
31
|
+
forceUpdate();
|
|
32
|
+
(_onPathErrorRef$curre = onPathErrorRef.current) === null || _onPathErrorRef$curre === void 0 ? void 0 : _onPathErrorRef$curre.call(onPathErrorRef, path, error);
|
|
25
33
|
}, []);
|
|
26
34
|
const setShowBoundaryErrors = useCallback(showBoundaryErrors => {
|
|
27
35
|
showBoundaryErrorsRef.current = showBoundaryErrors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldBoundaryProvider.js","names":["React","useCallback","useContext","useReducer","useRef","FieldBoundaryContext","DataContext","FieldBoundaryProvider","children","forceUpdate","showAllErrors","hasVisibleError","errorsRef","showBoundaryErrorsRef","hasError","Object","keys","
|
|
1
|
+
{"version":3,"file":"FieldBoundaryProvider.js","names":["React","useCallback","useContext","useReducer","useRef","FieldBoundaryContext","DataContext","FieldBoundaryProvider","props","showErrors","onPathError","children","forceUpdate","showAllErrors","hasVisibleError","onPathErrorRef","current","errorsRef","showBoundaryErrorsRef","hasError","Object","keys","length","hasSubmitError","setFieldError","path","error","_onPathErrorRef$curre","_errorsRef$current","call","setShowBoundaryErrors","showBoundaryErrors","context","createElement","Provider","value"],"sources":["../../../../../../src/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer, useRef } from 'react'\nimport FieldBoundaryContext, {\n FieldBoundaryContextState,\n} from './FieldBoundaryContext'\nimport DataContext from '../Context'\nimport { Path } from '../../types'\n\nexport type Props = {\n showErrors?: boolean\n onPathError?: (path: Path, error: Error) => void\n children: React.ReactNode\n}\n\nexport default function FieldBoundaryProvider(props: Props) {\n const { showErrors = false, onPathError = null, children } = props\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { showAllErrors, hasVisibleError } = useContext(DataContext)\n\n const onPathErrorRef = useRef(onPathError)\n onPathErrorRef.current = onPathError\n const errorsRef = useRef<Record<Path, boolean>>({})\n const showBoundaryErrorsRef =\n useRef<FieldBoundaryContextState['showBoundaryErrors']>(showErrors)\n const hasError = Object.keys(errorsRef.current).length > 0\n const hasSubmitError = showAllErrors && hasError\n\n const setFieldError = useCallback((path: Path, error: Error) => {\n if (error) {\n errorsRef.current[path] = !!error\n } else {\n delete errorsRef.current?.[path]\n }\n forceUpdate()\n onPathErrorRef.current?.(path, error)\n }, [])\n\n const setShowBoundaryErrors: FieldBoundaryContextState['setShowBoundaryErrors'] =\n useCallback((showBoundaryErrors) => {\n showBoundaryErrorsRef.current = showBoundaryErrors\n forceUpdate()\n }, [])\n\n const context: FieldBoundaryContextState = {\n hasError,\n hasSubmitError,\n hasVisibleError,\n errorsRef,\n showBoundaryErrors: showBoundaryErrorsRef.current,\n setShowBoundaryErrors,\n setFieldError,\n }\n\n return (\n <FieldBoundaryContext.Provider value={context}>\n {children}\n </FieldBoundaryContext.Provider>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAC1E,OAAOC,oBAAoB,MAEpB,wBAAwB;AAC/B,OAAOC,WAAW,MAAM,YAAY;AASpC,eAAe,SAASC,qBAAqBA,CAACC,KAAY,EAAE;EAC1D,MAAM;IAAEC,UAAU,GAAG,KAAK;IAAEC,WAAW,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAClE,MAAM,GAAGI,WAAW,CAAC,GAAGT,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAM;IAAEU,aAAa;IAAEC;EAAgB,CAAC,GAAGZ,UAAU,CAACI,WAAW,CAAC;EAElE,MAAMS,cAAc,GAAGX,MAAM,CAACM,WAAW,CAAC;EAC1CK,cAAc,CAACC,OAAO,GAAGN,WAAW;EACpC,MAAMO,SAAS,GAAGb,MAAM,CAAwB,CAAC,CAAC,CAAC;EACnD,MAAMc,qBAAqB,GACzBd,MAAM,CAAkDK,UAAU,CAAC;EACrE,MAAMU,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACJ,SAAS,CAACD,OAAO,CAAC,CAACM,MAAM,GAAG,CAAC;EAC1D,MAAMC,cAAc,GAAGV,aAAa,IAAIM,QAAQ;EAEhD,MAAMK,aAAa,GAAGvB,WAAW,CAAC,CAACwB,IAAU,EAAEC,KAAY,KAAK;IAAA,IAAAC,qBAAA;IAC9D,IAAID,KAAK,EAAE;MACTT,SAAS,CAACD,OAAO,CAACS,IAAI,CAAC,GAAG,CAAC,CAACC,KAAK;IACnC,CAAC,MAAM;MAAA,IAAAE,kBAAA;MACL,CAAAA,kBAAA,GAAOX,SAAS,CAACD,OAAO,cAAAY,kBAAA,qBAAxB,OAAOA,kBAAA,CAAoBH,IAAI,CAAC;IAClC;IACAb,WAAW,CAAC,CAAC;IACb,CAAAe,qBAAA,GAAAZ,cAAc,CAACC,OAAO,cAAAW,qBAAA,uBAAtBA,qBAAA,CAAAE,IAAA,CAAAd,cAAc,EAAWU,IAAI,EAAEC,KAAK,CAAC;EACvC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMI,qBAAyE,GAC7E7B,WAAW,CAAE8B,kBAAkB,IAAK;IAClCb,qBAAqB,CAACF,OAAO,GAAGe,kBAAkB;IAClDnB,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;EAER,MAAMoB,OAAkC,GAAG;IACzCb,QAAQ;IACRI,cAAc;IACdT,eAAe;IACfG,SAAS;IACTc,kBAAkB,EAAEb,qBAAqB,CAACF,OAAO;IACjDc,qBAAqB;IACrBN;EACF,CAAC;EAED,OACExB,KAAA,CAAAiC,aAAA,CAAC5B,oBAAoB,CAAC6B,QAAQ;IAACC,KAAK,EAAEH;EAAQ,GAC3CrB,QAC4B,CAAC;AAEpC"}
|
|
@@ -14,14 +14,18 @@ export interface Props<Data extends JsonObject> extends IsolationProviderProps<D
|
|
|
14
14
|
* Unique ID to connect with a GlobalStatus
|
|
15
15
|
*/
|
|
16
16
|
globalStatusId?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Source data, will be used instead of defaultData, and leading to updates if changed after mount
|
|
19
|
+
*/
|
|
20
|
+
data?: Data;
|
|
17
21
|
/**
|
|
18
22
|
* Default source data, only used if no other source is available, and not leading to updates if changed after mount
|
|
19
23
|
*/
|
|
20
24
|
defaultData?: Data;
|
|
21
25
|
/**
|
|
22
|
-
*
|
|
26
|
+
* Empty data, used to clear the data set.
|
|
23
27
|
*/
|
|
24
|
-
|
|
28
|
+
emptyData?: unknown;
|
|
25
29
|
/**
|
|
26
30
|
* JSON Schema to validate the data against.
|
|
27
31
|
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
|
-
const _excluded = ["id", "globalStatusId", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onCommit", "onClear", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "transformIn", "transformOut", "filterSubmitData", "locale", "translations", "required", "errorMessages", "isolate", "children"];
|
|
5
|
+
const _excluded = ["id", "globalStatusId", "defaultData", "emptyData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onCommit", "onClear", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "transformIn", "transformOut", "filterSubmitData", "locale", "translations", "required", "errorMessages", "isolate", "children"];
|
|
6
6
|
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; }
|
|
7
7
|
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; }
|
|
8
8
|
import React, { useRef, useMemo, useCallback, useReducer, useEffect, useContext } from 'react';
|
|
@@ -10,7 +10,6 @@ import pointer from 'json-pointer';
|
|
|
10
10
|
import { makeAjvInstance, ajvErrorsToFormErrors } from '../../utils/ajv';
|
|
11
11
|
import { debounce } from '../../../../shared/helpers';
|
|
12
12
|
import FieldPropsProvider from '../../Form/FieldProps';
|
|
13
|
-
import useMountEffect from '../../../../shared/helpers/useMountEffect';
|
|
14
13
|
import useUpdateEffect from '../../../../shared/helpers/useUpdateEffect';
|
|
15
14
|
import { isAsync } from '../../../../shared/helpers/isAsync';
|
|
16
15
|
import { useSharedState } from '../../../../shared/helpers/useSharedState';
|
|
@@ -26,6 +25,7 @@ export default function Provider(props) {
|
|
|
26
25
|
id,
|
|
27
26
|
globalStatusId = 'main',
|
|
28
27
|
defaultData,
|
|
28
|
+
emptyData,
|
|
29
29
|
data,
|
|
30
30
|
schema,
|
|
31
31
|
onChange,
|
|
@@ -382,6 +382,22 @@ export default function Provider(props) {
|
|
|
382
382
|
} else {
|
|
383
383
|
onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value);
|
|
384
384
|
}
|
|
385
|
+
for (const itm of fieldEventListenersRef.current) {
|
|
386
|
+
if (itm.type === 'onPathChange' && itm.path === path) {
|
|
387
|
+
const {
|
|
388
|
+
callback
|
|
389
|
+
} = itm;
|
|
390
|
+
if (isAsync(callback)) {
|
|
391
|
+
await callback({
|
|
392
|
+
value
|
|
393
|
+
});
|
|
394
|
+
} else {
|
|
395
|
+
callback({
|
|
396
|
+
value
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
}
|
|
385
401
|
}, [onPathChange, updateDataValue]);
|
|
386
402
|
const handlePathChange = useCallback(async (path, value = '_undefined_') => {
|
|
387
403
|
if (!path) {
|
|
@@ -434,34 +450,35 @@ export default function Provider(props) {
|
|
|
434
450
|
}
|
|
435
451
|
}, []);
|
|
436
452
|
const clearData = useCallback(() => {
|
|
437
|
-
internalDataRef.current = clearedData;
|
|
453
|
+
internalDataRef.current = emptyData !== null && emptyData !== void 0 ? emptyData : clearedData;
|
|
438
454
|
if (id) {
|
|
439
455
|
setSharedData === null || setSharedData === void 0 ? void 0 : setSharedData(internalDataRef.current);
|
|
440
456
|
} else {
|
|
441
457
|
forceUpdate();
|
|
442
458
|
}
|
|
443
459
|
onClear === null || onClear === void 0 ? void 0 : onClear();
|
|
444
|
-
}, [id, onClear, setSharedData]);
|
|
460
|
+
}, [emptyData, id, onClear, setSharedData]);
|
|
445
461
|
const handleSubmitCall = useCallback(async args => {
|
|
446
462
|
const {
|
|
447
463
|
onSubmit,
|
|
448
|
-
|
|
464
|
+
enableAsyncBehavior,
|
|
449
465
|
skipFieldValidation,
|
|
450
466
|
skipErrorCheck
|
|
451
467
|
} = args;
|
|
452
468
|
setSubmitState({
|
|
453
469
|
error: undefined
|
|
454
470
|
});
|
|
455
|
-
const asyncBehaviorIsEnabled = (skipErrorCheck ? true : !hasErrors() || hasFieldState('pending')) && (
|
|
471
|
+
const asyncBehaviorIsEnabled = (skipErrorCheck ? true : !hasErrors() || hasFieldState('pending')) && (enableAsyncBehavior || hasFieldWithAsyncValidator());
|
|
456
472
|
if (asyncBehaviorIsEnabled) {
|
|
457
473
|
setFormState('pending');
|
|
458
474
|
}
|
|
459
475
|
if (!skipFieldValidation) {
|
|
460
|
-
for (const {
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
476
|
+
for (const item of fieldEventListenersRef.current) {
|
|
477
|
+
const {
|
|
478
|
+
path,
|
|
479
|
+
type,
|
|
480
|
+
callback
|
|
481
|
+
} = item;
|
|
465
482
|
if (type === 'onSubmit' && mountedFieldPathsRef.current.includes(path)) {
|
|
466
483
|
if (asyncBehaviorIsEnabled) {
|
|
467
484
|
await callback();
|
|
@@ -539,7 +556,7 @@ export default function Provider(props) {
|
|
|
539
556
|
formElement = null
|
|
540
557
|
} = {}) => {
|
|
541
558
|
handleSubmitCall({
|
|
542
|
-
|
|
559
|
+
enableAsyncBehavior: isAsync(onSubmit),
|
|
543
560
|
onSubmit: async () => {
|
|
544
561
|
if (handleSubmitListeners()) {
|
|
545
562
|
return;
|
|
@@ -582,9 +599,10 @@ export default function Provider(props) {
|
|
|
582
599
|
const setFieldEventListener = useCallback((path, type, callback) => {
|
|
583
600
|
fieldEventListenersRef.current = fieldEventListenersRef.current.filter(({
|
|
584
601
|
path: p,
|
|
585
|
-
type: t
|
|
602
|
+
type: t,
|
|
603
|
+
callback: c
|
|
586
604
|
}) => {
|
|
587
|
-
return !(p === path && t === type);
|
|
605
|
+
return !(p === path && t === type && c === callback);
|
|
588
606
|
});
|
|
589
607
|
fieldEventListenersRef.current.push({
|
|
590
608
|
path,
|
|
@@ -598,13 +616,13 @@ export default function Provider(props) {
|
|
|
598
616
|
(_onSubmitContinueRef$ = onSubmitContinueRef.current) === null || _onSubmitContinueRef$ === void 0 ? void 0 : _onSubmitContinueRef$.call(onSubmitContinueRef);
|
|
599
617
|
onSubmitContinueRef.current = null;
|
|
600
618
|
}
|
|
601
|
-
|
|
619
|
+
useEffect(() => {
|
|
602
620
|
if (schema) {
|
|
603
621
|
var _ajvRef$current;
|
|
604
622
|
ajvValidatorRef.current = (_ajvRef$current = ajvRef.current) === null || _ajvRef$current === void 0 ? void 0 : _ajvRef$current.compile(schema);
|
|
605
623
|
}
|
|
606
624
|
validateData();
|
|
607
|
-
});
|
|
625
|
+
}, [schema, validateData]);
|
|
608
626
|
useUpdateEffect(() => {
|
|
609
627
|
if (schema && schema !== cacheRef.current.schema) {
|
|
610
628
|
var _ajvRef$current2;
|
|
@@ -656,6 +674,7 @@ export default function Provider(props) {
|
|
|
656
674
|
validateData,
|
|
657
675
|
updateDataValue,
|
|
658
676
|
setData,
|
|
677
|
+
clearData,
|
|
659
678
|
filterDataHandler,
|
|
660
679
|
addOnChangeHandler,
|
|
661
680
|
setHandleSubmit,
|
|
@@ -676,6 +695,7 @@ export default function Provider(props) {
|
|
|
676
695
|
ajvInstance: ajvRef.current,
|
|
677
696
|
id,
|
|
678
697
|
data: internalDataRef.current,
|
|
698
|
+
internalDataRef,
|
|
679
699
|
props
|
|
680
700
|
}, rest)
|
|
681
701
|
}, React.createElement(FieldPropsProvider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useMountEffect","useUpdateEffect","isAsync","useSharedState","useTranslation","Context","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_sharedData$data3","forceUpdate","id","globalStatusId","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","contextErrorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","translation","Field","ajvRef","mountedFieldPathsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","setHasVisibleError","path","hasError","submitStateRef","setSubmitState","state","Object","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","some","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","filter","remove","mutate","result","set","entries","fieldPropsRef","forEach","exists","has","_fieldErrorRef$curren","value","get","internal","runFilter","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","wildcardPaths","includes","parts","split","traverse","subData","subPath","idx","length","push","list","Array","isArray","_","i","filterDataHandler","filterData","valuePropsRef","setFieldProps","setValueProps","hasFieldWithAsyncValidator","validator","onBlurValidator","sharedData","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","_objectSpread","_sharedData$data","clearForm","clear","clearedData","_sharedData$data2","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","updateDataValue","_internalDataRef$curr","givenData","match","newData","e","setData","handlePathChangeUnvalidated","handlePathChange","options","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","callback","handleMountField","addListPath","handleUnMountField","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","clearData","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","fieldEventListenersRef","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","handleSubmitListeners","stop","preventSubmit","handleSubmit","formElement","mutatedData","filteredData","resetForm","_formElement$reset","reset","removeItem","completeResult","keys","setFieldEventListener","t","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasVisibleError","FormStatus","globalStatus","title","errorSummaryTitle","show","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Form/FieldProps'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n TransformData,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport interface Props<Data extends JsonObject>\n extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages: contextErrorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(Context) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Locale\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const setHasVisibleError = useCallback(\n (path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate()\n },\n []\n )\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\n }, [])\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\n })\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return mountedFieldPathsRef.current.some((p) => {\n return p === path && checkFieldStateFor(p, 'error')\n })\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, filter: FilterData | TransformData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof filter === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current?.[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(filter).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldPathsRef.current.includes(path)) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n cacheRef.current.shared = sharedData.data\n\n // Reset the shared state, if clearForm is set\n if (sharedData.data?.clearForm) {\n const clear = (cacheRef.current.shared = clearedData as Data)\n setSharedData(clear)\n return clear\n }\n\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data, setSharedData])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n useEffect(() => {\n if (sharedData.data?.clearForm) {\n onClear?.()\n }\n }, [onClear, sharedData.data?.clearForm])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate()\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\n }, [])\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n const clearData = useCallback(() => {\n internalDataRef.current = clearedData as Data\n if (id) {\n setSharedData?.(internalDataRef.current)\n } else {\n forceUpdate()\n }\n onClear?.()\n }, [id, onClear, setSharedData])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n if (isolate) {\n result = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n result = await onSubmit()\n }\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback) => {\n if (!handleSubmitListenersRef.current.includes(callback)) {\n handleSubmitListenersRef.current.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData // @deprecated – can be removed in v11\n const options = {\n filterData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, options)\n } else {\n result = onSubmit?.(filteredData, options)\n }\n\n const completeResult = await onSubmitComplete?.(\n filteredData,\n result\n )\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n },\n [\n clearData,\n filterData,\n filterDataHandler,\n filterSubmitData,\n handleSubmitCall,\n handleSubmitListeners,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n transformOut,\n ]\n )\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(({ path: p, type: t }) => {\n return !(p === path && t === type)\n })\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setHasVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError:\n Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldPathsRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n props,\n ...rest,\n }}\n >\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nexport function addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nexport function removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","useSharedState","useTranslation","Context","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_sharedData$data3","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","contextErrorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","translation","Field","ajvRef","mountedFieldPathsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","setHasVisibleError","path","hasError","submitStateRef","setSubmitState","state","Object","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","some","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","filter","remove","mutate","result","set","entries","fieldPropsRef","forEach","exists","has","_fieldErrorRef$curren","value","get","internal","runFilter","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","wildcardPaths","includes","parts","split","traverse","subData","subPath","idx","length","push","list","Array","isArray","_","i","filterDataHandler","filterData","valuePropsRef","setFieldProps","setValueProps","hasFieldWithAsyncValidator","validator","onBlurValidator","sharedData","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","_objectSpread","_sharedData$data","clearForm","clear","clearedData","_sharedData$data2","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","updateDataValue","_internalDataRef$curr","givenData","match","newData","e","setData","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","options","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","handleMountField","addListPath","handleUnMountField","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","clearData","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","item","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","handleSubmitListeners","stop","preventSubmit","handleSubmit","formElement","mutatedData","filteredData","resetForm","_formElement$reset","reset","removeItem","completeResult","keys","setFieldEventListener","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasVisibleError","FormStatus","globalStatus","title","errorSummaryTitle","show","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Form/FieldProps'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n TransformData,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport interface Props<Data extends JsonObject>\n extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages: contextErrorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(Context) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Locale\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const setHasVisibleError = useCallback(\n (path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n },\n []\n )\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\n }, [])\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\n })\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return mountedFieldPathsRef.current.some((p) => {\n return p === path && checkFieldStateFor(p, 'error')\n })\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, filter: FilterData | TransformData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof filter === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current?.[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(filter).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldPathsRef.current.includes(path)) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n cacheRef.current.shared = sharedData.data\n\n // Reset the shared state, if clearForm is set\n if (sharedData.data?.clearForm) {\n const clear = (cacheRef.current.shared = clearedData as Data)\n setSharedData(clear)\n return clear\n }\n\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data, setSharedData])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n useEffect(() => {\n if (sharedData.data?.clearForm) {\n onClear?.()\n }\n }, [onClear, sharedData.data?.clearForm])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate() // Will rerender the whole form initially\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\n }, [])\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n const clearData = useCallback(() => {\n internalDataRef.current = (emptyData ?? clearedData) as Data\n\n if (id) {\n setSharedData?.(internalDataRef.current)\n } else {\n forceUpdate()\n }\n onClear?.()\n }, [emptyData, id, onClear, setSharedData])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n if (isolate) {\n result = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n result = await onSubmit()\n }\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback) => {\n if (!handleSubmitListenersRef.current.includes(callback)) {\n handleSubmitListenersRef.current.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData // @deprecated – can be removed in v11\n const options = {\n filterData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, options)\n } else {\n result = onSubmit?.(filteredData, options)\n }\n\n const completeResult = await onSubmitComplete?.(\n filteredData,\n result\n )\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n },\n [\n clearData,\n filterData,\n filterDataHandler,\n filterSubmitData,\n handleSubmitCall,\n handleSubmitListeners,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n transformOut,\n ]\n )\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setHasVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n filterDataHandler,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError:\n Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldPathsRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }}\n >\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nexport function addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nexport function removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
|
|
@@ -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}}
|