@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFieldProps.js","names":["useRef","useEffect","useContext","useCallback","useMemo","useReducer","pointer","errorChanged","ajvErrorsToOneFormError","FormError","Context","DataContext","clearedData","FieldPropsContext","combineDescribedBy","useId","useUpdateEffect","useMountEffect","useUnmountEffect","FieldBlockContext","IterateElementContext","SectionContext","FieldBoundaryContext","useProcessManager","usePath","createSharedState","useSharedState","isAsync","useTranslation","useExternalValue","useFieldProps","localeProps","executeOnChangeRegardlessOfError","_dataContext$props","_useExternalValue","_dataContext$ajvInsta","_localErrorRef$curren","_ref","_props$path","_props$autoComplete","extend","props","path","pathProp","value","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","transformAdditionalArgs","additionalArgs","fromExternal","validateRequired","res","undefined","forceUpdate","startProcess","id","dataContext","fieldBlockContext","iterateItemContext","sectionContext","fieldBoundaryContext","translation","transformers","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldProps","setPropsDataContext","setHasVisibleError","setHasVisibleErrorDataContext","errors","dataContextErrors","showAllErrors","contextErrorMessages","onChangeContext","readOnly","inFieldBlock","Boolean","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","handleChange","handleChangeIterateContext","sectionPath","errorPrioritization","showBoundaryErrors","hasPath","identifier","makeIteratePath","defaultValueRef","externalValue","current","valueRef","changedRef","hasFocusRef","paths","split","length","requiredList","schemaPath","slice","join","schemaPart","has","get","push","substring","collected","flatMap","v","filter","some","p","c","includes","revealErrorRef","errorMethodRef","localErrorRef","hasLocalErrorRef","dataContextError","contextErrorRef","validatorRef","onBlurValidatorRef","schemaValidatorRef","ajvInstance","compile","errorMessagesRef","_objectSpread","Field","errorRequired","asyncBehaviorIsEnabled","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","name","asyncBufferRef","key","resolve","validateProcesses","window","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","revealError","hideError","prepareError","_error$messageValues","message","validationRule","_errorMessagesRef$cur","fieldMessage","messagehasValues","Object","entries","messageValues","reduce","replace","hasVisibleError","hasErrorProp","hasError","_ref2","stateId","persistErrorState","method","errorArg","keys","type","content","showInitially","clearErrorState","callValidator","opts","tmpValue","result","unchangedValue","Error","callOnBlurValidator","valueOverride","prioritizeContextSchema","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","handleError","setHasFocus","hasFocus","getArgs","transformedAdditionalArgs","args","apply","yieldAsyncProcess","waitFor","Promise","processName","withStates","hasValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","argFromInput","currentValue","transformedValue","handleFocus","handleBlur","handleMountField","handleUnMountField","_dataContext$ajvInsta2","data","existingValue","sharedState","sharedValue","formState","onSubmitHandler","_dataContext$setField","setFieldEventListener","call","show","htmlAttributes","acc","cur","startsWith","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","ids","fieldBlockProps","fieldState","sharedData","set","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport { errorChanged } from '../utils'\nimport { ajvErrorsToOneFormError } from '../utils/ajv'\nimport {\n FormError,\n FieldPropsGeneric,\n AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { clearedData } from '../DataContext/Provider/Provider'\nimport FieldPropsContext from '../Form/FieldProps/FieldPropsContext'\nimport { combineDescribedBy } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport useMountEffect from '../../../shared/helpers/useMountEffect'\nimport useUnmountEffect from '../../../shared/helpers/useUnmountEffect'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateItemContext'\nimport SectionContext from '../Form/Section/SectionContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport useProcessManager from './useProcessManager'\nimport usePath from './usePath'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\nimport useExternalValue from './useExternalValue'\n\ntype SubmitStateWithValidating = SubmitState | 'validating'\ntype AsyncProcesses =\n | 'validator'\n | 'onBlurValidator'\n | 'onChangeLocal'\n | 'onChangeContext'\ntype PersistErrorStateMethod =\n /**\n * Add or remove the error regardless\n */\n | 'weak'\n /**\n * Check if there is an existing error, and if so, keep it\n */\n | 'gracefully'\n /**\n * Remove the error, if any\n */\n | 'wipe'\ntype AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string | boolean | number\n}\n\n// Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n// useEffect depend on them (like the external `value`)\n\nexport default function useFieldProps<Value, EmptyValue, Props>(\n localeProps: Props & FieldPropsGeneric<Value, EmptyValue>,\n { executeOnChangeRegardlessOfError = false } = {}\n): typeof localeProps & ReturnAdditional<Value> {\n const { extend } = useContext(FieldPropsContext)\n const props = extend(localeProps)\n\n const {\n path: pathProp,\n value: valueProp,\n defaultValue,\n itemPath,\n emptyValue,\n required: requiredProp,\n disabled: disabledProp,\n info,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n transformIn = (value: Value) => value,\n transformOut = (value: Value) => value,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n transformAdditionalArgs = (additionalArgs: AdditionalEventArgs) =>\n additionalArgs,\n fromExternal = (value: Value) => value,\n validateRequired = (value, { emptyValue, required, error }) => {\n const res =\n required &&\n ((value as any) === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\n },\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateItemContext = useContext(IterateElementContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const translation = useTranslation()\n\n const transformers = useRef({\n transformIn,\n transformOut,\n transformAdditionalArgs,\n toInput,\n fromInput,\n toEvent,\n fromExternal,\n transformValue,\n validateRequired,\n })\n\n const {\n handlePathChangeUnvalidated: handlePathChangeUnvalidatedDataContext,\n handlePathChange: handlePathChangeDataContext,\n updateDataValue: updateDataValueDataContext,\n validateData: validateDataDataContext,\n setFieldState: setFieldStateDataContext,\n setFieldError: setFieldErrorDataContext,\n setFieldProps: setPropsDataContext,\n setHasVisibleError: setHasVisibleErrorDataContext,\n errors: dataContextErrors,\n showAllErrors,\n contextErrorMessages,\n } = dataContext ?? {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = fieldBlockContext ?? {}\n const { handleChange: handleChangeIterateContext } =\n iterateItemContext ?? {}\n const { path: sectionPath, errorPrioritization } = sectionContext ?? {}\n const { setFieldError, showBoundaryErrors } = fieldBoundaryContext ?? {}\n\n const hasPath = Boolean(pathProp)\n const { path, identifier, makeIteratePath } = usePath({\n id,\n path: pathProp,\n itemPath,\n })\n\n const defaultValueRef = useRef(defaultValue)\n const externalValue =\n useExternalValue<Value>({\n path,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue,\n }) ?? defaultValueRef.current\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>(false)\n const hasFocusRef = useRef<boolean>(false)\n\n const required = useMemo(() => {\n if (requiredProp) {\n return requiredProp\n }\n\n const paths = identifier.split('/')\n if (paths.length > 0 && (schema || dataContext?.schema)) {\n const requiredList = [schema?.['required']]\n\n if (paths.length > 1) {\n const schema = dataContext.schema\n const schemaPath = paths.slice(0, -1).join('/properties/')\n const schemaPart = pointer.has(schema, schemaPath)\n ? pointer.get(schema, schemaPath)\n : schema\n\n requiredList.push(schemaPart?.required)\n }\n\n if (sectionPath) {\n paths.push(sectionPath.substring(1))\n }\n\n const collected = requiredList.flatMap((v) => v).filter(Boolean)\n if (\n paths\n .filter(Boolean)\n .some((p) => collected.some((c) => c.includes(p)))\n ) {\n return true\n }\n }\n }, [sectionPath, dataContext.schema, identifier, requiredProp, schema])\n\n // Error handling\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const revealErrorRef = useRef<boolean>(\n Boolean(validateInitially || errorProp)\n )\n // - Local errors are errors based on validation instructions received by\n const errorMethodRef = useRef<\n Partial<Record<PersistErrorStateMethod, Error | FormError>>\n >({})\n const localErrorRef = useRef<Error | FormError | undefined>()\n const hasLocalErrorRef = useRef(false)\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const dataContextError = useMemo(() => {\n return path ? dataContextErrors?.[identifier] : undefined\n }, [dataContextErrors, identifier, path])\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const validatorRef = useRef(validator)\n useUpdateEffect(() => {\n validatorRef.current = validator\n }, [validator])\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>(\n schema ? dataContext.ajvInstance?.compile(schema) : undefined\n )\n\n // Needs to be placed before \"prepareError\"\n const errorMessagesRef = useRef(null)\n errorMessagesRef.current = useMemo(() => {\n return {\n required: translation.Field.errorRequired,\n ...errorMessages,\n }\n }, [errorMessages, translation.Field.errorRequired])\n\n // - Async behavior\n const asyncBehaviorIsEnabled = useMemo(() => {\n return isAsync(onChange) || isAsync(onChangeContext)\n }, [onChangeContext, onChange])\n const validatedValue = useRef<Value>()\n const changeEventResultRef = useRef<EventStateObjectWithSuccess>(null)\n const asyncProcessRef = useRef<AsyncProcesses>(null)\n const defineAsyncProcess = useCallback((name: AsyncProcesses) => {\n asyncProcessRef.current = name\n }, [])\n\n // When both an async onChange and async validators are used,\n // we buffer the onChange calls to avoid race conditions.\n const asyncBufferRef = useRef<\n Record<AsyncProcesses, AsyncProcessesBuffer> | Record<string, unknown>\n >({})\n\n for (const key in asyncBufferRef.current) {\n const { resolve, validateProcesses } = (asyncBufferRef.current[key] ||\n {}) as AsyncProcessesBuffer\n if (validateProcesses?.() === false) {\n delete asyncBufferRef.current[key]\n if (typeof resolve === 'function') {\n window.requestAnimationFrame(resolve)\n }\n }\n }\n\n const eventPool = useRef({\n validator: null,\n onBlurValidator: null,\n onChangeContext: null,\n onChangeLocal: null,\n })\n\n const addToPool = useCallback(\n (name: keyof typeof eventPool.current, fn, runAsync) => {\n if (!eventPool.current[name]) {\n eventPool.current[name] = { fn, runAsync }\n }\n },\n []\n )\n\n const runPool = useCallback(async (cb = null) => {\n for (const key in eventPool.current) {\n if (!eventPool.current[key] || eventPool.current[key].pending) {\n continue\n }\n\n const { fn, runAsync } = eventPool.current[key] || {}\n if (fn) {\n eventPool.current[key].pending = true\n eventPool.current[key] = null\n\n if (runAsync) {\n await fn()\n } else {\n fn()\n }\n }\n }\n\n // use a callback in order to avoid any async/await,\n // because it will delay the execution of the following code\n cb?.()\n }, [])\n\n const fieldStateRef = useRef<SubmitStateWithValidating>()\n const setFieldState = useCallback(\n (state: SubmitStateWithValidating) => {\n fieldStateRef.current = state\n setFieldStateDataContext(identifier, resolveValidatingState(state))\n if (!validateInitially) {\n forceUpdate()\n }\n },\n [setFieldStateDataContext, identifier, validateInitially]\n )\n\n const revealError = useCallback(() => {\n revealErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n if (localErrorRef.current) {\n setHasVisibleErrorDataContext?.(identifier, true)\n } else {\n setHasVisibleErrorDataContext?.(identifier, false)\n }\n }, [showFieldErrorFieldBlock, identifier, setHasVisibleErrorDataContext])\n\n const hideError = useCallback(() => {\n revealErrorRef.current = false\n showFieldErrorFieldBlock?.(identifier, false)\n setHasVisibleErrorDataContext?.(identifier, false)\n }, [setHasVisibleErrorDataContext, identifier, showFieldErrorFieldBlock])\n\n /**\n * Prepare error from validation logic with correct error messages based on props\n */\n const prepareError = useCallback(\n (error: Error | FormError | undefined): FormError | undefined => {\n if (error instanceof FormError) {\n let message = error.message\n\n const { validationRule } = error\n if (typeof validationRule === 'string') {\n const fieldMessage = errorMessagesRef.current?.[validationRule]\n if (fieldMessage) {\n message = fieldMessage\n }\n }\n\n const messagehasValues = Object.entries(\n error.messageValues ?? {}\n ).reduce((message, [key, value]) => {\n return message.replace(`{${key}}`, value)\n }, message)\n\n error.message = messagehasValues\n\n return error\n }\n\n return error\n },\n []\n )\n\n contextErrorRef.current = useMemo(() => {\n if (!dataContextError) {\n return undefined\n }\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n return error\n }\n }, [dataContextError, prepareError])\n\n const error =\n revealErrorRef.current ||\n // If the error is a type error, we want to show it even if the field as not been used\n localErrorRef.current?.['validationRule'] === 'type'\n ? errorProp ?? localErrorRef.current ?? contextErrorRef.current\n : undefined\n\n const hasVisibleError =\n Boolean(error) || (inFieldBlock && fieldBlockContext.hasErrorProp)\n const hasError = useCallback(() => {\n return Boolean(\n errorProp ?? localErrorRef.current ?? contextErrorRef.current\n )\n }, [errorProp])\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n errorArg: Error | FormError | undefined = undefined\n ) => {\n const error = prepareError(errorArg)\n\n if (!errorChanged(error, localErrorRef.current)) {\n // In case different triggers lead to validation with no changes in the result (like still no error, or the same error),\n // avoid unnecessary re-renders by letting the old error object stay in the state and skip re-rendering.\n return\n }\n\n if (method === 'wipe') {\n errorMethodRef.current = {}\n } else {\n errorMethodRef.current[method] = error\n }\n\n if (\n !error &&\n method === 'gracefully' &&\n Object.keys(errorMethodRef.current).filter(Boolean).length > 0\n ) {\n // If the error is removed, we need to check if there are other errors that still should be shown\n return\n }\n\n localErrorRef.current = error\n\n // Tell the data context about the error, so it can stop the user from submitting the form until the error has been fixed\n setFieldErrorDataContext?.(identifier, error)\n setFieldError?.(identifier, error)\n\n // Set the visual states\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n setFieldStateFieldBlock?.({\n stateId,\n identifier,\n type: 'error',\n content: error,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n\n forceUpdate()\n },\n [\n prepareError,\n setFieldErrorDataContext,\n identifier,\n setFieldError,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n inFieldBlock,\n validateInitially,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe')\n hasLocalErrorRef.current = false\n }, [persistErrorState])\n\n const callValidator = useCallback(async () => {\n if (typeof validatorRef.current !== 'function') {\n return\n }\n\n const runAsync = isAsync(validatorRef.current)\n\n if (runAsync) {\n defineAsyncProcess('validator')\n setFieldState('validating')\n hideError()\n }\n\n const opts = {\n ...contextErrorMessages,\n ...errorMessagesRef.current,\n }\n\n const tmpValue = valueRef.current\n\n // Run async regardless to support Promise based validators\n const result = await validatorRef.current(valueRef.current, opts)\n\n const unchangedValue = tmpValue === valueRef.current\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState('gracefully', result as Error)\n\n // Because its a better UX to show the error when the validation is async/delayed\n if (continuousValidation || runAsync) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n revealError()\n forceUpdate()\n })\n }\n }\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n\n if (unchangedValue) {\n setFieldState(result instanceof Error ? 'error' : 'complete')\n } else {\n setFieldState('pending')\n }\n }\n\n return result\n }, [\n contextErrorMessages,\n continuousValidation,\n hideError,\n persistErrorState,\n defineAsyncProcess,\n setFieldState,\n revealError,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({ valueOverride = null } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return\n }\n // External blur validators makes it possible to validate values but not on every character change in case of\n // expensive validation calling external services etc.\n\n // Since the validator can return either a synchronous result or an asynchronous\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlurValidator'\n )\n\n const runAsync = isAsync(onBlurValidatorRef.current)\n\n if (runAsync) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n // Run async regardless to support Promise based validators\n const result = await onBlurValidatorRef.current(value)\n\n persistErrorState('gracefully', result as Error)\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n revealError()\n forceUpdate()\n },\n [persistErrorState, defineAsyncProcess, setFieldState, revealError]\n )\n\n const prioritizeContextSchema = useMemo(() => {\n if (errorPrioritization) {\n const schemaPath = identifier.split('/').join('/properties/')\n const hasContextSchema = pointer.has(\n dataContext?.schema || {},\n schemaPath\n )\n return (\n hasContextSchema &&\n errorPrioritization?.indexOf('contextSchema') === 0\n )\n }\n }, [dataContext?.schema, errorPrioritization, identifier])\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n if (disabled) {\n if (isProcessActive()) {\n clearErrorState()\n }\n hideError()\n setFieldState(undefined)\n return // stop here\n }\n\n const value = valueRef.current\n changeEventResultRef.current = null\n validatedValue.current = null\n\n try {\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required: requiredProp ?? required,\n isChanged: changedRef.current,\n error: new FormError('The value is required', {\n validationRule: 'required',\n }),\n })\n if (requiredError instanceof Error) {\n throw requiredError\n }\n\n // Validate by provided JSON Schema for this value\n if (\n schemaValidatorRef.current &&\n value !== undefined &&\n !schemaValidatorRef.current(value) &&\n !prioritizeContextSchema\n ) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors,\n valueRef.current\n )\n throw error\n }\n\n // Validate by provided derivative validator\n if (\n validatorRef.current &&\n (changedRef.current || validateInitially)\n ) {\n const result = await callValidator()\n\n if (result instanceof Error) {\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValue.current = value\n } catch (error: unknown) {\n if (isProcessActive()) {\n hasLocalErrorRef.current = true\n persistErrorState('weak', error as Error)\n }\n }\n }, [\n startProcess,\n disabled,\n hideError,\n setFieldState,\n clearErrorState,\n emptyValue,\n requiredProp,\n required,\n prioritizeContextSchema,\n validateInitially,\n callValidator,\n persistErrorState,\n ])\n\n const handleError = useCallback(() => {\n if (\n continuousValidation ||\n (continuousValidation !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with continuousValidation set to false).\n revealError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [continuousValidation, hideError, revealError])\n\n const setHasFocus = useCallback(\n async (\n hasFocus: boolean,\n valueOverride?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => {\n const getArgs = (\n type: Parameters<typeof transformers.current.toEvent>[1]\n ) => {\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n type\n )\n const transformedAdditionalArgs =\n transformers.current.transformAdditionalArgs(\n additionalArgs,\n value\n )\n\n return typeof transformedAdditionalArgs !== 'undefined'\n ? [value, transformedAdditionalArgs]\n : [value]\n }\n\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n const args = getArgs('onFocus')\n onFocus?.apply(this, args)\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n const args = getArgs('onBlur')\n onBlur?.apply(this, args)\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n addToPool(\n 'onBlurValidator',\n async () => await callOnBlurValidator({ valueOverride }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n revealError()\n forceUpdate()\n })\n }\n },\n [\n addToPool,\n callOnBlurValidator,\n onBlur,\n onFocus,\n runPool,\n revealError,\n validateUnchanged,\n ]\n )\n\n // Await an async operation to run after criteria are fulfilled\n const yieldAsyncProcess = useCallback(\n async ({\n name,\n waitFor,\n }: {\n name: 'onChangeLocal' | 'onChangeContext' | 'onSubmitContext'\n waitFor: Array<{\n processName?: AsyncProcesses\n withStates: Array<SubmitStateWithValidating>\n hasValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, hasValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n hasValue === validatedValue.current\n\n const result =\n (typeof hasValue === 'undefined'\n ? false\n : !hasMatchingValue) ||\n ((processName\n ? processName === asyncProcessRef.current\n : true) &&\n withStates?.some((state) => {\n return state === fieldStateRef.current\n }))\n\n return result\n }\n )\n\n return result\n }\n\n if (validateProcesses() === true) {\n asyncBufferRef.current[name] = { resolve, validateProcesses }\n } else {\n resolve()\n setFieldState('pending')\n }\n })\n },\n [setFieldState]\n )\n\n const handleChangeEventResult = useCallback(async () => {\n const result: EventStateObjectWithSuccess =\n changeEventResultRef.current\n\n if (typeof result?.error !== 'undefined') {\n persistErrorState('gracefully', result.error)\n revealError()\n }\n if (typeof result?.warning !== 'undefined') {\n warningRef.current = result.warning\n }\n if (typeof result?.info !== 'undefined') {\n infoRef.current = result.info\n }\n\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onSubmitContext',\n waitFor: [{ withStates: ['validating'] }],\n })\n }\n\n defineAsyncProcess(undefined)\n\n if (result?.success === 'saved') {\n setFieldState('success')\n } else if (result?.error) {\n setFieldState('error')\n } else if (asyncBehaviorIsEnabled) {\n setFieldState('complete')\n }\n }, [\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n persistErrorState,\n setFieldState,\n revealError,\n yieldAsyncProcess,\n ])\n\n const setEventResult = useCallback(\n (result: EventReturnWithStateObjectAndSuccess) => {\n if (result instanceof Error) {\n result = { error: result }\n }\n changeEventResultRef.current = {\n ...changeEventResultRef.current,\n ...result,\n } as EventStateObjectWithSuccess\n\n handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled && !executeOnChangeRegardlessOfError) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n ],\n })\n }\n\n if (hasPath) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError() || executeOnChangeRegardlessOfError) {\n setEventResult(\n (await handlePathChangeDataContext?.(\n identifier\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n setEventResult(null)\n }\n } else {\n setEventResult(\n handlePathChangeDataContext?.(\n identifier\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n executeOnChangeRegardlessOfError,\n hasPath,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n hasError,\n setEventResult,\n handlePathChangeDataContext,\n identifier,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n if (newValue === valueRef.current) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n valueRef.current = newValue\n\n if (hasPath) {\n handlePathChangeUnvalidatedDataContext(identifier, newValue)\n }\n\n addToPool('validator', validateValue, isAsync(validatorRef.current))\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n hasPath,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handlePathChangeUnvalidatedDataContext,\n identifier,\n handleError,\n ]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value | unknown,\n additionalArgs: AdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n const fromInput = transformers.current.fromInput(argFromInput)\n\n if (fromInput === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n const transformedValue = transformers.current.transformOut(\n transformers.current.transformValue(fromInput, currentValue)\n )\n\n // Must be set before validation\n changedRef.current = true\n\n // Run in sync, before any async operations to avoid lag in UX\n if (itemPath) {\n handleChangeIterateContext?.(\n makeIteratePath(itemPath, ''),\n transformedValue\n )\n }\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(transformedValue)\n } else {\n updateValue(transformedValue)\n }\n\n const getArgs = (): [Value] | [Value, AdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n valueRef.current,\n 'onChange'\n )\n\n const transformedAdditionalArgs =\n transformers.current.transformAdditionalArgs(\n additionalArgs,\n value\n )\n\n return typeof transformedAdditionalArgs !== 'undefined'\n ? [value, transformedAdditionalArgs]\n : [value]\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getArgs()\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n hasValue: args[0],\n },\n ],\n })\n\n defineAsyncProcess('onChangeLocal')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n // If the value has changed during the async process, we don't want to call the onChange anymore\n setEventResult(await onChange?.apply(this, args))\n } else {\n setEventResult(null)\n }\n },\n true\n )\n } else {\n setEventResult(onChange?.apply(this, getArgs()))\n }\n\n await runPool()\n },\n [\n itemPath,\n asyncBehaviorIsEnabled,\n onChange,\n runPool,\n handleChangeIterateContext,\n makeIteratePath,\n hideError,\n updateValue,\n addToPool,\n yieldAsyncProcess,\n defineAsyncProcess,\n hasError,\n setEventResult,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n // Put props into the surrounding data context as early as possible\n setPropsDataContext?.(identifier, props)\n\n useMountEffect(() => {\n dataContext?.handleMountField(identifier)\n validateValue()\n })\n useUnmountEffect(() => {\n dataContext?.handleUnMountField(identifier)\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldError?.(identifier, undefined)\n localErrorRef.current = undefined\n })\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema, validateValue])\n\n useEffect(() => {\n if (dataContext.data === clearedData) {\n hideError()\n }\n }, [dataContext.data, hideError])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n validateValue()\n }\n forceUpdate()\n }, [externalValue, validateValue])\n\n useEffect(() => {\n // Check against the local error state,\n // so we prioritize the local error state over the context error state\n if (!hasLocalErrorRef.current) {\n const error = prepareError(dataContextError)\n if (error) {\n persistErrorState('weak', error)\n if (validateInitially) {\n handleError()\n }\n } else {\n clearErrorState()\n }\n }\n }, [\n clearErrorState,\n dataContextError,\n handleError,\n persistErrorState,\n prepareError,\n validateInitially,\n ])\n\n useEffect(() => {\n if (hasPath) {\n let value = valueProp\n\n // First, look for existing data in the context\n const hasValue =\n pointer.has(dataContext.data, identifier) || identifier === '/'\n const existingValue =\n identifier === '/'\n ? dataContext.data\n : hasValue\n ? pointer.get(dataContext.data, identifier)\n : undefined\n\n // If no data where found in the dataContext, look for shared data\n if (\n dataContext.id &&\n !hasValue &&\n typeof existingValue === 'undefined' &&\n typeof value === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, identifier)\n if (hasValue) {\n const sharedValue = pointer.get(sharedState.data, identifier)\n if (sharedValue) {\n value = sharedValue\n }\n }\n }\n\n if (\n typeof defaultValueRef.current !== 'undefined' &&\n typeof value === 'undefined'\n ) {\n value = defaultValueRef.current\n defaultValueRef.current = undefined\n }\n\n if (\n !hasValue ||\n (value !== existingValue &&\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current !== existingValue)\n ) {\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(identifier, value)\n validateDataDataContext?.()\n }\n }\n }, [\n dataContext.data,\n dataContext.id,\n hasPath,\n identifier,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n ])\n\n useEffect(() => {\n if (showAllErrors || showBoundaryErrors) {\n // In case of async validation, we don't want to show existing errors before the validation has been completed\n if (fieldStateRef.current !== 'validating') {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n revealError()\n }\n } else if (showBoundaryErrors === false) {\n hideError()\n }\n }, [hideError, revealError, showAllErrors, showBoundaryErrors])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (validatorRef.current || onBlurValidatorRef.current)\n ) {\n hideError()\n forceUpdate()\n }\n }, [dataContext.formState, hideError])\n\n const onSubmitHandler = useCallback(async () => {\n if (hasError()) {\n return // stop here\n }\n\n addToPool('validator', callValidator, isAsync(validatorRef.current))\n addToPool(\n 'onBlurValidator',\n callOnBlurValidator,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [addToPool, callOnBlurValidator, callValidator, hasError, runPool])\n\n // Validate/call validator functions during submit of the form\n useMountEffect(() => {\n dataContext?.setFieldEventListener?.(\n identifier,\n 'onSubmit',\n onSubmitHandler\n )\n })\n\n // Set the error in the field block context if this field is inside a field block\n useMountEffect(() => {\n if (inFieldBlock) {\n if (errorProp) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n }\n if (warning) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n }\n if (info) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n }\n\n return () => {\n // Unmount procedure\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n }\n }\n })\n\n const infoRef = useRef<React.ReactNode>(info)\n const warningRef = useRef<React.ReactNode>(warning)\n useUpdateEffect(() => {\n infoRef.current = info\n warningRef.current = warning\n forceUpdate()\n }, [info, warning])\n\n // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>(\n (acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n },\n { ...props.htmlAttributes }\n )\n }, [props])\n\n if (error) {\n htmlAttributes['aria-invalid'] = error ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = 'true'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n\n // Check if there are any state IDs to be added to the aria-describedby attribute\n const stateIds = fieldBlockContext.fieldStateIdsRef?.current\n\n if (stateIds) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n [\n error && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (error || errorProp) && `${id}-form-status--error`,\n warning && `${id}-form-status--warning`,\n info && `${id}-form-status--info`,\n ].filter(Boolean)\n\n if (ids.length) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n ids\n )\n }\n }\n\n const fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? error : undefined,\n\n /** HTML Attributes */\n disabled:\n onBlurValidator &&\n asyncProcessRef.current === 'onBlurValidator' &&\n fieldStateRef.current === 'validating'\n ? true\n : disabled,\n\n /** Internal */\n fieldState: resolveValidatingState(fieldStateRef.current),\n }\n\n const sharedData = useSharedState('field-block-props-' + id)\n sharedData.set(fieldBlockProps)\n\n return {\n ...props,\n ...fieldBlockProps,\n\n /** HTML Attributes */\n name: props.name || props.path?.replace('/', '') || id,\n autoComplete:\n props.autoComplete ??\n (dataContext.autoComplete === true ? 'on' : undefined),\n\n /** Documented APIs */\n id,\n value: transformers.current.transformIn(\n transformers.current.toInput(valueRef.current)\n ),\n hasError: hasVisibleError,\n isChanged: changedRef.current,\n props,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n forceUpdate,\n\n /** Internal */\n dataContext,\n }\n}\n\nexport interface ReturnAdditional<Value> {\n /** Documented APIs */\n value: Value\n isChanged: boolean\n htmlAttributes: AriaAttributes | DataAttributes\n setHasFocus: (\n hasFocus: boolean,\n valueOverride?: unknown,\n additionalArgs?: AdditionalEventArgs\n ) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value | unknown,\n additionalArgs?: AdditionalEventArgs\n ) => void\n updateValue: (value: Value) => void\n forceUpdate: () => void\n hasError?: boolean\n\n /** Internal */\n dataContext: ContextState\n fieldState: SubmitState\n}\n\nfunction resolveValidatingState(state: SubmitStateWithValidating) {\n return state === 'validating' ? 'pending' : state\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useFieldProps.js","names":["useRef","useEffect","useContext","useCallback","useMemo","useReducer","pointer","errorChanged","ajvErrorsToOneFormError","FormError","Context","DataContext","clearedData","FieldPropsContext","combineDescribedBy","warn","useId","useUpdateEffect","FieldBlockContext","IterateElementContext","SectionContext","FieldBoundaryContext","useProcessManager","usePath","createSharedState","useSharedState","isAsync","useTranslation","useExternalValue","useDataValue","useFieldProps","localeProps","executeOnChangeRegardlessOfError","_dataContext$props","_useExternalValue","_dataContext$ajvInsta","_localErrorRef$curren","_ref","_dataContext$props3","_props$path","_props$autoComplete","extend","props","path","pathProp","value","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","exportValidators","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","transformAdditionalArgs","additionalArgs","fromExternal","validateRequired","res","undefined","salt","forceUpdate","isInternalRerenderRef","current","startProcess","id","dataContext","fieldBlockContext","iterateItemContext","sectionContext","fieldBoundaryContext","translation","transformers","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldProps","setPropsDataContext","setHasVisibleError","setHasVisibleErrorDataContext","handleMountField","handleUnMountField","setFieldEventListener","errors","dataContextErrors","showAllErrors","contextErrorMessages","onChangeContext","readOnly","inFieldBlock","Boolean","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","handleChange","handleChangeIterateContext","sectionPath","errorPrioritization","showBoundaryErrors","hasPath","identifier","makeIteratePath","defaultValueRef","externalValue","valueRef","changedRef","hasFocusRef","paths","split","length","requiredList","schemaPath","slice","join","schemaPart","has","get","push","substring","collected","flatMap","v","filter","some","p","c","includes","revealErrorRef","errorMethodRef","localErrorRef","hasLocalErrorRef","dataContextError","contextErrorRef","onChangeValidatorRef","onBlurValidatorRef","schemaValidatorRef","ajvInstance","compile","errorMessagesRef","_objectSpread","Field","errorRequired","asyncBehaviorIsEnabled","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","name","asyncBufferRef","key","resolve","validateProcesses","window","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","revealError","hideError","prepareError","message","validationRule","_errorMessagesRef$cur","fieldMessage","messageHasValues","Object","entries","messageValues","reduce","replace","hasVisibleError","hasErrorProp","hasError","_ref2","connectWithPathListenerRef","runOnChangeValidator","runOnBlurValidator","getValueByPath","exportValidatorsRef","args","validators","connectWithPath","getValue","extendWithExportedValidators","result","Array","isArray","values","callValidatorFnSync","Error","callValidatorFnAsync","stateId","persistErrorState","method","errorArg","keys","type","content","showInitially","clearErrorState","validatorCacheRef","onChangeValidator","revealOnChangeValidatorResult","unchangedValue","callOnChangeValidator","tmpValue","Promise","startOnChangeValidatorValidation","String","callOnBlurValidator","overrideValue","revealOnBlurValidatorResult","startOnBlurValidatorProcess","prioritizeContextSchema","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","handleError","setHasFocus","hasFocus","getArgs","transformedAdditionalArgs","apply","yieldAsyncProcess","waitFor","processName","withStates","hasValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","setChanged","argFromInput","currentValue","transformedValue","handleFocus","handleBlur","_dataContext$ajvInsta2","isEmptyData","_dataContext$internal","_dataContext$props$em","_dataContext$props2","internalDataRef","emptyData","data","existingValue","sharedState","sharedValue","formState","onSubmitHandler","show","htmlAttributes","acc","cur","startsWith","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","ids","fieldBlockProps","labelSuffix","fieldState","sharedData","set","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import React, {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport { errorChanged } from '../utils'\nimport { ajvErrorsToOneFormError } from '../utils/ajv'\nimport {\n FormError,\n FieldPropsGeneric,\n AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n ValidatorAdditionalArgs,\n Validator,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { clearedData } from '../DataContext/Provider/Provider'\nimport FieldPropsContext from '../Form/FieldProps/FieldPropsContext'\nimport { combineDescribedBy, warn } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateItemContext'\nimport SectionContext from '../Form/Section/SectionContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport useProcessManager from './useProcessManager'\nimport usePath from './usePath'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\nimport useExternalValue from './useExternalValue'\nimport useDataValue from './useDataValue'\n\ntype SubmitStateWithValidating = SubmitState | 'validating'\ntype AsyncProcesses =\n | 'validator'\n | 'onBlurValidator'\n | 'onChangeLocal'\n | 'onChangeContext'\ntype PersistErrorStateMethod =\n /**\n * Add or remove the error regardless\n */\n | 'weak'\n /**\n * Check if there is an existing error, and if so, keep it\n */\n | 'gracefully'\n /**\n * Remove the error, if any\n */\n | 'wipe'\ntype AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string | boolean | number\n}\n\n// Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n// useEffect depend on them (like the external `value`)\n\nexport default function useFieldProps<Value, EmptyValue, Props>(\n localeProps: Props & FieldPropsGeneric<Value, EmptyValue>,\n { executeOnChangeRegardlessOfError = false } = {}\n): typeof localeProps & ReturnAdditional<Value> {\n const { extend } = useContext(FieldPropsContext)\n const props = extend(localeProps)\n\n const {\n path: pathProp,\n value: valueProp,\n defaultValue,\n itemPath,\n emptyValue,\n required: requiredProp,\n disabled: disabledProp,\n info,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n exportValidators,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n transformIn = (value: Value) => value,\n transformOut = (value: Value) => value,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n transformAdditionalArgs = (additionalArgs: AdditionalEventArgs) =>\n additionalArgs,\n fromExternal = (value: Value) => value,\n validateRequired = (value, { emptyValue, required, error }) => {\n const res =\n required &&\n ((value as any) === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\n },\n } = props\n\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const isInternalRerenderRef = useRef(undefined)\n useMemo(() => {\n /**\n * This is currently not used, but we keep it here for future use.\n * It lets you check for isInternalRerenderRef.current !== undefined\n * inside a useUpdateEffect or useEffect to know if the component is rerendering from inside or outside.\n */\n isInternalRerenderRef.current = salt\n }, [salt])\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateItemContext = useContext(IterateElementContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const translation = useTranslation()\n\n const transformers = useRef({\n transformIn,\n transformOut,\n transformAdditionalArgs,\n toInput,\n fromInput,\n toEvent,\n fromExternal,\n transformValue,\n validateRequired,\n })\n\n const {\n handlePathChangeUnvalidated: handlePathChangeUnvalidatedDataContext,\n handlePathChange: handlePathChangeDataContext,\n updateDataValue: updateDataValueDataContext,\n validateData: validateDataDataContext,\n setFieldState: setFieldStateDataContext,\n setFieldError: setFieldErrorDataContext,\n setFieldProps: setPropsDataContext,\n setHasVisibleError: setHasVisibleErrorDataContext,\n handleMountField,\n handleUnMountField,\n setFieldEventListener,\n errors: dataContextErrors,\n showAllErrors,\n contextErrorMessages,\n } = dataContext || {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = fieldBlockContext || {}\n const { handleChange: handleChangeIterateContext } =\n iterateItemContext || {}\n const { path: sectionPath, errorPrioritization } = sectionContext || {}\n const { setFieldError, showBoundaryErrors } = fieldBoundaryContext || {}\n\n const hasPath = Boolean(pathProp)\n const { path, identifier, makeIteratePath } = usePath({\n id,\n path: pathProp,\n itemPath,\n })\n\n const defaultValueRef = useRef(defaultValue)\n const externalValue =\n useExternalValue<Value>({\n path,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue,\n }) ?? defaultValueRef.current\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>()\n const hasFocusRef = useRef<boolean>()\n\n const required = useMemo(() => {\n if (typeof requiredProp !== 'undefined') {\n return requiredProp\n }\n\n const paths = identifier.split('/')\n if (paths.length > 0 && (schema || dataContext?.schema)) {\n const requiredList = [schema?.['required']]\n\n if (paths.length > 1) {\n const schema = dataContext.schema\n const schemaPath = paths.slice(0, -1).join('/properties/')\n const schemaPart = pointer.has(schema, schemaPath)\n ? pointer.get(schema, schemaPath)\n : schema\n\n requiredList.push(schemaPart?.required)\n }\n\n if (sectionPath) {\n paths.push(sectionPath.substring(1))\n }\n\n const collected = requiredList.flatMap((v) => v).filter(Boolean)\n if (\n paths\n .filter(Boolean)\n .some((p) => collected.some((c) => c.includes(p)))\n ) {\n return true\n }\n }\n }, [requiredProp, identifier, schema, dataContext.schema, sectionPath])\n\n // Error handling\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const revealErrorRef = useRef<boolean>(\n validateInitially ?? Boolean(errorProp)\n )\n // - Local errors are errors based on validation instructions received by\n const errorMethodRef = useRef<\n Partial<Record<PersistErrorStateMethod, Error | FormError>>\n >({})\n const localErrorRef = useRef<Error | FormError | undefined>()\n const hasLocalErrorRef = useRef(false)\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const dataContextError = useMemo(() => {\n return path ? dataContextErrors?.[identifier] : undefined\n }, [dataContextErrors, identifier, path])\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const onChangeValidatorRef = useRef(validator)\n useUpdateEffect(() => {\n onChangeValidatorRef.current = validator\n }, [validator])\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>(\n schema ? dataContext.ajvInstance?.compile(schema) : undefined\n )\n\n // Needs to be placed before \"prepareError\"\n const errorMessagesRef = useRef(null)\n errorMessagesRef.current = useMemo(() => {\n return {\n required: translation.Field.errorRequired,\n ...errorMessages,\n }\n }, [errorMessages, translation.Field.errorRequired])\n\n // - Async behavior\n const asyncBehaviorIsEnabled = useMemo(() => {\n return isAsync(onChange) || isAsync(onChangeContext)\n }, [onChangeContext, onChange])\n const validatedValue = useRef<Value>()\n const changeEventResultRef = useRef<EventStateObjectWithSuccess>(null)\n const asyncProcessRef = useRef<AsyncProcesses>(null)\n const defineAsyncProcess = useCallback((name: AsyncProcesses) => {\n asyncProcessRef.current = name\n }, [])\n\n // When both an async onChange and async validators are used,\n // we buffer the onChange calls to avoid race conditions.\n const asyncBufferRef = useRef<\n Record<AsyncProcesses, AsyncProcessesBuffer> | Record<string, unknown>\n >({})\n\n for (const key in asyncBufferRef.current) {\n const { resolve, validateProcesses } = (asyncBufferRef.current[key] ||\n {}) as AsyncProcessesBuffer\n if (validateProcesses?.() === false) {\n delete asyncBufferRef.current[key]\n if (typeof resolve === 'function') {\n window.requestAnimationFrame(resolve)\n }\n }\n }\n\n const eventPool = useRef({\n validator: null,\n onBlurValidator: null,\n onChangeContext: null,\n onChangeLocal: null,\n })\n\n const addToPool = useCallback(\n (name: keyof typeof eventPool.current, fn, runAsync) => {\n if (!eventPool.current[name]) {\n eventPool.current[name] = { fn, runAsync }\n }\n },\n []\n )\n\n const runPool = useCallback(async (cb = null) => {\n for (const key in eventPool.current) {\n if (!eventPool.current[key] || eventPool.current[key].pending) {\n continue\n }\n\n const { fn, runAsync } = eventPool.current[key] || {}\n if (fn) {\n eventPool.current[key].pending = true\n eventPool.current[key] = null\n\n if (runAsync) {\n await fn()\n } else {\n fn()\n }\n }\n }\n\n // use a callback in order to avoid any async/await,\n // because it will delay the execution of the following code\n cb?.()\n }, [])\n\n const fieldStateRef = useRef<SubmitStateWithValidating>()\n const setFieldState = useCallback(\n (state: SubmitStateWithValidating) => {\n fieldStateRef.current = state\n setFieldStateDataContext(identifier, resolveValidatingState(state))\n if (!validateInitially) {\n forceUpdate()\n }\n },\n [setFieldStateDataContext, identifier, validateInitially]\n )\n\n const revealError = useCallback(() => {\n // To support \"validateInitially={false}\" prop, we need to make sure that the error is not shown initially\n if (revealErrorRef.current === false && validateInitially === false) {\n revealErrorRef.current = undefined\n return // stop here\n }\n\n if (!revealErrorRef.current) {\n revealErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n setHasVisibleErrorDataContext?.(identifier, !!localErrorRef.current)\n }\n }, [\n identifier,\n setHasVisibleErrorDataContext,\n showFieldErrorFieldBlock,\n validateInitially,\n ])\n\n const hideError = useCallback(() => {\n if (revealErrorRef.current) {\n revealErrorRef.current = undefined\n showFieldErrorFieldBlock?.(identifier, false)\n setHasVisibleErrorDataContext?.(identifier, false)\n }\n }, [identifier, setHasVisibleErrorDataContext, showFieldErrorFieldBlock])\n\n /**\n * Prepare error from validation logic with correct error messages based on props\n */\n const prepareError = useCallback(\n (error: Error | FormError | undefined): FormError | undefined => {\n if (error instanceof FormError) {\n let message = error.message\n\n const { validationRule } = error\n if (typeof validationRule === 'string') {\n const fieldMessage = errorMessagesRef.current?.[validationRule]\n if (fieldMessage) {\n message = fieldMessage\n }\n }\n\n const messageHasValues = Object.entries(\n error.messageValues || {}\n ).reduce((message, [key, value]) => {\n return message.replace(`{${key}}`, value)\n }, message)\n\n error.message = messageHasValues\n\n return error\n }\n\n return error\n },\n []\n )\n\n contextErrorRef.current = useMemo(() => {\n if (!dataContextError) {\n return undefined\n }\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n return error\n }\n }, [dataContextError, prepareError])\n\n const error =\n revealErrorRef.current ||\n // If the error is a type error, we want to show it even if the field as not been used\n localErrorRef.current?.['validationRule'] === 'type'\n ? errorProp ?? localErrorRef.current ?? contextErrorRef.current\n : undefined\n\n const hasVisibleError =\n Boolean(error) || (inFieldBlock && fieldBlockContext.hasErrorProp)\n const hasError = useCallback(() => {\n return Boolean(\n errorProp ?? localErrorRef.current ?? contextErrorRef.current\n )\n }, [errorProp])\n\n const connectWithPathListenerRef = useRef(async () => {\n if (\n localErrorRef.current ||\n validateUnchanged ||\n continuousValidation\n ) {\n if (onChangeValidatorRef.current) {\n runOnChangeValidator()\n }\n }\n\n if (localErrorRef.current && onBlurValidatorRef.current) {\n runOnBlurValidator()\n }\n })\n\n const { getValueByPath } = useDataValue()\n const exportValidatorsRef = useRef(exportValidators)\n exportValidatorsRef.current = exportValidators\n const additionalArgs = useMemo(() => {\n const errorMessages = {\n ...contextErrorMessages,\n ...errorMessagesRef.current,\n }\n const args: ValidatorAdditionalArgs<Value> = {\n /** @deprecated – can be removed in v11 */\n ...errorMessages,\n\n errorMessages,\n validators: exportValidatorsRef.current,\n connectWithPath: (path) => {\n setFieldEventListener?.(\n path,\n 'onPathChange',\n connectWithPathListenerRef.current\n )\n\n return {\n getValue: () => getValueByPath(path),\n }\n },\n }\n\n return args\n }, [contextErrorMessages, getValueByPath, setFieldEventListener])\n const extendWithExportedValidators = useCallback(\n (\n validator: Validator<Value>,\n result: ReturnType<Validator<Value>>\n ) => {\n if (\n exportValidatorsRef.current &&\n !result &&\n (validator === onChangeValidatorRef.current ||\n validator === onBlurValidatorRef.current) &&\n !Array.isArray(result)\n ) {\n return Object.values(exportValidatorsRef.current)\n }\n\n return result\n },\n []\n )\n\n const callValidatorFnSync = useCallback(\n (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): ReturnType<Validator<Value>> => {\n if (typeof validator !== 'function') {\n return undefined\n }\n\n const result = extendWithExportedValidators(\n validator,\n validator(value, additionalArgs)\n )\n\n if (Array.isArray(result)) {\n for (const validator of result) {\n const result = callValidatorFnSync(validator, value)\n if (result instanceof Error) {\n return result\n }\n }\n\n return // stop here\n }\n\n return result\n },\n [additionalArgs, extendWithExportedValidators]\n )\n\n const callValidatorFnAsync = useCallback(\n async (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): Promise<ReturnType<Validator<Value>>> => {\n if (typeof validator !== 'function') {\n return undefined\n }\n\n const result = extendWithExportedValidators(\n validator,\n await validator(value, additionalArgs)\n )\n\n if (Array.isArray(result)) {\n for (const validator of result) {\n const result = await callValidatorFnAsync(validator, value)\n\n if (result instanceof Error) {\n return result\n }\n }\n\n return // stop here\n }\n\n return result\n },\n [additionalArgs, extendWithExportedValidators]\n )\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n errorArg: Error | FormError | undefined = undefined\n ) => {\n const error = prepareError(errorArg)\n\n if (!errorChanged(error, localErrorRef.current)) {\n // In case different triggers lead to validation with no changes in the result (like still no error, or the same error),\n // avoid unnecessary re-renders by letting the old error object stay in the state and skip re-rendering.\n return\n }\n\n if (method === 'wipe') {\n errorMethodRef.current = {}\n } else {\n errorMethodRef.current[method] = error\n }\n\n if (\n !error &&\n method === 'gracefully' &&\n Object.keys(errorMethodRef.current).filter(Boolean).length > 0\n ) {\n // If the error is removed, we need to check if there are other errors that still should be shown\n return\n }\n\n localErrorRef.current = error\n\n // Tell the data context about the error, so it can stop the user from submitting the form until the error has been fixed\n setFieldErrorDataContext?.(identifier, error)\n setFieldError?.(identifier, error)\n\n // Set the visual states\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n setFieldStateFieldBlock?.({\n stateId,\n identifier,\n type: 'error',\n content: error,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n\n forceUpdate()\n },\n [\n prepareError,\n setFieldErrorDataContext,\n identifier,\n setFieldError,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n inFieldBlock,\n validateInitially,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe')\n hasLocalErrorRef.current = false\n }, [persistErrorState])\n\n const validatorCacheRef = useRef({\n onChangeValidator: null,\n onBlurValidator: null,\n })\n\n const revealOnChangeValidatorResult = useCallback(\n ({ result, unchangedValue }) => {\n const runAsync = isAsync(onChangeValidatorRef.current)\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState('gracefully', result as Error)\n\n if (\n (validateInitially && !changedRef.current) ||\n validateUnchanged ||\n continuousValidation ||\n runAsync // Because its a better UX to show the error when the validation is async/delayed\n ) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n revealError()\n forceUpdate()\n })\n }\n }\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n\n if (unchangedValue) {\n setFieldState(result instanceof Error ? 'error' : 'complete')\n } else {\n setFieldState('pending')\n }\n }\n },\n [\n continuousValidation,\n defineAsyncProcess,\n persistErrorState,\n revealError,\n setFieldState,\n validateInitially,\n validateUnchanged,\n ]\n )\n\n const callOnChangeValidator = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return {}\n }\n\n const tmpValue = valueRef.current\n\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n\n const unchangedValue = tmpValue === valueRef.current\n return { result, unchangedValue }\n }, [callValidatorFnAsync, callValidatorFnSync])\n\n const startOnChangeValidatorValidation = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return\n }\n\n if (isAsync(onChangeValidatorRef.current)) {\n defineAsyncProcess('validator')\n setFieldState('validating')\n hideError()\n }\n\n // Ideally, we should rather call \"callOnChangeValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n const tmpValue = valueRef.current\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n const unchangedValue = tmpValue === valueRef.current\n\n revealOnChangeValidatorResult({ result, unchangedValue })\n\n return { result }\n }, [\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n hideError,\n revealOnChangeValidatorResult,\n setFieldState,\n ])\n\n const runOnChangeValidator = useCallback(async () => {\n if (!onChangeValidatorRef.current) {\n return // stop here\n }\n\n const { result, unchangedValue } = await callOnChangeValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onChangeValidator)\n ) {\n if (result) {\n revealOnChangeValidatorResult({ result, unchangedValue })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onChangeValidator = result || null\n }, [\n callOnChangeValidator,\n clearErrorState,\n hideError,\n revealOnChangeValidatorResult,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return {}\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n return { result }\n },\n [callValidatorFnAsync, callValidatorFnSync]\n )\n\n const revealOnBlurValidatorResult = useCallback(\n ({ result }) => {\n persistErrorState('gracefully', result as Error)\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n revealError()\n },\n [defineAsyncProcess, persistErrorState, revealError, setFieldState]\n )\n\n const startOnBlurValidatorProcess = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return\n }\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n // Ideally, we should rather call \"callOnBlurValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n revealOnBlurValidatorResult({ result })\n },\n [\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n revealOnBlurValidatorResult,\n setFieldState,\n ]\n )\n\n const runOnBlurValidator = useCallback(async () => {\n if (!onBlurValidatorRef.current) {\n return // stop here\n }\n\n const { result } = await callOnBlurValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onBlurValidator) &&\n revealErrorRef.current\n ) {\n if (result) {\n revealOnBlurValidatorResult({ result })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onBlurValidator = result || null\n }, [\n callOnBlurValidator,\n clearErrorState,\n hideError,\n revealOnBlurValidatorResult,\n ])\n\n const prioritizeContextSchema = useMemo(() => {\n if (errorPrioritization) {\n const schemaPath = identifier.split('/').join('/properties/')\n const hasContextSchema = pointer.has(\n dataContext?.schema || {},\n schemaPath\n )\n return (\n hasContextSchema &&\n errorPrioritization?.indexOf('contextSchema') === 0\n )\n }\n }, [dataContext?.schema, errorPrioritization, identifier])\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n if (disabled) {\n if (isProcessActive()) {\n clearErrorState()\n }\n hideError()\n setFieldState(undefined)\n return // stop here\n }\n\n const value = valueRef.current\n changeEventResultRef.current = null\n validatedValue.current = null\n\n try {\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required: requiredProp ?? required,\n isChanged: changedRef.current,\n error: new FormError('The value is required', {\n validationRule: 'required',\n }),\n })\n if (requiredError instanceof Error) {\n throw requiredError\n }\n\n // Validate by provided JSON Schema for this value\n if (\n schemaValidatorRef.current &&\n value !== undefined &&\n !schemaValidatorRef.current(value) &&\n !prioritizeContextSchema\n ) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors,\n valueRef.current\n )\n throw error\n }\n\n // Validate by provided derivative validator\n if (\n onChangeValidatorRef.current &&\n (changedRef.current || validateInitially || validateUnchanged)\n ) {\n const { result } = await startOnChangeValidatorValidation()\n\n if (result instanceof Error) {\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValue.current = value\n } catch (error: unknown) {\n if (isProcessActive()) {\n hasLocalErrorRef.current = true\n persistErrorState('weak', error as Error)\n }\n }\n }, [\n startProcess,\n disabled,\n hideError,\n setFieldState,\n clearErrorState,\n emptyValue,\n requiredProp,\n required,\n prioritizeContextSchema,\n validateInitially,\n validateUnchanged,\n startOnChangeValidatorValidation,\n persistErrorState,\n ])\n\n const handleError = useCallback(() => {\n if (\n continuousValidation ||\n (continuousValidation !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with continuousValidation set to false).\n revealError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [continuousValidation, hideError, revealError])\n\n const setHasFocus = useCallback(\n async (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => {\n const getArgs = (\n type: Parameters<typeof transformers.current.toEvent>[1]\n ) => {\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n type\n )\n const transformedAdditionalArgs =\n transformers.current.transformAdditionalArgs(\n additionalArgs,\n value\n )\n\n return typeof transformedAdditionalArgs !== 'undefined'\n ? [value, transformedAdditionalArgs]\n : [value]\n }\n\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n const args = getArgs('onFocus')\n onFocus?.apply(this, args)\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n const args = getArgs('onBlur')\n onBlur?.apply(this, args)\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n addToPool(\n 'onBlurValidator',\n async () => await startOnBlurValidatorProcess({ overrideValue }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n revealError()\n forceUpdate()\n })\n }\n },\n [\n onFocus,\n onBlur,\n validateUnchanged,\n addToPool,\n runPool,\n startOnBlurValidatorProcess,\n revealError,\n ]\n )\n\n // Await an async operation to run after criteria are fulfilled\n const yieldAsyncProcess = useCallback(\n async ({\n name,\n waitFor,\n }: {\n name: 'onChangeLocal' | 'onChangeContext' | 'onSubmitContext'\n waitFor: Array<{\n processName?: AsyncProcesses\n withStates: Array<SubmitStateWithValidating>\n hasValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, hasValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n hasValue === validatedValue.current\n\n const result =\n (typeof hasValue === 'undefined'\n ? false\n : !hasMatchingValue) ||\n ((processName\n ? processName === asyncProcessRef.current\n : true) &&\n withStates?.some((state) => {\n return state === fieldStateRef.current\n }))\n\n return result\n }\n )\n\n return result\n }\n\n if (validateProcesses() === true) {\n asyncBufferRef.current[name] = { resolve, validateProcesses }\n } else {\n resolve()\n setFieldState('pending')\n }\n })\n },\n [setFieldState]\n )\n\n const handleChangeEventResult = useCallback(async () => {\n const result: EventStateObjectWithSuccess =\n changeEventResultRef.current\n\n if (typeof result?.error !== 'undefined') {\n persistErrorState('gracefully', result.error)\n revealError()\n }\n if (typeof result?.warning !== 'undefined') {\n warningRef.current = result.warning\n }\n if (typeof result?.info !== 'undefined') {\n infoRef.current = result.info\n }\n\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onSubmitContext',\n waitFor: [{ withStates: ['validating'] }],\n })\n }\n\n defineAsyncProcess(undefined)\n\n if (result?.success === 'saved') {\n setFieldState('success')\n } else if (result?.error) {\n setFieldState('error')\n } else if (asyncBehaviorIsEnabled) {\n setFieldState('complete')\n }\n }, [\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n persistErrorState,\n setFieldState,\n revealError,\n yieldAsyncProcess,\n ])\n\n const setEventResult = useCallback(\n (result: EventReturnWithStateObjectAndSuccess) => {\n if (result instanceof Error) {\n result = { error: result }\n }\n changeEventResultRef.current = {\n ...changeEventResultRef.current,\n ...result,\n } as EventStateObjectWithSuccess\n\n handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled && !executeOnChangeRegardlessOfError) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n ],\n })\n }\n\n if (hasPath) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError() || executeOnChangeRegardlessOfError) {\n setEventResult(\n (await handlePathChangeDataContext?.(\n identifier\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n setEventResult(null)\n }\n } else {\n setEventResult(\n handlePathChangeDataContext?.(\n identifier\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n executeOnChangeRegardlessOfError,\n hasPath,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n hasError,\n setEventResult,\n handlePathChangeDataContext,\n identifier,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n if (newValue === valueRef.current) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n valueRef.current = newValue\n\n if (hasPath) {\n handlePathChangeUnvalidatedDataContext(identifier, newValue)\n }\n\n addToPool(\n 'validator',\n validateValue,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n hasPath,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handlePathChangeUnvalidatedDataContext,\n identifier,\n handleError,\n ]\n )\n\n const setChanged = (state: boolean) => {\n changedRef.current = state\n }\n\n const handleChange = useCallback(\n async (\n argFromInput: Value | unknown,\n additionalArgs: AdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n const fromInput = transformers.current.fromInput(argFromInput)\n\n if (fromInput === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n const transformedValue = transformers.current.transformOut(\n transformers.current.transformValue(fromInput, currentValue)\n )\n\n // Must be set before validation\n changedRef.current = true\n\n // Run in sync, before any async operations to avoid lag in UX\n if (itemPath) {\n handleChangeIterateContext?.(\n makeIteratePath(itemPath, ''),\n transformedValue\n )\n }\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(transformedValue)\n } else {\n updateValue(transformedValue)\n }\n\n const getArgs = (): [Value] | [Value, AdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n valueRef.current,\n 'onChange'\n )\n\n const transformedAdditionalArgs =\n transformers.current.transformAdditionalArgs(\n additionalArgs,\n value\n )\n\n return typeof transformedAdditionalArgs !== 'undefined'\n ? [value, transformedAdditionalArgs]\n : [value]\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getArgs()\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n hasValue: args[0],\n },\n ],\n })\n\n defineAsyncProcess('onChangeLocal')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n // If the value has changed during the async process, we don't want to call the onChange anymore\n setEventResult(await onChange?.apply(this, args))\n } else {\n setEventResult(null)\n }\n },\n true\n )\n } else {\n setEventResult(onChange?.apply(this, getArgs()))\n }\n\n await runPool()\n },\n [\n itemPath,\n asyncBehaviorIsEnabled,\n onChange,\n runPool,\n handleChangeIterateContext,\n makeIteratePath,\n hideError,\n updateValue,\n addToPool,\n yieldAsyncProcess,\n defineAsyncProcess,\n hasError,\n setEventResult,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n // Put props into the surrounding data context as early as possible\n setPropsDataContext?.(identifier, props)\n\n useEffect(() => {\n // Mount procedure.\n handleMountField(identifier)\n\n // Unmount procedure.\n return () => {\n handleUnMountField(identifier)\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldError?.(identifier, undefined)\n localErrorRef.current = undefined\n }\n }, [\n handleMountField,\n handleUnMountField,\n identifier,\n setFieldError,\n setFieldErrorDataContext,\n ])\n\n useEffect(() => {\n validateValue()\n }, [validateValue])\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema, validateValue])\n\n const isEmptyData = useCallback(() => {\n return (\n dataContext.internalDataRef?.current ===\n (dataContext.props?.emptyData ?? clearedData)\n )\n }, [dataContext.internalDataRef, dataContext.props?.emptyData])\n\n useEffect(() => {\n if (isEmptyData()) {\n hideError()\n }\n }, [externalValue, hideError, isEmptyData])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n validateValue()\n forceUpdate()\n }\n }, [externalValue, validateValue])\n\n useEffect(() => {\n // Check against the local error state,\n // so we prioritize the local error state over the context error state\n if (!hasLocalErrorRef.current) {\n const error = prepareError(dataContextError)\n if (error) {\n persistErrorState('weak', error)\n if (validateInitially) {\n handleError()\n }\n } else {\n clearErrorState()\n }\n }\n }, [\n clearErrorState,\n dataContextError,\n handleError,\n persistErrorState,\n prepareError,\n validateInitially,\n ])\n\n useEffect(() => {\n if (itemPath && valueProp !== undefined) {\n warn(\n `Using value=\"${valueProp}\" prop inside Iterate is not supported yet`\n )\n }\n if (itemPath && defaultValue !== undefined) {\n warn(\n `Using defaultValue=\"${defaultValue}\" prop inside Iterate is not supported yet`\n )\n }\n }, [defaultValue, itemPath, valueProp])\n\n useEffect(() => {\n if (hasPath) {\n let value = valueProp\n\n // First, look for existing data in the context\n const hasValue =\n pointer.has(dataContext.data, identifier) || identifier === '/'\n const existingValue =\n identifier === '/'\n ? dataContext.data\n : hasValue\n ? pointer.get(dataContext.data, identifier)\n : undefined\n\n // If no data where found in the dataContext, look for shared data\n if (\n dataContext.id &&\n !hasValue &&\n typeof existingValue === 'undefined' &&\n typeof value === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, identifier)\n if (hasValue) {\n const sharedValue = pointer.get(sharedState.data, identifier)\n if (sharedValue) {\n value = sharedValue\n }\n }\n }\n\n if (\n typeof defaultValueRef.current !== 'undefined' &&\n typeof value === 'undefined'\n ) {\n value = defaultValueRef.current\n defaultValueRef.current = undefined\n }\n\n if (\n !hasValue ||\n (value !== existingValue &&\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current !== existingValue)\n ) {\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(identifier, value)\n validateDataDataContext?.()\n }\n }\n }, [\n dataContext.data,\n dataContext.id,\n defaultValue,\n hasPath,\n identifier,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n ])\n\n useEffect(() => {\n if (showAllErrors || showBoundaryErrors) {\n // In case of async validation, we don't want to show existing errors before the validation has been completed\n if (fieldStateRef.current !== 'validating') {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n revealError()\n }\n } else if (showBoundaryErrors === false) {\n hideError()\n }\n }, [hideError, revealError, showAllErrors, showBoundaryErrors])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (onChangeValidatorRef.current || onBlurValidatorRef.current)\n ) {\n hideError()\n forceUpdate()\n }\n }, [dataContext.formState, hideError])\n\n const onSubmitHandler = useCallback(async () => {\n if (hasError()) {\n return // stop here\n }\n\n addToPool(\n 'validator',\n startOnChangeValidatorValidation,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onBlurValidator',\n startOnBlurValidatorProcess,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [\n addToPool,\n startOnBlurValidatorProcess,\n hasError,\n runPool,\n startOnChangeValidatorValidation,\n ])\n\n // Validate/call validator functions during submit of the form\n useEffect(() => {\n setFieldEventListener?.(identifier, 'onSubmit', onSubmitHandler)\n }, [identifier, onSubmitHandler, setFieldEventListener])\n\n // Set the error in the field block context if this field is inside a field block\n useEffect(() => {\n if (inFieldBlock) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n\n return () => {\n // Unmount procedure\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n }\n }\n }, [\n errorProp,\n identifier,\n inFieldBlock,\n info,\n mountedFieldsRefFieldBlock,\n setFieldStateFieldBlock,\n warning,\n ])\n\n const infoRef = useRef<React.ReactNode>(info)\n const warningRef = useRef<React.ReactNode>(warning)\n useUpdateEffect(() => {\n infoRef.current = info\n warningRef.current = warning\n forceUpdate()\n }, [info, warning])\n\n // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>(\n (acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n },\n { ...props.htmlAttributes }\n )\n }, [props])\n\n if (error) {\n htmlAttributes['aria-invalid'] = error ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = 'true'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n\n // Check if there are any state IDs to be added to the aria-describedby attribute\n const stateIds = fieldBlockContext.fieldStateIdsRef?.current\n\n if (stateIds) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n [\n error && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (error || errorProp) && `${id}-form-status--error`,\n warning && `${id}-form-status--warning`,\n info && `${id}-form-status--info`,\n ].filter(Boolean)\n\n if (ids.length) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n ids\n )\n }\n }\n\n const fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? error : undefined,\n required,\n labelSuffix: props.labelSuffix,\n\n /** HTML Attributes */\n disabled:\n onBlurValidator &&\n asyncProcessRef.current === 'onBlurValidator' &&\n fieldStateRef.current === 'validating'\n ? true\n : disabled,\n\n /** Internal */\n fieldState: resolveValidatingState(fieldStateRef.current),\n }\n\n const sharedData = useSharedState('field-block-props-' + id)\n sharedData.set(fieldBlockProps)\n\n useEffect(() => {\n isInternalRerenderRef.current = undefined\n })\n\n return {\n ...props,\n ...fieldBlockProps,\n\n /** HTML Attributes */\n name: props.name || props.path?.replace('/', '') || id,\n autoComplete:\n props.autoComplete ??\n (dataContext.autoComplete === true ? 'on' : undefined),\n\n /** Documented APIs */\n id,\n value: transformers.current.transformIn(\n transformers.current.toInput(valueRef.current)\n ),\n hasError: hasVisibleError,\n isChanged: Boolean(changedRef.current),\n props,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setChanged,\n forceUpdate,\n\n /** Internal */\n dataContext,\n }\n}\n\nexport interface ReturnAdditional<Value> {\n /** Documented APIs */\n value: Value\n isChanged: boolean\n htmlAttributes: AriaAttributes | DataAttributes\n setHasFocus: (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value | unknown,\n additionalArgs?: AdditionalEventArgs\n ) => void\n setChanged: (state: boolean) => void\n updateValue: (value: Value) => void\n forceUpdate: () => void\n hasError?: boolean\n\n /** Internal */\n dataContext: ContextState\n fieldState: SubmitState\n}\n\nfunction resolveValidatingState(state: SubmitStateWithValidating) {\n return state === 'validating' ? 'pending' : state\n}\n"],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export default function usePath(props?: Props): {
|
|
|
8
8
|
identifier: string;
|
|
9
9
|
path: string;
|
|
10
10
|
itemPath: string;
|
|
11
|
+
joinPath: (paths: Array<Path>) => string;
|
|
11
12
|
makePath: (path: Path) => string;
|
|
12
13
|
makeIteratePath: (itemPath?: Path, iteratePath?: Path) => string;
|
|
13
14
|
makeSectionPath: (path: Path) => string;
|
|
@@ -24,6 +24,9 @@ export default function usePath(props = {}) {
|
|
|
24
24
|
if (itemPathProp && !itemPathProp.startsWith('/')) {
|
|
25
25
|
throw new Error(`itemPath="${itemPathProp}" must start with a slash`);
|
|
26
26
|
}
|
|
27
|
+
const joinPath = useCallback(paths => {
|
|
28
|
+
return paths.reduce((acc, cur) => cur ? `${acc}/${cur}` : acc, '/').replace(/\/{2,}/g, '/').replace(/\/+$/, '');
|
|
29
|
+
}, []);
|
|
27
30
|
const makeSectionPath = useCallback(path => {
|
|
28
31
|
return `${sectionPath && sectionPath !== '/' ? sectionPath : ''}${path}`.replace(/\/$/, '');
|
|
29
32
|
}, [sectionPath]);
|
|
@@ -32,7 +35,7 @@ export default function usePath(props = {}) {
|
|
|
32
35
|
if (sectionPath) {
|
|
33
36
|
root = makeSectionPath('');
|
|
34
37
|
}
|
|
35
|
-
return `${root}${iteratePath}/${iterateElementIndex}${itemPath && itemPath !== '/' ? itemPath : ''}`;
|
|
38
|
+
return `${root}${iteratePath || ''}/${iterateElementIndex}${itemPath && itemPath !== '/' ? itemPath : ''}`;
|
|
36
39
|
}, [iteratePathProp, sectionPath, iterateElementIndex, itemPathProp, makeSectionPath]);
|
|
37
40
|
const itemPath = useMemo(() => {
|
|
38
41
|
if (itemPathProp) {
|
|
@@ -56,6 +59,7 @@ export default function usePath(props = {}) {
|
|
|
56
59
|
identifier,
|
|
57
60
|
path,
|
|
58
61
|
itemPath,
|
|
62
|
+
joinPath,
|
|
59
63
|
makePath,
|
|
60
64
|
makeIteratePath,
|
|
61
65
|
makeSectionPath
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePath.js","names":["useCallback","useContext","useMemo","useId","SectionContext","IterateElementContext","usePath","props","_useContext","_useContext2","path","pathProp","itemPath","itemPathProp","id","sectionPath","iteratePathProp","index","iterateElementIndex","startsWith","Error","
|
|
1
|
+
{"version":3,"file":"usePath.js","names":["useCallback","useContext","useMemo","useId","SectionContext","IterateElementContext","usePath","props","_useContext","_useContext2","path","pathProp","itemPath","itemPathProp","id","sectionPath","iteratePathProp","index","iterateElementIndex","startsWith","Error","joinPath","paths","reduce","acc","cur","replace","makeSectionPath","makeIteratePath","iteratePath","root","makePath","identifier"],"sources":["../../../../../src/extensions/forms/hooks/usePath.ts"],"sourcesContent":["import { useCallback, useContext, useMemo } from 'react'\nimport { Path } from '../types'\nimport useId from '../../../shared/helpers/useId'\nimport SectionContext from '../Form/Section/SectionContext'\nimport IterateElementContext from '../Iterate/IterateItemContext'\n\nexport type Props = {\n id?: string\n path?: Path\n itemPath?: Path\n}\n\nexport default function usePath(props: Props = {}) {\n const { path: pathProp, itemPath: itemPathProp } = props\n const id = useId(props.id)\n const { path: sectionPath } = useContext(SectionContext) ?? {}\n const { path: iteratePathProp, index: iterateElementIndex } =\n useContext(IterateElementContext) ?? {}\n\n if (pathProp && !pathProp.startsWith('/')) {\n throw new Error(`path=\"${pathProp}\" must start with a slash`)\n }\n if (itemPathProp && !itemPathProp.startsWith('/')) {\n throw new Error(`itemPath=\"${itemPathProp}\" must start with a slash`)\n }\n\n const joinPath = useCallback((paths: Array<Path>) => {\n return paths\n .reduce((acc, cur) => (cur ? `${acc}/${cur}` : acc), '/')\n .replace(/\\/{2,}/g, '/')\n .replace(/\\/+$/, '')\n }, [])\n\n const makeSectionPath = useCallback(\n (path: Path) => {\n return `${\n sectionPath && sectionPath !== '/' ? sectionPath : ''\n }${path}`.replace(/\\/$/, '')\n },\n [sectionPath]\n )\n\n const makeIteratePath = useCallback(\n (\n itemPath: Path = itemPathProp,\n iteratePath: Path = iteratePathProp\n ) => {\n let root = ''\n\n if (sectionPath) {\n root = makeSectionPath('')\n }\n\n return `${root}${iteratePath || ''}/${iterateElementIndex}${\n itemPath && itemPath !== '/' ? itemPath : ''\n }`\n },\n [\n iteratePathProp,\n sectionPath,\n iterateElementIndex,\n itemPathProp,\n makeSectionPath,\n ]\n )\n\n const itemPath = useMemo(() => {\n if (itemPathProp) {\n return makeIteratePath()\n }\n }, [itemPathProp, makeIteratePath])\n\n const makePath = useCallback(\n (path: Path) => {\n if (itemPathProp) {\n return itemPath\n }\n\n if (sectionPath) {\n return makeSectionPath(path)\n }\n\n // Identifier is used is registries of multiple fields, like in the DataContext keeping track of errors\n return path\n },\n [itemPathProp, sectionPath, itemPath, makeSectionPath]\n )\n\n const path = useMemo(() => {\n return makePath(pathProp)\n }, [makePath, pathProp])\n\n const identifier = path ?? id\n return {\n identifier,\n path,\n itemPath,\n joinPath,\n makePath,\n makeIteratePath,\n makeSectionPath,\n }\n}\n"],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
column-gap: var(--spacing-small);
|
|
35
35
|
row-gap: var(--row-gap);
|
|
36
36
|
}
|
|
37
|
-
@media screen and (min-width:
|
|
37
|
+
@media screen and (min-width: 40.0625em) {
|
|
38
38
|
.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label {
|
|
39
39
|
line-height: 2.5rem;
|
|
40
40
|
margin-bottom: 0;
|
|
@@ -284,7 +284,7 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
284
284
|
.dnb-forms-field-block--width-stretch {
|
|
285
285
|
flex-grow: 1;
|
|
286
286
|
}
|
|
287
|
-
@media screen and (min-width:
|
|
287
|
+
@media screen and (min-width: 25.0625em) {
|
|
288
288
|
.dnb-forms-field-block--width-small {
|
|
289
289
|
width: var(--forms-field-width--small);
|
|
290
290
|
}
|
|
@@ -323,7 +323,7 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
323
323
|
.dnb-forms-field-block__contents--width-stretch {
|
|
324
324
|
width: 100%;
|
|
325
325
|
}
|
|
326
|
-
@media screen and (min-width:
|
|
326
|
+
@media screen and (min-width: 25.0625em) {
|
|
327
327
|
.dnb-forms-field-block__contents--width-small {
|
|
328
328
|
width: var(--forms-field-width--small);
|
|
329
329
|
}
|
|
@@ -345,7 +345,7 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
345
345
|
-moz-column-gap: var(--spacing-small);
|
|
346
346
|
column-gap: var(--spacing-small);
|
|
347
347
|
}
|
|
348
|
-
@media screen and (min-width:
|
|
348
|
+
@media screen and (min-width: 25.0625em) {
|
|
349
349
|
.dnb-forms-field-block__contents__composition--horizontal {
|
|
350
350
|
align-items: flex-end;
|
|
351
351
|
}
|
|
@@ -378,7 +378,7 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
378
378
|
.dnb-card + .dnb-button--primary:not([class*=space__top]) .dnb-button[class*=space__top] {
|
|
379
379
|
margin-top: 0;
|
|
380
380
|
}
|
|
381
|
-
@media screen and (min-width:
|
|
381
|
+
@media screen and (min-width: 40.0625em) {
|
|
382
382
|
.dnb-card + .dnb-forms-button-row:not([class*=space__left]),
|
|
383
383
|
.dnb-card + .dnb-button--primary:not([class*=space__left]) {
|
|
384
384
|
margin-left: var(--spacing-medium);
|
|
@@ -399,7 +399,7 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
399
399
|
.dnb-spacing .dnb-forms-main-heading.dnb-h--large:not([class*=space__]) {
|
|
400
400
|
margin: 0;
|
|
401
401
|
}
|
|
402
|
-
@media screen and (min-width:
|
|
402
|
+
@media screen and (min-width: 40.0625em) {
|
|
403
403
|
.dnb-forms-main-heading:has(+ .dnb-flex-stack > .dnb-card, + .dnb-card):not([class*=space__left]) {
|
|
404
404
|
margin-left: var(--spacing-medium);
|
|
405
405
|
}
|
|
@@ -447,6 +447,9 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
447
447
|
.dnb-forms-section-block__inner .dnb-dl .dnb-dd {
|
|
448
448
|
margin-bottom: 0;
|
|
449
449
|
}
|
|
450
|
+
.dnb-forms-section-block--no-animation .dnb-forms-section-block__inner {
|
|
451
|
+
transform: translateY(0);
|
|
452
|
+
}
|
|
450
453
|
.dnb-forms-section-block.dnb-height-animation--is-visible .dnb-forms-section-block__inner {
|
|
451
454
|
transform: translateY(-0.5rem);
|
|
452
455
|
}
|
|
@@ -606,7 +609,7 @@ html[data-visual-test] .dnb-forms-submit-indicator__content b {
|
|
|
606
609
|
.dnb-forms-value-block--max-width-stretch {
|
|
607
610
|
width: 100%;
|
|
608
611
|
}
|
|
609
|
-
@media screen and (min-width:
|
|
612
|
+
@media screen and (min-width: 25.0625em) {
|
|
610
613
|
.dnb-forms-value-block--max-width-small {
|
|
611
614
|
max-width: var(--forms-field-width--small);
|
|
612
615
|
}
|
|
@@ -644,7 +647,7 @@ html[data-visual-test] .dnb-forms-submit-indicator__content b {
|
|
|
644
647
|
.dnb-forms-value-block__composition--horizontal .dnb-forms-value-block__content--gap-large {
|
|
645
648
|
--column-gap: var(--spacing-large);
|
|
646
649
|
}
|
|
647
|
-
@media screen and (min-width:
|
|
650
|
+
@media screen and (min-width: 25.0625em) {
|
|
648
651
|
.dnb-forms-value-block__composition--horizontal .dnb-forms-value-block__content {
|
|
649
652
|
align-items: flex-start;
|
|
650
653
|
}
|
|
@@ -713,7 +716,7 @@ html[data-visual-test] .dnb-forms-submit-indicator__content b {
|
|
|
713
716
|
transform: translate3d(0, 0, 0);
|
|
714
717
|
}
|
|
715
718
|
}
|
|
716
|
-
@media screen and (min-width:
|
|
719
|
+
@media screen and (min-width: 40.0625em) {
|
|
717
720
|
.dnb-forms-wizard-layout + .dnb-form-status:not([class*=space__left]), .dnb-forms-wizard-layout + .dnb-form-status + .dnb-form-status:not([class*=space__left]) {
|
|
718
721
|
margin-left: var(--spacing-medium);
|
|
719
722
|
}
|
|
@@ -732,7 +735,7 @@ html[data-visual-test] .dnb-forms-submit-indicator__content b {
|
|
|
732
735
|
margin-right: 0;
|
|
733
736
|
}
|
|
734
737
|
|
|
735
|
-
@media screen and (min-width:
|
|
738
|
+
@media screen and (min-width: 60.0625em) {
|
|
736
739
|
.dnb-forms-form:has(.dnb-forms-wizard-layout--sidebar) .dnb-forms-status {
|
|
737
740
|
margin-left: 23rem;
|
|
738
741
|
}
|