@dnb/eufemia 10.32.0 → 10.34.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 +51 -0
- package/cjs/components/autocomplete/style/dnb-autocomplete.css +0 -1
- package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/cjs/components/autocomplete/style/dnb-autocomplete.scss +0 -2
- package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +41 -0
- package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.min.css +1 -0
- package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +65 -0
- package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.css +3 -0
- package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.min.css +1 -1
- package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.scss +6 -0
- package/cjs/components/breadcrumb/Breadcrumb.d.ts +4 -4
- package/cjs/components/breadcrumb/Breadcrumb.js +5 -3
- package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/cjs/components/card/Card.js +1 -0
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/card/style/dnb-card.css +3 -0
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/dnb-card.scss +4 -0
- package/cjs/components/checkbox/Checkbox.js +1 -1
- package/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/cjs/components/checkbox/style/dnb-checkbox.css +9 -3
- package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/cjs/components/checkbox/style/dnb-checkbox.scss +11 -3
- package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +5 -3
- package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +2 -2
- package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +5 -3
- package/cjs/components/flex/Container.js +4 -4
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/form-row/FormRow.js +1 -1
- package/cjs/components/form-row/FormRow.js.map +1 -1
- package/cjs/components/form-set/FormSet.js +1 -1
- package/cjs/components/form-set/FormSet.js.map +1 -1
- package/cjs/components/form-status/FormStatus.d.ts +0 -1
- package/cjs/components/form-status/FormStatus.js +85 -67
- package/cjs/components/form-status/FormStatus.js.map +1 -1
- package/cjs/components/form-status/style/themes/dnb-form-status-theme-sbanken.css +2 -2
- package/cjs/components/form-status/style/themes/dnb-form-status-theme-sbanken.min.css +1 -1
- package/cjs/components/form-status/style/themes/dnb-form-status-theme-sbanken.scss +2 -2
- package/cjs/components/global-status/GlobalStatus.js +2 -4
- package/cjs/components/global-status/GlobalStatus.js.map +1 -1
- package/cjs/components/global-status/style/themes/dnb-global-status-theme-sbanken.css +1 -1
- package/cjs/components/global-status/style/themes/dnb-global-status-theme-sbanken.min.css +1 -1
- package/cjs/components/global-status/style/themes/dnb-global-status-theme-sbanken.scss +1 -1
- package/cjs/components/grid/Container.d.ts +2 -2
- package/cjs/components/grid/Container.js.map +1 -1
- package/cjs/components/grid/ContainerDocs.d.ts +2 -0
- package/cjs/components/grid/ContainerDocs.js +30 -0
- package/cjs/components/grid/ContainerDocs.js.map +1 -0
- package/cjs/components/grid/style/dnb-grid.css +6 -0
- package/cjs/components/grid/style/dnb-grid.min.css +1 -1
- package/cjs/components/grid/style/grid-container.scss +6 -0
- package/cjs/components/number-format/NumberFormat.js +1 -1
- package/cjs/components/number-format/NumberFormat.js.map +1 -1
- package/cjs/components/radio/style/dnb-radio.css +19 -7
- package/cjs/components/radio/style/dnb-radio.min.css +1 -1
- package/cjs/components/radio/style/dnb-radio.scss +21 -7
- package/cjs/components/radio/style/themes/dnb-radio-theme-sbanken.css +6 -0
- package/cjs/components/radio/style/themes/dnb-radio-theme-sbanken.min.css +1 -1
- package/cjs/components/radio/style/themes/dnb-radio-theme-sbanken.scss +6 -0
- package/cjs/components/section/style/themes/dnb-section-theme-sbanken.css +1 -1
- package/cjs/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -1
- package/cjs/components/section/style/themes/dnb-section-theme-sbanken.scss +1 -1
- package/cjs/components/slider/SliderDocs.d.ts +3 -0
- package/cjs/components/slider/SliderDocs.js +158 -0
- package/cjs/components/slider/SliderDocs.js.map +1 -0
- package/cjs/components/step-indicator/StepIndicator.js +1 -10
- package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +1 -1
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -1
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +1 -1
- package/cjs/components/table/TableContainer.d.ts +1 -0
- package/cjs/components/table/TableContainer.js +1 -0
- package/cjs/components/table/TableContainer.js.map +1 -1
- package/cjs/components/table/style/dnb-table.css +3 -0
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/table/style/table-container.scss +5 -0
- package/cjs/extensions/forms/DataContext/Context.d.ts +8 -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/Provider/Provider.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +30 -3
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +7 -2
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/Composition/Composition.d.ts +2 -2
- package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -1
- package/cjs/extensions/forms/Field/Composition/CompositionDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Composition/CompositionDocs.js +23 -0
- package/cjs/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Number/Number.d.ts +1 -0
- package/cjs/extensions/forms/Field/Number/Number.js +18 -15
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js +6 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +5 -6
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Slider/Slider.d.ts +34 -0
- package/cjs/extensions/forms/Field/Slider/Slider.js +115 -0
- package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -0
- package/cjs/extensions/forms/Field/Slider/SliderDocs.d.ts +3 -0
- package/cjs/extensions/forms/Field/Slider/SliderDocs.js +34 -0
- package/cjs/extensions/forms/Field/Slider/SliderDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Slider/index.d.ts +2 -0
- package/cjs/extensions/forms/Field/Slider/index.js +27 -0
- package/cjs/extensions/forms/Field/Slider/index.js.map +1 -0
- package/cjs/extensions/forms/Field/String/String.js +2 -2
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -7
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/index.d.ts +1 -0
- package/cjs/extensions/forms/Field/index.js +7 -0
- package/cjs/extensions/forms/Field/index.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +4 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +15 -3
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +5 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -2
- package/cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts +19 -5
- package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +47 -24
- package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
- package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +1 -0
- package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -1
- package/cjs/extensions/forms/Form/MainHeading/MainHeading.js +1 -0
- package/cjs/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/Section.d.ts +36 -0
- package/cjs/extensions/forms/Form/Section/Section.js +79 -0
- package/cjs/extensions/forms/Form/Section/Section.js.map +1 -0
- package/cjs/extensions/forms/Form/Section/SectionContext.d.ts +11 -0
- package/cjs/extensions/forms/Form/Section/SectionContext.js +12 -0
- package/cjs/extensions/forms/Form/Section/SectionContext.js.map +1 -0
- package/cjs/extensions/forms/Form/Section/SectionDocs.d.ts +3 -0
- package/cjs/extensions/forms/Form/Section/SectionDocs.js +53 -0
- package/cjs/extensions/forms/Form/Section/SectionDocs.js.map +1 -0
- package/cjs/extensions/forms/Form/Section/index.d.ts +2 -0
- package/cjs/extensions/forms/Form/Section/index.js +27 -0
- package/cjs/extensions/forms/Form/Section/index.js.map +1 -0
- package/cjs/extensions/forms/Form/SubHeading/SubHeading.js +1 -0
- package/cjs/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/Visibility.js +15 -9
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +6 -2
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/index.d.ts +1 -1
- package/cjs/extensions/forms/Form/index.js +7 -5
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +2 -2
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js +37 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +15 -0
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/types.d.ts +9 -3
- package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
- package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -2
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +1 -1
- package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
- package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -0
- package/cjs/extensions/forms/Tools/GenerateSchema.d.ts +19 -0
- package/cjs/extensions/forms/Tools/GenerateSchema.js +143 -0
- package/cjs/extensions/forms/Tools/GenerateSchema.js.map +1 -0
- package/cjs/extensions/forms/Tools/ListAllProps.d.ts +15 -0
- package/cjs/extensions/forms/Tools/ListAllProps.js +73 -0
- package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -0
- package/{es/extensions/forms/Form → cjs/extensions/forms}/Tools/index.d.ts +1 -0
- package/cjs/extensions/forms/{Form/Tools → Tools}/index.js +7 -0
- package/cjs/extensions/forms/Tools/index.js.map +1 -0
- package/cjs/extensions/forms/Value/Boolean/Boolean.d.ts +5 -1
- package/cjs/extensions/forms/Value/Boolean/Boolean.js +5 -3
- package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Value/Boolean/BooleanDocs.d.ts +2 -0
- package/cjs/extensions/forms/Value/Boolean/BooleanDocs.js +20 -0
- package/cjs/extensions/forms/Value/Boolean/BooleanDocs.js.map +1 -0
- package/cjs/extensions/forms/Value/Number/Number.d.ts +5 -1
- package/cjs/extensions/forms/Value/Number/Number.js +18 -5
- package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Value/Number/NumberDocs.d.ts +2 -0
- package/cjs/extensions/forms/Value/Number/NumberDocs.js +20 -0
- package/cjs/extensions/forms/Value/Number/NumberDocs.js.map +1 -0
- package/cjs/extensions/forms/Value/ValueDocs.js +6 -1
- package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +15 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -1
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +90 -42
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +2 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/EditButton/EditButton.js +7 -2
- package/cjs/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.d.ts +4 -0
- package/cjs/extensions/forms/Wizard/Step/Step.js +7 -4
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js +17 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -1
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +13 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +164 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.d.ts +2 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +25 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +77 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +84 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/index.d.ts +2 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/index.js +27 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/index.js.map +1 -0
- package/cjs/extensions/forms/blocks/index.d.ts +1 -0
- package/cjs/extensions/forms/blocks/index.js +14 -0
- package/cjs/extensions/forms/blocks/index.js.map +1 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +2 -2
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueDocs.js +10 -10
- package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/index.d.ts +2 -5
- package/cjs/extensions/forms/hooks/index.js +12 -4
- package/cjs/extensions/forms/hooks/index.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.d.ts +9 -0
- package/cjs/extensions/forms/hooks/useDataValue.js +39 -0
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -0
- package/cjs/extensions/forms/hooks/useExternalValue.d.ts +12 -0
- package/cjs/extensions/forms/hooks/useExternalValue.js +47 -0
- package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -0
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +1 -10
- package/cjs/extensions/forms/hooks/useFieldProps.js +67 -83
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/usePath.d.ts +14 -0
- package/cjs/extensions/forms/hooks/usePath.js +72 -0
- package/cjs/extensions/forms/hooks/usePath.js.map +1 -0
- package/cjs/extensions/forms/hooks/useValueProps.js +19 -5
- package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/cjs/extensions/forms/index.d.ts +2 -0
- package/cjs/extensions/forms/index.js +4 -1
- package/cjs/extensions/forms/index.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +5 -3
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +16 -7
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +3 -2
- package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +12 -1
- package/cjs/shared/Context.d.ts +4 -4
- package/cjs/shared/Context.js +8 -8
- package/cjs/shared/Context.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/component-helper.d.ts +3 -1
- package/cjs/shared/component-helper.js +39 -10
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +45 -14
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +5 -3
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +5 -3
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +53 -17
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +5 -3
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +5 -3
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +118 -76
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -8
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +53 -17
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +5 -3
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +5 -3
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/autocomplete/style/dnb-autocomplete.css +0 -1
- package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/components/autocomplete/style/dnb-autocomplete.scss +0 -2
- package/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +41 -0
- package/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.min.css +1 -0
- package/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +65 -0
- package/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.css +3 -0
- package/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.min.css +1 -1
- package/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.scss +6 -0
- package/components/breadcrumb/Breadcrumb.d.ts +4 -4
- package/components/breadcrumb/Breadcrumb.js +6 -4
- package/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/components/card/Card.js +1 -0
- package/components/card/Card.js.map +1 -1
- package/components/card/style/dnb-card.css +3 -0
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/dnb-card.scss +4 -0
- package/components/checkbox/Checkbox.js +1 -1
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/checkbox/style/dnb-checkbox.css +9 -3
- package/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/components/checkbox/style/dnb-checkbox.scss +11 -3
- package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +5 -3
- package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +2 -2
- package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +5 -3
- package/components/flex/Container.js +4 -4
- package/components/flex/Container.js.map +1 -1
- package/components/form-row/FormRow.js +2 -2
- package/components/form-row/FormRow.js.map +1 -1
- package/components/form-set/FormSet.js +2 -2
- package/components/form-set/FormSet.js.map +1 -1
- package/components/form-status/FormStatus.d.ts +0 -1
- package/components/form-status/FormStatus.js +84 -66
- package/components/form-status/FormStatus.js.map +1 -1
- package/components/form-status/style/themes/dnb-form-status-theme-sbanken.css +2 -2
- package/components/form-status/style/themes/dnb-form-status-theme-sbanken.min.css +1 -1
- package/components/form-status/style/themes/dnb-form-status-theme-sbanken.scss +2 -2
- package/components/global-status/GlobalStatus.js +2 -4
- package/components/global-status/GlobalStatus.js.map +1 -1
- package/components/global-status/style/themes/dnb-global-status-theme-sbanken.css +1 -1
- package/components/global-status/style/themes/dnb-global-status-theme-sbanken.min.css +1 -1
- package/components/global-status/style/themes/dnb-global-status-theme-sbanken.scss +1 -1
- package/components/grid/Container.d.ts +2 -2
- package/components/grid/Container.js.map +1 -1
- package/components/grid/ContainerDocs.d.ts +2 -0
- package/components/grid/ContainerDocs.js +23 -0
- package/components/grid/ContainerDocs.js.map +1 -0
- package/components/grid/style/dnb-grid.css +6 -0
- package/components/grid/style/dnb-grid.min.css +1 -1
- package/components/grid/style/grid-container.scss +6 -0
- package/components/number-format/NumberFormat.js +2 -2
- package/components/number-format/NumberFormat.js.map +1 -1
- package/components/radio/style/dnb-radio.css +19 -7
- package/components/radio/style/dnb-radio.min.css +1 -1
- package/components/radio/style/dnb-radio.scss +21 -7
- package/components/radio/style/themes/dnb-radio-theme-sbanken.css +6 -0
- package/components/radio/style/themes/dnb-radio-theme-sbanken.min.css +1 -1
- package/components/radio/style/themes/dnb-radio-theme-sbanken.scss +6 -0
- package/components/section/style/themes/dnb-section-theme-sbanken.css +1 -1
- package/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -1
- package/components/section/style/themes/dnb-section-theme-sbanken.scss +1 -1
- package/components/slider/SliderDocs.d.ts +3 -0
- package/components/slider/SliderDocs.js +150 -0
- package/components/slider/SliderDocs.js.map +1 -0
- package/components/step-indicator/StepIndicator.js +1 -9
- package/components/step-indicator/StepIndicator.js.map +1 -1
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +1 -1
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -1
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +1 -1
- package/components/table/TableContainer.d.ts +1 -0
- package/components/table/TableContainer.js +1 -0
- package/components/table/TableContainer.js.map +1 -1
- package/components/table/style/dnb-table.css +3 -0
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/table/style/table-container.scss +5 -0
- package/es/components/autocomplete/style/dnb-autocomplete.css +0 -1
- package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/es/components/autocomplete/style/dnb-autocomplete.scss +0 -2
- package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +41 -0
- package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.min.css +1 -0
- package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +65 -0
- package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.css +3 -0
- package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.min.css +1 -1
- package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.scss +6 -0
- package/es/components/breadcrumb/Breadcrumb.d.ts +4 -4
- package/es/components/breadcrumb/Breadcrumb.js +6 -4
- package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/es/components/card/Card.js +1 -0
- package/es/components/card/Card.js.map +1 -1
- package/es/components/card/style/dnb-card.css +3 -0
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/dnb-card.scss +4 -0
- package/es/components/checkbox/Checkbox.js +1 -1
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/checkbox/style/dnb-checkbox.css +9 -3
- package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/es/components/checkbox/style/dnb-checkbox.scss +11 -3
- package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +5 -3
- package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +2 -2
- package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +5 -3
- package/es/components/flex/Container.js +4 -4
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/form-row/FormRow.js +2 -2
- package/es/components/form-row/FormRow.js.map +1 -1
- package/es/components/form-set/FormSet.js +2 -2
- package/es/components/form-set/FormSet.js.map +1 -1
- package/es/components/form-status/FormStatus.d.ts +0 -1
- package/es/components/form-status/FormStatus.js +84 -66
- package/es/components/form-status/FormStatus.js.map +1 -1
- package/es/components/form-status/style/themes/dnb-form-status-theme-sbanken.css +2 -2
- package/es/components/form-status/style/themes/dnb-form-status-theme-sbanken.min.css +1 -1
- package/es/components/form-status/style/themes/dnb-form-status-theme-sbanken.scss +2 -2
- package/es/components/global-status/GlobalStatus.js +2 -4
- package/es/components/global-status/GlobalStatus.js.map +1 -1
- package/es/components/global-status/style/themes/dnb-global-status-theme-sbanken.css +1 -1
- package/es/components/global-status/style/themes/dnb-global-status-theme-sbanken.min.css +1 -1
- package/es/components/global-status/style/themes/dnb-global-status-theme-sbanken.scss +1 -1
- package/es/components/grid/Container.d.ts +2 -2
- package/es/components/grid/Container.js.map +1 -1
- package/es/components/grid/ContainerDocs.d.ts +2 -0
- package/es/components/grid/ContainerDocs.js +23 -0
- package/es/components/grid/ContainerDocs.js.map +1 -0
- package/es/components/grid/style/dnb-grid.css +6 -0
- package/es/components/grid/style/dnb-grid.min.css +1 -1
- package/es/components/grid/style/grid-container.scss +6 -0
- package/es/components/number-format/NumberFormat.js +2 -2
- package/es/components/number-format/NumberFormat.js.map +1 -1
- package/es/components/radio/style/dnb-radio.css +19 -7
- package/es/components/radio/style/dnb-radio.min.css +1 -1
- package/es/components/radio/style/dnb-radio.scss +21 -7
- package/es/components/radio/style/themes/dnb-radio-theme-sbanken.css +6 -0
- package/es/components/radio/style/themes/dnb-radio-theme-sbanken.min.css +1 -1
- package/es/components/radio/style/themes/dnb-radio-theme-sbanken.scss +6 -0
- package/es/components/section/style/themes/dnb-section-theme-sbanken.css +1 -1
- package/es/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -1
- package/es/components/section/style/themes/dnb-section-theme-sbanken.scss +1 -1
- package/es/components/slider/SliderDocs.d.ts +3 -0
- package/es/components/slider/SliderDocs.js +150 -0
- package/es/components/slider/SliderDocs.js.map +1 -0
- package/es/components/step-indicator/StepIndicator.js +1 -9
- package/es/components/step-indicator/StepIndicator.js.map +1 -1
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +1 -1
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -1
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +1 -1
- package/es/components/table/TableContainer.d.ts +1 -0
- package/es/components/table/TableContainer.js +1 -0
- package/es/components/table/TableContainer.js.map +1 -1
- package/es/components/table/style/dnb-table.css +3 -0
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/table/style/table-container.scss +5 -0
- package/es/extensions/forms/DataContext/Context.d.ts +8 -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/Provider/Provider.d.ts +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +33 -6
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +7 -2
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/Composition/Composition.d.ts +2 -2
- package/es/extensions/forms/Field/Composition/Composition.js.map +1 -1
- package/es/extensions/forms/Field/Composition/CompositionDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Composition/CompositionDocs.js +14 -0
- package/es/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -0
- package/es/extensions/forms/Field/Number/Number.d.ts +1 -0
- package/es/extensions/forms/Field/Number/Number.js +18 -15
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js +6 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.js +5 -6
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Slider/Slider.d.ts +34 -0
- package/es/extensions/forms/Field/Slider/Slider.js +103 -0
- package/es/extensions/forms/Field/Slider/Slider.js.map +1 -0
- package/es/extensions/forms/Field/Slider/SliderDocs.d.ts +3 -0
- package/es/extensions/forms/Field/Slider/SliderDocs.js +26 -0
- package/es/extensions/forms/Field/Slider/SliderDocs.js.map +1 -0
- package/es/extensions/forms/Field/Slider/index.d.ts +2 -0
- package/es/extensions/forms/Field/Slider/index.js +3 -0
- package/es/extensions/forms/Field/Slider/index.js.map +1 -0
- package/es/extensions/forms/Field/String/String.js +2 -2
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +7 -7
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/index.d.ts +1 -0
- package/es/extensions/forms/Field/index.js +1 -0
- package/es/extensions/forms/Field/index.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +4 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +15 -3
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +5 -0
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -2
- package/es/extensions/forms/Form/FieldProps/FieldProps.d.ts +19 -5
- package/es/extensions/forms/Form/FieldProps/FieldProps.js +46 -25
- package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
- package/es/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +1 -0
- package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -1
- package/es/extensions/forms/Form/MainHeading/MainHeading.js +1 -0
- package/es/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
- package/es/extensions/forms/Form/Section/Section.d.ts +36 -0
- package/es/extensions/forms/Form/Section/Section.js +63 -0
- package/es/extensions/forms/Form/Section/Section.js.map +1 -0
- package/es/extensions/forms/Form/Section/SectionContext.d.ts +11 -0
- package/es/extensions/forms/Form/Section/SectionContext.js +4 -0
- package/es/extensions/forms/Form/Section/SectionContext.js.map +1 -0
- package/es/extensions/forms/Form/Section/SectionDocs.d.ts +3 -0
- package/es/extensions/forms/Form/Section/SectionDocs.js +45 -0
- package/es/extensions/forms/Form/Section/SectionDocs.js.map +1 -0
- package/es/extensions/forms/Form/Section/index.d.ts +2 -0
- package/es/extensions/forms/Form/Section/index.js +3 -0
- package/es/extensions/forms/Form/Section/index.js.map +1 -0
- package/es/extensions/forms/Form/SubHeading/SubHeading.js +1 -0
- package/es/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/Visibility.js +16 -10
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +6 -2
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/index.d.ts +1 -1
- package/es/extensions/forms/Form/index.js +1 -1
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +2 -2
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js +37 -1
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js +15 -0
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/types.d.ts +9 -3
- package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
- package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -2
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +1 -1
- package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
- package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -0
- package/es/extensions/forms/Tools/GenerateSchema.d.ts +19 -0
- package/es/extensions/forms/Tools/GenerateSchema.js +130 -0
- package/es/extensions/forms/Tools/GenerateSchema.js.map +1 -0
- package/es/extensions/forms/Tools/ListAllProps.d.ts +15 -0
- package/es/extensions/forms/Tools/ListAllProps.js +65 -0
- package/es/extensions/forms/Tools/ListAllProps.js.map +1 -0
- package/{extensions/forms/Form → es/extensions/forms}/Tools/index.d.ts +1 -0
- package/es/extensions/forms/Tools/index.js +3 -0
- package/es/extensions/forms/Tools/index.js.map +1 -0
- package/es/extensions/forms/Value/Boolean/Boolean.d.ts +5 -1
- package/es/extensions/forms/Value/Boolean/Boolean.js +5 -3
- package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Value/Boolean/BooleanDocs.d.ts +2 -0
- package/es/extensions/forms/Value/Boolean/BooleanDocs.js +13 -0
- package/es/extensions/forms/Value/Boolean/BooleanDocs.js.map +1 -0
- package/es/extensions/forms/Value/Number/Number.d.ts +5 -1
- package/es/extensions/forms/Value/Number/Number.js +18 -5
- package/es/extensions/forms/Value/Number/Number.js.map +1 -1
- package/es/extensions/forms/Value/Number/NumberDocs.d.ts +2 -0
- package/es/extensions/forms/Value/Number/NumberDocs.js +13 -0
- package/es/extensions/forms/Value/Number/NumberDocs.js.map +1 -0
- package/es/extensions/forms/Value/ValueDocs.js +6 -1
- package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +16 -2
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -1
- package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +83 -36
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +2 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/EditButton/EditButton.js +7 -2
- package/es/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.d.ts +4 -0
- package/es/extensions/forms/Wizard/Step/Step.js +7 -4
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useStep.js +17 -1
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -1
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +13 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +151 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.d.ts +2 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +18 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +77 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +77 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/index.d.ts +2 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/index.js +3 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/index.js.map +1 -0
- package/es/extensions/forms/blocks/index.d.ts +1 -0
- package/es/extensions/forms/blocks/index.js +1 -0
- package/es/extensions/forms/blocks/index.js.map +1 -0
- package/es/extensions/forms/constants/locales/en-GB.js +2 -2
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueDocs.js +10 -10
- package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/es/extensions/forms/hooks/index.d.ts +2 -5
- package/es/extensions/forms/hooks/index.js +2 -1
- package/es/extensions/forms/hooks/index.js.map +1 -1
- package/es/extensions/forms/hooks/useDataValue.d.ts +9 -0
- package/es/extensions/forms/hooks/useDataValue.js +32 -0
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -0
- package/es/extensions/forms/hooks/useExternalValue.d.ts +12 -0
- package/es/extensions/forms/hooks/useExternalValue.js +41 -0
- package/es/extensions/forms/hooks/useExternalValue.js.map +1 -0
- package/es/extensions/forms/hooks/useFieldProps.d.ts +1 -10
- package/es/extensions/forms/hooks/useFieldProps.js +67 -82
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/usePath.d.ts +14 -0
- package/es/extensions/forms/hooks/usePath.js +64 -0
- package/es/extensions/forms/hooks/usePath.js.map +1 -0
- package/es/extensions/forms/hooks/useValueProps.js +19 -6
- package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/es/extensions/forms/index.d.ts +2 -0
- package/es/extensions/forms/index.js +1 -0
- package/es/extensions/forms/index.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +5 -3
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +16 -7
- package/es/extensions/forms/types.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.js +3 -2
- package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +12 -1
- package/es/shared/Context.d.ts +4 -4
- package/es/shared/Context.js +9 -9
- package/es/shared/Context.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/component-helper.d.ts +3 -1
- package/es/shared/component-helper.js +25 -2
- package/es/shared/component-helper.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +45 -14
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +5 -3
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +5 -3
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +53 -17
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +5 -3
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +5 -3
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +118 -76
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -8
- package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +53 -17
- package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/es/style/themes/theme-ui/ui-theme-extensions.css +5 -3
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +5 -3
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +5 -5
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +8 -5
- package/extensions/forms/DataContext/Context.js +0 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +33 -6
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +7 -2
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/Composition/Composition.d.ts +2 -2
- package/extensions/forms/Field/Composition/Composition.js.map +1 -1
- package/extensions/forms/Field/Composition/CompositionDocs.d.ts +2 -0
- package/extensions/forms/Field/Composition/CompositionDocs.js +14 -0
- package/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -0
- package/extensions/forms/Field/Number/Number.d.ts +1 -0
- package/extensions/forms/Field/Number/Number.js +18 -15
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js +6 -1
- package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.js +5 -6
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Slider/Slider.d.ts +34 -0
- package/extensions/forms/Field/Slider/Slider.js +104 -0
- package/extensions/forms/Field/Slider/Slider.js.map +1 -0
- package/extensions/forms/Field/Slider/SliderDocs.d.ts +3 -0
- package/extensions/forms/Field/Slider/SliderDocs.js +26 -0
- package/extensions/forms/Field/Slider/SliderDocs.js.map +1 -0
- package/extensions/forms/Field/Slider/index.d.ts +2 -0
- package/extensions/forms/Field/Slider/index.js +3 -0
- package/extensions/forms/Field/Slider/index.js.map +1 -0
- package/extensions/forms/Field/String/String.js +2 -2
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +7 -7
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/index.d.ts +1 -0
- package/extensions/forms/Field/index.js +1 -0
- package/extensions/forms/Field/index.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +4 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +15 -3
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockDocs.js +5 -0
- package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -2
- package/extensions/forms/Form/FieldProps/FieldProps.d.ts +19 -5
- package/extensions/forms/Form/FieldProps/FieldProps.js +46 -25
- package/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
- package/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +1 -0
- package/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -1
- package/extensions/forms/Form/MainHeading/MainHeading.js +1 -0
- package/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
- package/extensions/forms/Form/Section/Section.d.ts +36 -0
- package/extensions/forms/Form/Section/Section.js +68 -0
- package/extensions/forms/Form/Section/Section.js.map +1 -0
- package/extensions/forms/Form/Section/SectionContext.d.ts +11 -0
- package/extensions/forms/Form/Section/SectionContext.js +4 -0
- package/extensions/forms/Form/Section/SectionContext.js.map +1 -0
- package/extensions/forms/Form/Section/SectionDocs.d.ts +3 -0
- package/extensions/forms/Form/Section/SectionDocs.js +45 -0
- package/extensions/forms/Form/Section/SectionDocs.js.map +1 -0
- package/extensions/forms/Form/Section/index.d.ts +2 -0
- package/extensions/forms/Form/Section/index.js +3 -0
- package/extensions/forms/Form/Section/index.js.map +1 -0
- package/extensions/forms/Form/SubHeading/SubHeading.js +1 -0
- package/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
- package/extensions/forms/Form/Visibility/Visibility.js +16 -10
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js +6 -2
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/index.d.ts +1 -1
- package/extensions/forms/Form/index.js +1 -2
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +2 -2
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +37 -1
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayDocs.js +15 -0
- package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/extensions/forms/Iterate/Array/types.d.ts +9 -3
- package/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
- package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -2
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Iterate/style/dnb-form-iterate.css +1 -1
- package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
- package/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -0
- package/extensions/forms/Tools/GenerateSchema.d.ts +19 -0
- package/extensions/forms/Tools/GenerateSchema.js +133 -0
- package/extensions/forms/Tools/GenerateSchema.js.map +1 -0
- package/extensions/forms/Tools/ListAllProps.d.ts +15 -0
- package/extensions/forms/Tools/ListAllProps.js +67 -0
- package/extensions/forms/Tools/ListAllProps.js.map +1 -0
- package/{cjs/extensions/forms/Form → extensions/forms}/Tools/index.d.ts +1 -0
- package/extensions/forms/Tools/index.js +3 -0
- package/extensions/forms/Tools/index.js.map +1 -0
- package/extensions/forms/Value/Boolean/Boolean.d.ts +5 -1
- package/extensions/forms/Value/Boolean/Boolean.js +5 -3
- package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Value/Boolean/BooleanDocs.d.ts +2 -0
- package/extensions/forms/Value/Boolean/BooleanDocs.js +13 -0
- package/extensions/forms/Value/Boolean/BooleanDocs.js.map +1 -0
- package/extensions/forms/Value/Number/Number.d.ts +5 -1
- package/extensions/forms/Value/Number/Number.js +18 -5
- package/extensions/forms/Value/Number/Number.js.map +1 -1
- package/extensions/forms/Value/Number/NumberDocs.d.ts +2 -0
- package/extensions/forms/Value/Number/NumberDocs.js +13 -0
- package/extensions/forms/Value/Number/NumberDocs.js.map +1 -0
- package/extensions/forms/Value/ValueDocs.js +6 -1
- package/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +16 -2
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/Wizard/Buttons/Buttons.js +2 -1
- package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +91 -43
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +2 -1
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/EditButton/EditButton.js +7 -2
- package/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.d.ts +4 -0
- package/extensions/forms/Wizard/Step/Step.js +7 -4
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useStep.js +17 -1
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -1
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +13 -0
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +156 -0
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -0
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.d.ts +2 -0
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +18 -0
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -0
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +77 -0
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +77 -0
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -0
- package/extensions/forms/blocks/ChildrenWithAge/index.d.ts +2 -0
- package/extensions/forms/blocks/ChildrenWithAge/index.js +3 -0
- package/extensions/forms/blocks/ChildrenWithAge/index.js.map +1 -0
- package/extensions/forms/blocks/index.d.ts +1 -0
- package/extensions/forms/blocks/index.js +1 -0
- package/extensions/forms/blocks/index.js.map +1 -0
- package/extensions/forms/constants/locales/en-GB.js +2 -2
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/hooks/DataValueDocs.js +10 -10
- package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/extensions/forms/hooks/index.d.ts +2 -5
- package/extensions/forms/hooks/index.js +2 -1
- package/extensions/forms/hooks/index.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.d.ts +9 -0
- package/extensions/forms/hooks/useDataValue.js +33 -0
- package/extensions/forms/hooks/useDataValue.js.map +1 -0
- package/extensions/forms/hooks/useExternalValue.d.ts +12 -0
- package/extensions/forms/hooks/useExternalValue.js +41 -0
- package/extensions/forms/hooks/useExternalValue.js.map +1 -0
- package/extensions/forms/hooks/useFieldProps.d.ts +1 -10
- package/extensions/forms/hooks/useFieldProps.js +67 -82
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/usePath.d.ts +14 -0
- package/extensions/forms/hooks/usePath.js +66 -0
- package/extensions/forms/hooks/usePath.js.map +1 -0
- package/extensions/forms/hooks/useValueProps.js +19 -6
- package/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/extensions/forms/index.d.ts +2 -0
- package/extensions/forms/index.js +2 -0
- package/extensions/forms/index.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +5 -3
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +16 -7
- package/extensions/forms/types.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.js +3 -2
- package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +12 -1
- package/package.json +2 -2
- package/shared/Context.d.ts +4 -4
- package/shared/Context.js +9 -9
- package/shared/Context.js.map +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/component-helper.d.ts +3 -1
- package/shared/component-helper.js +35 -8
- package/shared/component-helper.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +45 -14
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +5 -3
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +5 -3
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +53 -17
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +5 -3
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +5 -3
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +118 -76
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -8
- package/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -3
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -3
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +53 -17
- package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/style/themes/theme-ui/ui-theme-extensions.css +5 -3
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +5 -3
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +5 -5
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Form/Tools/GenerateSchema.d.ts +0 -8
- package/cjs/extensions/forms/Form/Tools/GenerateSchema.js +0 -100
- package/cjs/extensions/forms/Form/Tools/GenerateSchema.js.map +0 -1
- package/cjs/extensions/forms/Form/Tools/index.js.map +0 -1
- package/es/extensions/forms/Form/Tools/GenerateSchema.d.ts +0 -8
- package/es/extensions/forms/Form/Tools/GenerateSchema.js +0 -89
- package/es/extensions/forms/Form/Tools/GenerateSchema.js.map +0 -1
- package/es/extensions/forms/Form/Tools/index.js +0 -1
- package/es/extensions/forms/Form/Tools/index.js.map +0 -1
- package/extensions/forms/Form/Tools/GenerateSchema.d.ts +0 -8
- package/extensions/forms/Form/Tools/GenerateSchema.js +0 -90
- package/extensions/forms/Form/Tools/GenerateSchema.js.map +0 -1
- package/extensions/forms/Form/Tools/index.js +0 -1
- package/extensions/forms/Form/Tools/index.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Ajv } from '../utils/ajv';
|
|
3
|
-
import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths, SubmitState, Path, EventStateObject, EventReturnWithStateObject, Identifier, FieldProps, FormError } from '../types';
|
|
3
|
+
import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths, SubmitState, Path, EventStateObject, EventReturnWithStateObject, Identifier, FieldProps, FormError, ValueProps } from '../types';
|
|
4
4
|
import { Props as ProviderProps } from './Provider';
|
|
5
5
|
type HandleSubmitProps = {
|
|
6
6
|
formElement?: HTMLFormElement;
|
|
@@ -45,19 +45,17 @@ export interface ContextState {
|
|
|
45
45
|
validateData: () => void;
|
|
46
46
|
handleSubmit: (props?: HandleSubmitProps) => any;
|
|
47
47
|
scrollToTop: () => void;
|
|
48
|
-
showAllErrors: boolean;
|
|
49
48
|
setShowAllErrors: (showAllErrors: boolean) => void;
|
|
50
49
|
hasErrors: () => boolean;
|
|
51
50
|
hasFieldState: (state: SubmitState) => boolean;
|
|
52
51
|
hasFieldError: (path: Path) => boolean;
|
|
53
52
|
setFieldState: (path: Path, fieldState: SubmitState) => void;
|
|
54
53
|
setFieldError: (path: Path, error: Error | FormError) => void;
|
|
55
|
-
fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>;
|
|
56
54
|
handleMountField: (path: Path) => void;
|
|
57
55
|
handleUnMountField: (path: Path) => void;
|
|
58
|
-
formState: SubmitState;
|
|
59
56
|
setFormState?: (state: SubmitState) => void;
|
|
60
57
|
setSubmitState?: (state: EventStateObject) => void;
|
|
58
|
+
addOnChangeHandler?: (callback: (data: unknown) => void) => void;
|
|
61
59
|
handleSubmitCall: ({ onSubmit, enableAsyncBehaviour, skipFieldValidation, skipErrorCheck, }: {
|
|
62
60
|
onSubmit: () => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
|
|
63
61
|
enableAsyncBehaviour: boolean;
|
|
@@ -65,7 +63,12 @@ export interface ContextState {
|
|
|
65
63
|
skipErrorCheck?: boolean;
|
|
66
64
|
}) => void;
|
|
67
65
|
setFieldEventListener: (path: EventListenerCall['path'], type: EventListenerCall['type'], callback: EventListenerCall['callback']) => void;
|
|
68
|
-
|
|
66
|
+
setFieldProps?: (path: Path, props: any) => void;
|
|
67
|
+
setValueProps?: (path: Path, props: any) => void;
|
|
68
|
+
fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>;
|
|
69
|
+
valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>;
|
|
70
|
+
showAllErrors: boolean;
|
|
71
|
+
formState: SubmitState;
|
|
69
72
|
ajvInstance: Ajv;
|
|
70
73
|
contextErrorMessages: CustomErrorMessagesWithPaths;
|
|
71
74
|
schema: AllJSONSchemaVersions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["_react","_interopRequireDefault","require","_ajv","obj","__esModule","default","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","handleMountField","handleUnMountField","hasErrors","hasFieldState","hasFieldError","setFieldState","setFieldError","
|
|
1
|
+
{"version":3,"file":"Context.js","names":["_react","_interopRequireDefault","require","_ajv","obj","__esModule","default","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","handleMountField","handleUnMountField","hasErrors","hasFieldState","hasFieldError","setFieldState","setFieldError","ajvInstance","makeAjvInstance","contextErrorMessages","isInsideFormElement","props","exports","Context","React","createContext","_default"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n ValueProps,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type TransformData = FilterDataHandlerCallback<unknown>\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n mutateDataHandler?: (data: any, mutate: TransformData) => any\n filterDataHandler?: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n setFormState?: (state: SubmitState) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: (data: unknown) => void) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setFieldProps?: (path: Path, props: any) => void\n setValueProps?: (path: Path, props: any) => void\n fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>\n valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>\n showAllErrors: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n isInsideFormElement?: boolean\n prerenderFieldProps?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAAmD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AA+H5C,MAAMG,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEX,SAAS;EACpBY,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,WAAW,EAAE,IAAAC,oBAAe,EAAC,CAAC;EAC9BC,oBAAoB,EAAE1B,SAAS;EAC/B2B,mBAAmB,EAAE,KAAK;EAC1BC,KAAK,EAAE;AACT,CAAC;AAAAC,OAAA,CAAAhC,mBAAA,GAAAA,mBAAA;AAED,MAAMiC,OAAO,GAAGC,cAAK,CAACC,aAAa,CAAenC,mBAAmB,CAAC;AAAA,IAAAoC,QAAA,GAEvDH,OAAO;AAAAD,OAAA,CAAAjC,OAAA,GAAAqC,QAAA"}
|
|
@@ -63,7 +63,11 @@ function Provider(props) {
|
|
|
63
63
|
} = props,
|
|
64
64
|
rest = _objectWithoutProperties(props, _excluded);
|
|
65
65
|
if (data !== undefined && sessionStorageId !== undefined) {
|
|
66
|
-
|
|
66
|
+
throw new Error('Use "defaultData" instead of "data" when using sessionStorageId');
|
|
67
|
+
}
|
|
68
|
+
const nestedContext = (0, _react.useContext)(_Context.default);
|
|
69
|
+
if (nestedContext !== null && nestedContext !== void 0 && nestedContext.hasContext) {
|
|
70
|
+
throw new Error('DataContext (Form.Handler) can not be nested');
|
|
67
71
|
}
|
|
68
72
|
const translation = (0, _useTranslation.default)().Form;
|
|
69
73
|
const ajvRef = (0, _react.useRef)((0, _ajv.makeAjvInstance)(ajvInstance));
|
|
@@ -210,9 +214,13 @@ function Provider(props) {
|
|
|
210
214
|
return data;
|
|
211
215
|
}, [filterData, filterSubmitData, mutateDataHandler]);
|
|
212
216
|
const fieldPropsRef = (0, _react.useRef)({});
|
|
213
|
-
const
|
|
217
|
+
const valuePropsRef = (0, _react.useRef)({});
|
|
218
|
+
const setFieldProps = (0, _react.useCallback)((path, props) => {
|
|
214
219
|
fieldPropsRef.current[path] = props;
|
|
215
220
|
}, []);
|
|
221
|
+
const setValueProps = (0, _react.useCallback)((path, props) => {
|
|
222
|
+
valuePropsRef.current[path] = props;
|
|
223
|
+
}, []);
|
|
216
224
|
const hasFieldWithAsyncValidator = (0, _react.useCallback)(() => {
|
|
217
225
|
for (const path in fieldPropsRef.current) {
|
|
218
226
|
if (mountedFieldPathsRef.current.includes(path)) {
|
|
@@ -341,11 +349,27 @@ function Provider(props) {
|
|
|
341
349
|
validateData();
|
|
342
350
|
const data = internalDataRef.current;
|
|
343
351
|
const transformedData = transformOut ? mutateDataHandler(data, transformOut) : data;
|
|
352
|
+
for (const cb of changeHandlerStackRef.current) {
|
|
353
|
+
if ((0, _isAsync.isAsync)(onChange)) {
|
|
354
|
+
await cb(transformedData);
|
|
355
|
+
} else {
|
|
356
|
+
cb(transformedData);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
344
359
|
if ((0, _isAsync.isAsync)(onChange)) {
|
|
345
360
|
return await onChange(transformedData);
|
|
346
361
|
}
|
|
347
362
|
return onChange === null || onChange === void 0 ? void 0 : onChange(transformedData);
|
|
348
363
|
}, [handlePathChangeUnvalidated, mutateDataHandler, onChange, transformOut, validateData]);
|
|
364
|
+
const changeHandlerStackRef = (0, _react.useRef)([]);
|
|
365
|
+
const addOnChangeHandler = (0, _react.useCallback)(callback => {
|
|
366
|
+
const exists = changeHandlerStackRef.current.some(cb => {
|
|
367
|
+
return callback === cb;
|
|
368
|
+
});
|
|
369
|
+
if (!exists) {
|
|
370
|
+
changeHandlerStackRef.current.push(callback);
|
|
371
|
+
}
|
|
372
|
+
}, []);
|
|
349
373
|
const handleMountField = (0, _react.useCallback)(path => {
|
|
350
374
|
mountedFieldPathsRef.current = addListPath(mountedFieldPathsRef.current, path);
|
|
351
375
|
}, []);
|
|
@@ -548,7 +572,8 @@ function Provider(props) {
|
|
|
548
572
|
setFieldEventListener,
|
|
549
573
|
setFieldState,
|
|
550
574
|
setFieldError,
|
|
551
|
-
|
|
575
|
+
setFieldProps,
|
|
576
|
+
setValueProps,
|
|
552
577
|
hasErrors,
|
|
553
578
|
hasFieldError,
|
|
554
579
|
hasFieldState,
|
|
@@ -556,6 +581,7 @@ function Provider(props) {
|
|
|
556
581
|
updateDataValue,
|
|
557
582
|
setData,
|
|
558
583
|
filterDataHandler,
|
|
584
|
+
addOnChangeHandler,
|
|
559
585
|
scrollToTop,
|
|
560
586
|
schema,
|
|
561
587
|
disabled,
|
|
@@ -567,6 +593,7 @@ function Provider(props) {
|
|
|
567
593
|
errors: errorsRef.current,
|
|
568
594
|
showAllErrors: showAllErrorsRef.current,
|
|
569
595
|
fieldPropsRef,
|
|
596
|
+
valuePropsRef,
|
|
570
597
|
ajvInstance: ajvRef.current,
|
|
571
598
|
id,
|
|
572
599
|
data: internalDataRef.current,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_helpers","_FieldProps","_useMountEffect","_useUpdateEffect","_isAsync","_useSharedState","_useTranslation","_Context","_structuredClone","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useLayoutEffect","window","React","useEffect","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","useReducer","id","globalStatusId","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","filterData","locale","translations","required","errorMessages","contextErrorMessages","children","rest","console","error","translation","useTranslation","Form","ajvRef","useRef","makeAjvInstance","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","submitStateRef","setSubmitState","state","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","useMemo","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","ajvErrorsToFormErrors","errors","validateData","checkFieldStateFor","path","_errorsRef$current","Boolean","Error","hasFieldState","some","hasFieldError","p","hasErrors","setFieldError","setFieldState","fieldState","mutateDataHandler","remove","mutate","result","structuredClone","pointer","entries","fieldPropsRef","_ref","exists","_fieldErrorRef$curren","internal","_ref2","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","filterDataHandler","setProps","hasFieldWithAsyncValidator","includes","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","storeInSession","debounce","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","updateDataValue","_internalDataRef$curr","givenData","match","newData","e","setData","handlePathChangeUnvalidated","handlePathChange","transformedData","handleMountField","addListPath","handleUnMountField","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","callback","fieldEventListenersRef","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmit","formElement","filteredData","opts","resetForm","_formElement$reset","reset","removeItem","clearData","completeResult","setFieldEventListener","_ref3","t","_onSubmitContinueRef$","useMountEffect","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasContext","FormStatus","globalStatus","title","errorSummaryTitle","show","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n} from '../../types'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldProvider from '../../Form/FieldProps'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n TransformData,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport interface Props<Data extends JsonObject> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.\n */\n filterSubmitData?: FilterData\n /**\n * @deprecated Use `filterSubmitData` instead\n */\n filterData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: any\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n filterData,\n locale,\n translations,\n required,\n errorMessages: contextErrorMessages,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // - Locale\n const translation = useTranslation().Form\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\n }, [])\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\n })\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return mountedFieldPathsRef.current.some((p) => {\n return p === path && checkFieldStateFor(p, 'error')\n })\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, filter: FilterData | TransformData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof filter === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\n Object.entries(filter).forEach(([path, condition]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current?.[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n })\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData || filterSubmitData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [filterData, filterSubmitData, mutateDataHandler]\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldPathsRef.current.includes(path)) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: Props<Data>['filterSubmitData']\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n internalDataRef.current = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n cacheRef.current.shared = sharedData.data\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [data, id, initialData, sharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterData || filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterData,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterData || filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate()\n },\n [\n extendSharedData,\n filterData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\n }, [])\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n if (isAsync(onChange)) {\n return await onChange(transformedData)\n }\n\n return onChange?.(transformedData)\n },\n [\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n result = await onSubmit()\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n setSubmitState,\n hasErrors,\n hasFieldWithAsyncValidator,\n hasFieldState,\n setFormState,\n onSubmitRequest,\n setShowAllErrors,\n ]\n )\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n // - Mutate the data context\n const data = internalDataRef.current\n const filteredData = filterDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data\n )\n const opts = {\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData: () => {\n internalDataRef.current = {} as Data\n if (id) {\n setSharedData?.({} as Data)\n } else {\n forceUpdate()\n }\n },\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, opts)\n } else {\n result = onSubmit?.(filteredData, opts)\n }\n\n const completeResult = await onSubmitComplete?.(\n filteredData,\n result\n )\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n },\n [\n filterDataHandler,\n handleSubmitCall,\n id,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n setSharedData,\n transformOut,\n ]\n )\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(({ path: p, type: t }) => {\n return !(p === path && t === type)\n })\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n fieldPropsRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n props,\n ...rest,\n }}\n >\n <FieldProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nexport function addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nexport function removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_helpers","_FieldProps","_useMountEffect","_useUpdateEffect","_isAsync","_useSharedState","_useTranslation","_Context","_structuredClone","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useLayoutEffect","window","React","useEffect","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","useReducer","id","globalStatusId","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","filterData","locale","translations","required","errorMessages","contextErrorMessages","children","rest","Error","nestedContext","useContext","Context","hasContext","translation","useTranslation","Form","ajvRef","useRef","makeAjvInstance","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","submitStateRef","setSubmitState","state","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","useMemo","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","ajvErrorsToFormErrors","errors","validateData","checkFieldStateFor","path","_errorsRef$current","Boolean","hasFieldState","some","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","remove","mutate","result","structuredClone","pointer","entries","fieldPropsRef","_ref","exists","_fieldErrorRef$curren","internal","_ref2","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","filterDataHandler","valuePropsRef","setFieldProps","setValueProps","hasFieldWithAsyncValidator","includes","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","storeInSession","debounce","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","updateDataValue","_internalDataRef$curr","givenData","match","newData","e","setData","handlePathChangeUnvalidated","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","callback","handleMountField","addListPath","handleUnMountField","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","fieldEventListenersRef","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmit","formElement","filteredData","opts","resetForm","_formElement$reset","reset","removeItem","clearData","completeResult","setFieldEventListener","_ref3","t","_onSubmitContinueRef$","useMountEffect","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n} from '../../types'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Form/FieldProps'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n TransformData,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport interface Props<Data extends JsonObject> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.\n */\n filterSubmitData?: FilterData\n /**\n * @deprecated Use `filterSubmitData` instead\n */\n filterData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: any\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n filterData,\n locale,\n translations,\n required,\n errorMessages: contextErrorMessages,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const nestedContext = useContext(Context)\n if (nestedContext?.hasContext) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Locale\n const translation = useTranslation().Form\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\n }, [])\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\n })\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return mountedFieldPathsRef.current.some((p) => {\n return p === path && checkFieldStateFor(p, 'error')\n })\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, filter: FilterData | TransformData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof filter === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\n Object.entries(filter).forEach(([path, condition]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current?.[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n })\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData || filterSubmitData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [filterData, filterSubmitData, mutateDataHandler]\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldPathsRef.current.includes(path)) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: Props<Data>['filterSubmitData']\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n internalDataRef.current = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n cacheRef.current.shared = sharedData.data\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [data, id, initialData, sharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterData || filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterData,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterData || filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate()\n },\n [\n extendSharedData,\n filterData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\n }, [])\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData)\n } else {\n cb(transformedData)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData)\n }\n\n return onChange?.(transformedData)\n },\n [\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback(\n (callback: (data: unknown) => void) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n },\n []\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n result = await onSubmit()\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n setSubmitState,\n hasErrors,\n hasFieldWithAsyncValidator,\n hasFieldState,\n setFormState,\n onSubmitRequest,\n setShowAllErrors,\n ]\n )\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n // - Mutate the data context\n const data = internalDataRef.current\n const filteredData = filterDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data\n )\n const opts = {\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData: () => {\n internalDataRef.current = {} as Data\n if (id) {\n setSharedData?.({} as Data)\n } else {\n forceUpdate()\n }\n },\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, opts)\n } else {\n result = onSubmit?.(filteredData, opts)\n }\n\n const completeResult = await onSubmitComplete?.(\n filteredData,\n result\n )\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n },\n [\n filterDataHandler,\n handleSubmitCall,\n id,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n setSharedData,\n transformOut,\n ]\n )\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(({ path: p, type: t }) => {\n return !(p === path && t === type)\n })\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n addOnChangeHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n fieldPropsRef,\n valuePropsRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n props,\n ...rest,\n }}\n >\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nexport function addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nexport function removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n"],"mappings":"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"}
|
|
@@ -8,12 +8,17 @@ const ProviderProperties = {
|
|
|
8
8
|
defaultData: {
|
|
9
9
|
doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',
|
|
10
10
|
type: 'object',
|
|
11
|
-
status: '
|
|
11
|
+
status: 'optional'
|
|
12
12
|
},
|
|
13
13
|
data: {
|
|
14
14
|
doc: 'Dynamic source data used as both initial data, and updates internal data if changed after mount.',
|
|
15
15
|
type: 'object',
|
|
16
|
-
status: '
|
|
16
|
+
status: 'optional'
|
|
17
|
+
},
|
|
18
|
+
id: {
|
|
19
|
+
doc: 'Unique id for connecting Form.Handler and helper tools such as Form.useData.',
|
|
20
|
+
type: 'string',
|
|
21
|
+
status: 'optional'
|
|
17
22
|
},
|
|
18
23
|
schema: {
|
|
19
24
|
doc: 'JSON Schema for validation of the data set.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderDocs.js","names":["ProviderProperties","defaultData","doc","type","status","data","schema","errorMessages","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","globalStatusId","required","disabled","locale","children","exports","ProviderEvents","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/ProviderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ProviderProperties: PropertiesTableProps = {\n defaultData: {\n doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',\n type: 'object',\n status: '
|
|
1
|
+
{"version":3,"file":"ProviderDocs.js","names":["ProviderProperties","defaultData","doc","type","status","data","id","schema","errorMessages","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","globalStatusId","required","disabled","locale","children","exports","ProviderEvents","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/ProviderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ProviderProperties: PropertiesTableProps = {\n defaultData: {\n doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',\n type: 'object',\n status: 'optional',\n },\n data: {\n doc: 'Dynamic source data used as both initial data, and updates internal data if changed after mount.',\n type: 'object',\n status: 'optional',\n },\n id: {\n doc: 'Unique id for connecting Form.Handler and helper tools such as Form.useData.',\n type: 'string',\n status: 'optional',\n },\n schema: {\n doc: 'JSON Schema for validation of the data set.',\n type: 'object',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Object containing error messages by either type of JSON Pointer path and type.',\n type: 'object',\n status: 'optional',\n },\n minimumAsyncBehaviorTime: {\n doc: 'Minimum time to display the submit indicator. Default is 1s.',\n type: 'boolean',\n status: 'optional',\n },\n asyncSubmitTimeout: {\n doc: 'The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission. Default is 30s.',\n type: 'boolean',\n status: 'optional',\n },\n scrollTopOnSubmit: {\n doc: 'True for the UI to scroll to the top of the page when data is submitted.',\n type: 'boolean',\n status: 'optional',\n },\n sessionStorageId: {\n doc: 'Key for saving active data to session storage and loading it on mount.',\n type: 'string',\n status: 'optional',\n },\n ajvInstance: {\n doc: 'Provide your own custom Ajv instance. More info in the <a href=\"/uilib/extensions/forms/Form/schema-validation/#custom-ajv-instance-and-keywords\">Schema validation</a> section.',\n type: 'ajv',\n status: 'optional',\n },\n transformIn: {\n doc: \"Mutate the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n transformOut: {\n doc: \"Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n filterSubmitData: {\n doc: 'Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.',\n type: 'function',\n status: 'optional',\n },\n globalStatusId: {\n doc: 'If needed, you can define a custom [GlobalStatus](/uilib/components/global-status) id. Defaults to `main`.',\n type: 'string',\n status: 'optional',\n },\n required: {\n doc: 'Make all fields required.',\n type: 'boolean',\n status: 'optional',\n },\n disabled: {\n doc: 'Disable all fields.',\n type: 'boolean',\n status: 'optional',\n },\n locale: {\n doc: 'Locale (language) to use for all nested Eufemia components.',\n type: 'string',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const ProviderEvents: PropertiesTableProps = {\n onChange: {\n doc: \"Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided (like `onSubmit`).\",\n type: 'function',\n status: 'optional',\n },\n onPathChange: {\n doc: 'Will be called when a value of a field was changed by the user, with the `path` (JSON Pointer) and new `value` as arguments. Can be an async function. Will emit unvalidated by default and validated when `onChange` is an async function.',\n type: 'function',\n status: 'optional',\n },\n onSubmit: {\n doc: \"Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/Form/SubmitButton) component inside), with the data set as argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed.\",\n type: 'function',\n status: 'optional',\n },\n onSubmitRequest: {\n doc: 'Will be called when the user tries to submit, but errors stop the data from being submitted.',\n type: 'function',\n status: 'optional',\n },\n onSubmitComplete: {\n doc: 'Will be called after onSubmit has finished and had not errors. It supports the same return values as `onSubmit` and will be merged together.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FieldProps } from '../../types';
|
|
3
|
-
export type Props = FieldProps<Array<string | number
|
|
3
|
+
export type Props = FieldProps<Array<string | number> | undefined> & {
|
|
4
4
|
children?: React.ReactNode;
|
|
5
5
|
variant?: 'checkbox' | 'button';
|
|
6
6
|
optionsLayout?: 'horizontal' | 'vertical';
|