@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFieldProps.js","names":["_react","require","_jsonPointer","_interopRequireDefault","_utils","_ajv","_types","_DataContext","_FieldPropsContext","_componentHelper","_useId","_useUpdateEffect","_useMountEffect","_useUnmountEffect","_FieldBlockContext","_IterateElementContext","_FieldBoundaryContext","_useProcessManager","_useSharedState","_isAsync","_useTranslation","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","useFieldProps","localeProps","_dataContext$props","_dataContext$ajvInsta","_localErrorRef$curren","_ref3","_this","_props$path","_props$autoComplete","extend","useContext","FieldPropsContext","props","path","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","fromExternal","validateRequired","_ref","forceUpdate","useReducer","startProcess","useProcessManager","id","useId","dataContext","DataContext","fieldBlockContext","FieldBlockContext","iterateElementContext","IterateElementContext","fieldBoundaryContext","FieldBoundaryContext","translation","useTranslation","transformers","useRef","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setProps","setPropsDataContext","errors","dataContextErrors","contextErrorMessages","onChangeContext","readOnly","inFieldBlock","Boolean","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","inIterate","index","iterateElementIndex","iteratePath","handleChange","handleChangeIterateContext","substring","Error","identifier","useMemo","iterateValuePath","externalValue","useExternalValue","valueRef","changedRef","hasFocusRef","paths","split","requiredList","schemaPath","slice","join","schemaPart","pointer","has","get","collected","flatMap","v","includes","at","showErrorRef","errorMethodRef","localErrorRef","hasLocalErrorRef","dataContextError","contextErrorRef","validatorRef","useUpdateEffect","current","onBlurValidatorRef","schemaValidatorRef","ajvInstance","compile","asyncBehaviorIsEnabled","isAsync","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","useCallback","name","asyncBufferRef","resolve","validateProcesses","window","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","showError","hideError","prepareError","FormError","_error$messageValues","message","validationRule","_errorMessagesRef$cur","fieldMessage","errorMessagesRef","messageWithValues","entries","messageValues","reduce","_ref2","replace","errorChanged","hasVisibleError","hasErrorProp","hasError","_ref4","Field","errorRequired","stateId","persistErrorState","method","errorArg","type","content","showInitially","clearErrorState","callValidator","opts","tmpValue","result","unchangedValue","callOnBlurValidator","valueOverride","validateValue","isProcessActive","requiredError","isChanged","ajvErrorsToOneFormError","handleError","setHasFocus","hasFocus","yieldAsyncProcess","_ref5","waitFor","Promise","some","_ref6","processName","withStates","withValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","argFromInput","additionalArgs","currentValue","transformedValue","getArgs","args","handleFocus","handleBlur","useMountEffect","handleMountField","useUnmountEffect","handleUnMountField","_dataContext$ajvInsta2","useEffect","hasValue","data","existingValue","sharedState","createSharedState","sharedValue","showAllErrors","formState","onSubmitHandler","_dataContext$setField","setFieldEventListener","show","htmlAttributes","acc","cur","startsWith","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","combineDescribedBy","ids","fieldBlockProps","fieldState","sharedData","useSharedState","set","autoComplete","_ref7","iterateElementValue"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport { errorChanged } from '../utils'\nimport { ajvErrorsToOneFormError } from '../utils/ajv'\nimport {\n FormError,\n FieldProps,\n AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n Path,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport FieldPropsContext from '../Form/FieldProps/FieldPropsContext'\nimport { combineDescribedBy } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport useMountEffect from '../../../shared/helpers/useMountEffect'\nimport useUnmountEffect from '../../../shared/helpers/useUnmountEffect'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateElementContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport useProcessManager from './useProcessManager'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\n\ntype SubmitStateWithValidating = SubmitState | 'validating'\ntype AsyncProcesses =\n | 'validator'\n | 'onBlurValidator'\n | 'onChangeLocal'\n | 'onChangeContext'\ntype PersistErrorStateMethod =\n /**\n * Add or remove the error regardless\n */\n | 'weak'\n /**\n * Check if there is an existing error, and if so, keep it\n */\n | 'gracefully'\n /**\n * Remove the error, if any\n */\n | 'wipe'\ntype AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string | boolean | number\n}\n\nexport default function useFieldProps<\n Value = unknown,\n Props extends FieldProps<Value> = FieldProps<Value>,\n>(\n localeProps: Props\n): Props & FieldProps<Value> & ReturnAdditional<Value> {\n const { extend } = useContext(FieldPropsContext)\n const props = extend<Props>(localeProps)\n\n const {\n path,\n itemPath,\n emptyValue,\n required: requiredProp,\n disabled: disabledProp,\n info,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n transformIn = (value: Value) => value,\n transformOut = (value: Value) => value,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n fromExternal = (value: Value) => value,\n validateRequired = (value: Value, { emptyValue, required, error }) => {\n const res =\n required &&\n (value === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\n },\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateElementContext = useContext(IterateElementContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const translation = useTranslation()\n\n const transformers = useRef({\n transformIn,\n transformOut,\n toInput,\n fromInput,\n toEvent,\n fromExternal,\n transformValue,\n validateRequired,\n })\n\n const {\n handlePathChangeUnvalidated: handlePathChangeUnvalidatedDataContext,\n handlePathChange: handlePathChangeDataContext,\n updateDataValue: updateDataValueDataContext,\n validateData: validateDataDataContext,\n setFieldState: setFieldStateDataContext,\n setFieldError: setFieldErrorDataContext,\n setProps: setPropsDataContext,\n errors: dataContextErrors,\n contextErrorMessages,\n } = dataContext ?? {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = fieldBlockContext ?? {}\n const inIterate = Boolean(iterateElementContext)\n const {\n index: iterateElementIndex,\n path: iteratePath,\n handleChange: handleChangeIterateContext,\n } = iterateElementContext ?? {}\n const { setFieldError } = fieldBoundaryContext ?? {}\n\n if (path && path.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid path. Data value path JSON Pointers must be from root (starting with a /).'\n )\n }\n if (itemPath && itemPath.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid itemPath. Item pathJSON Pointers must be from root of iterate element (starting with a /).'\n )\n }\n if (itemPath && !inIterate) {\n throw new Error(\n 'itemPath cannot be used when not inside an iterate context. Wrap the component in an Iterate.Array.'\n )\n }\n\n const identifier = useMemo(() => {\n if (itemPath) {\n const iterateValuePath = `${iteratePath}/${iterateElementIndex}${\n itemPath && itemPath !== '/' ? itemPath : ''\n }`\n return iterateValuePath\n }\n\n // Identifier is used is registries of multiple fields, like in the DataContext keeping track of errors\n return path ?? id\n }, [itemPath, path, id, iteratePath, iterateElementIndex])\n\n const externalValue = useExternalValue<Value>({\n path,\n itemPath,\n props,\n transformers,\n emptyValue,\n })\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>(false)\n const hasFocusRef = useRef<boolean>(false)\n\n const required = useMemo(() => {\n if (requiredProp) {\n return requiredProp\n }\n\n const paths = identifier.split('/')\n if (paths.length > 0 && (schema || dataContext?.schema)) {\n const requiredList = [schema?.['required']]\n\n if (paths.length > 1) {\n const schema = dataContext.schema\n const schemaPath = paths.slice(0, -1).join('/properties/')\n const schemaPart = pointer.has(schema, schemaPath)\n ? pointer.get(schema, schemaPath)\n : schema\n\n requiredList.push(schemaPart?.required)\n }\n\n const collected = requiredList.flatMap((v) => v).filter(Boolean)\n if (collected.includes(paths.at(-1))) {\n return true\n }\n }\n }, [dataContext?.schema, identifier, requiredProp, schema])\n\n // Error handling\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const showErrorRef = useRef<boolean>(\n Boolean(validateInitially || errorProp)\n )\n // - Local errors are errors based on validation instructions received by\n const errorMethodRef = useRef<\n Partial<Record<PersistErrorStateMethod, Error | FormError>>\n >({})\n const localErrorRef = useRef<Error | FormError | undefined>()\n const hasLocalErrorRef = useRef(false)\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const dataContextError = useMemo(() => {\n return path ? dataContextErrors?.[identifier] : undefined\n }, [dataContextErrors, identifier, path])\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const validatorRef = useRef(validator)\n useUpdateEffect(() => {\n validatorRef.current = validator\n }, [validator])\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>(\n schema ? dataContext.ajvInstance?.compile(schema) : undefined\n )\n\n // - Async behavior\n const asyncBehaviorIsEnabled = useMemo(() => {\n return isAsync(onChange) || isAsync(onChangeContext)\n }, [onChangeContext, onChange])\n const validatedValue = useRef<Value>()\n const changeEventResultRef = useRef<EventStateObjectWithSuccess>(null)\n const asyncProcessRef = useRef<AsyncProcesses>(null)\n const defineAsyncProcess = useCallback((name: AsyncProcesses) => {\n asyncProcessRef.current = name\n }, [])\n\n // When both an async onChange and async validators are used,\n // we buffer the onChange calls to avoid race conditions.\n const asyncBufferRef = useRef<\n Record<AsyncProcesses, AsyncProcessesBuffer> | Record<string, unknown>\n >({})\n\n for (const key in asyncBufferRef.current) {\n const { resolve, validateProcesses } = (asyncBufferRef.current[key] ||\n {}) as AsyncProcessesBuffer\n if (validateProcesses?.() === false) {\n delete asyncBufferRef.current[key]\n if (typeof resolve === 'function') {\n window.requestAnimationFrame(resolve)\n }\n }\n }\n\n const eventPool = useRef({\n validator: null,\n onBlurValidator: null,\n onChangeContext: null,\n onChangeLocal: null,\n })\n\n const addToPool = useCallback(\n (name: keyof typeof eventPool.current, fn, runAsync) => {\n if (!eventPool.current[name]) {\n eventPool.current[name] = { fn, runAsync }\n }\n },\n []\n )\n\n const runPool = useCallback(async (cb = null) => {\n for (const key in eventPool.current) {\n if (!eventPool.current[key] || eventPool.current[key].pending) {\n continue\n }\n\n const { fn, runAsync } = eventPool.current[key] || {}\n if (fn) {\n eventPool.current[key].pending = true\n eventPool.current[key] = null\n\n if (runAsync) {\n await fn()\n } else {\n fn()\n }\n }\n }\n\n // use a callback in order to avoid any async/await,\n // because it will delay the execution of the following code\n cb?.()\n }, [])\n\n const fieldStateRef = useRef<SubmitStateWithValidating>()\n const setFieldState = useCallback(\n (state: SubmitStateWithValidating) => {\n fieldStateRef.current = state\n setFieldStateDataContext(identifier, resolveValidatingState(state))\n if (!validateInitially) {\n forceUpdate()\n }\n },\n [setFieldStateDataContext, identifier, validateInitially]\n )\n\n const showError = useCallback(() => {\n showErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n }, [showFieldErrorFieldBlock, identifier])\n\n const hideError = useCallback(() => {\n showErrorRef.current = false\n showFieldErrorFieldBlock?.(identifier, false)\n }, [showFieldErrorFieldBlock, identifier])\n\n /**\n * Prepare error from validation logic with correct error messages based on props\n */\n const prepareError = useCallback(\n (error: Error | FormError | undefined): FormError | undefined => {\n if (error instanceof FormError) {\n let message = error.message\n\n const { validationRule } = error\n if (typeof validationRule === 'string') {\n const fieldMessage = errorMessagesRef.current?.[validationRule]\n if (fieldMessage) {\n message = fieldMessage\n }\n }\n\n const messageWithValues = Object.entries(\n error.messageValues ?? {}\n ).reduce((message, [key, value]) => {\n return message.replace(`{${key}}`, value)\n }, message)\n\n error.message = messageWithValues\n\n return error\n }\n\n return error\n },\n []\n )\n\n contextErrorRef.current = useMemo(() => {\n if (!dataContextError) {\n return undefined\n }\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n return error\n }\n }, [dataContextError, prepareError])\n\n const error =\n showErrorRef.current ||\n // If the error is a type error, we want to show it even if the field as not been used\n localErrorRef.current?.['validationRule'] === 'type'\n ? errorProp ?? localErrorRef.current ?? contextErrorRef.current\n : undefined\n\n const hasVisibleError =\n Boolean(error) || (inFieldBlock && fieldBlockContext.hasErrorProp)\n const hasError = useCallback(() => {\n return Boolean(\n errorProp ?? localErrorRef.current ?? contextErrorRef.current\n )\n }, [errorProp])\n\n const errorMessagesRef = useRef(null)\n errorMessagesRef.current = useMemo(() => {\n return {\n required: translation.Field.errorRequired,\n ...errorMessages,\n }\n }, [errorMessages, translation.Field.errorRequired])\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n errorArg: Error | FormError | undefined = undefined\n ) => {\n const error = prepareError(errorArg)\n\n if (!errorChanged(error, localErrorRef.current)) {\n // In case different triggers lead to validation with no changes in the result (like still no error, or the same error),\n // avoid unnecessary re-renders by letting the old error object stay in the state and skip re-rendering.\n return\n }\n\n if (method === 'wipe') {\n errorMethodRef.current = {}\n } else {\n errorMethodRef.current[method] = error\n }\n\n if (\n !error &&\n method === 'gracefully' &&\n Object.keys(errorMethodRef.current).filter(Boolean).length > 0\n ) {\n // If the error is removed, we need to check if there are other errors that still should be shown\n return\n }\n\n localErrorRef.current = error\n\n // Tell the data context about the error, so it can stop the user from submitting the form until the error has been fixed\n setFieldErrorDataContext?.(identifier, error)\n setFieldError?.(identifier, error)\n\n // Set the visual states\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n setFieldStateFieldBlock?.({\n stateId,\n identifier,\n type: 'error',\n content: error,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n\n forceUpdate()\n },\n [\n prepareError,\n setFieldErrorDataContext,\n identifier,\n setFieldError,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n inFieldBlock,\n validateInitially,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe')\n hasLocalErrorRef.current = false\n }, [persistErrorState])\n\n const callValidator = useCallback(async () => {\n if (typeof validatorRef.current !== 'function') {\n return\n }\n\n const runAsync = isAsync(validatorRef.current)\n\n if (runAsync) {\n defineAsyncProcess('validator')\n setFieldState('validating')\n hideError()\n }\n\n const opts = {\n ...contextErrorMessages,\n ...errorMessagesRef.current,\n }\n\n const tmpValue = valueRef.current\n\n // Run async regardless to support Promise based validators\n const result = await validatorRef.current(valueRef.current, opts)\n\n const unchangedValue = tmpValue === valueRef.current\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState('gracefully', result as Error)\n\n // Because its a better UX to show the error when the validation is async/delayed\n if (continuousValidation || runAsync) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n showError()\n forceUpdate()\n })\n }\n }\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n\n if (unchangedValue) {\n setFieldState(result instanceof Error ? 'error' : 'complete')\n } else {\n setFieldState('pending')\n }\n }\n\n return result\n }, [\n contextErrorMessages,\n continuousValidation,\n hideError,\n persistErrorState,\n defineAsyncProcess,\n setFieldState,\n showError,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({ valueOverride = null } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return\n }\n // External blur validators makes it possible to validate values but not on every character change in case of\n // expensive validation calling external services etc.\n\n // Since the validator can return either a synchronous result or an asynchronous\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlurValidator'\n )\n\n const runAsync = isAsync(onBlurValidatorRef.current)\n\n if (runAsync) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n // Run async regardless to support Promise based validators\n const result = await onBlurValidatorRef.current(value)\n\n persistErrorState('gracefully', result as Error)\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n showError()\n forceUpdate()\n },\n [persistErrorState, defineAsyncProcess, setFieldState, showError]\n )\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n if (disabled) {\n if (isProcessActive()) {\n clearErrorState()\n }\n hideError()\n setFieldState(undefined)\n return // stop here\n }\n\n const value = valueRef.current\n changeEventResultRef.current = null\n validatedValue.current = null\n\n try {\n // Validate required\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required: requiredProp,\n isChanged: changedRef.current,\n error: new FormError('The value is required', {\n validationRule: 'required',\n }),\n })\n if (requiredError instanceof Error) {\n throw requiredError\n }\n\n // Validate by provided JSON Schema for this value\n if (\n schemaValidatorRef.current &&\n value !== undefined &&\n !schemaValidatorRef.current(value)\n ) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors,\n valueRef.current\n )\n throw error\n }\n\n // Validate by provided derivative validator\n if (\n validatorRef.current &&\n (changedRef.current || validateInitially)\n ) {\n const result = await callValidator()\n\n if (result instanceof Error) {\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValue.current = value\n } catch (error: unknown) {\n if (isProcessActive()) {\n hasLocalErrorRef.current = true\n persistErrorState('weak', error as Error)\n }\n }\n }, [\n startProcess,\n disabled,\n hideError,\n setFieldState,\n clearErrorState,\n emptyValue,\n requiredProp,\n validateInitially,\n callValidator,\n persistErrorState,\n ])\n\n const handleError = useCallback(() => {\n if (\n continuousValidation ||\n (continuousValidation !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with continuousValidation set to false).\n showError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [continuousValidation, hideError, showError])\n\n const setHasFocus = useCallback(\n async (hasFocus: boolean, valueOverride?: Value) => {\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onFocus'\n )\n onFocus?.(value)\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlur'\n )\n onBlur?.(value)\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n addToPool(\n 'onBlurValidator',\n async () => await callOnBlurValidator({ valueOverride }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n showError()\n forceUpdate()\n })\n }\n },\n [\n addToPool,\n callOnBlurValidator,\n onBlur,\n onFocus,\n runPool,\n showError,\n validateUnchanged,\n ]\n )\n\n // Await an async operation to run after criteria are fulfilled\n const yieldAsyncProcess = useCallback(\n async ({\n name,\n waitFor,\n }: {\n name: 'onChangeLocal' | 'onChangeContext' | 'onSubmitContext'\n waitFor: Array<{\n processName?: AsyncProcesses\n withStates: Array<SubmitStateWithValidating>\n withValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, withValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n withValue === validatedValue.current\n\n const result =\n (typeof withValue === 'undefined'\n ? false\n : !hasMatchingValue) ||\n ((processName\n ? processName === asyncProcessRef.current\n : true) &&\n withStates?.some((state) => {\n return state === fieldStateRef.current\n }))\n\n return result\n }\n )\n\n return result\n }\n\n if (validateProcesses() === true) {\n asyncBufferRef.current[name] = { resolve, validateProcesses }\n } else {\n resolve()\n setFieldState('pending')\n }\n })\n },\n [setFieldState]\n )\n\n const handleChangeEventResult = useCallback(async () => {\n const result: EventStateObjectWithSuccess =\n changeEventResultRef.current\n\n if (typeof result?.error !== 'undefined') {\n persistErrorState('gracefully', result.error)\n showError()\n }\n if (typeof result?.warning !== 'undefined') {\n warningRef.current = result.warning\n }\n if (typeof result?.info !== 'undefined') {\n infoRef.current = result.info\n }\n\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onSubmitContext',\n waitFor: [{ withStates: ['validating'] }],\n })\n }\n\n defineAsyncProcess(undefined)\n\n if (result?.success === 'saved') {\n setFieldState('success')\n } else if (result?.error) {\n setFieldState('error')\n } else if (asyncBehaviorIsEnabled) {\n setFieldState('complete')\n }\n }, [\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n persistErrorState,\n setFieldState,\n showError,\n yieldAsyncProcess,\n ])\n\n const setEventResult = useCallback(\n (result: EventReturnWithStateObjectAndSuccess) => {\n if (result instanceof Error) {\n result = { error: result }\n }\n changeEventResultRef.current = {\n ...changeEventResultRef.current,\n ...result,\n } as EventStateObjectWithSuccess\n\n handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n withValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n withValue: valueRef.current,\n },\n ],\n })\n }\n\n if (path) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n setEventResult(\n (await handlePathChangeDataContext?.(\n path\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n setEventResult(null)\n }\n } else {\n setEventResult(\n handlePathChangeDataContext?.(\n path\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n path,\n hasError,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n setEventResult,\n handlePathChangeDataContext,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n if (newValue === valueRef.current) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n valueRef.current = newValue\n\n handlePathChangeUnvalidatedDataContext(path, newValue)\n\n addToPool('validator', validateValue, isAsync(validatorRef.current))\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n handlePathChangeUnvalidatedDataContext,\n path,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handleError,\n ]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value,\n additionalArgs: AdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n const fromInput = transformers.current.fromInput(argFromInput)\n\n if (fromInput === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n const transformedValue = transformers.current.transformOut(\n transformers.current.transformValue(fromInput, currentValue)\n )\n\n // Must be set before validation\n changedRef.current = true\n\n // Run in sync, before any async operations to avoid lag in UX\n if (itemPath) {\n const iterateValuePath = `/${iterateElementIndex}${\n itemPath && itemPath !== '/' ? itemPath : ''\n }`\n handleChangeIterateContext?.(iterateValuePath, transformedValue)\n }\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(transformedValue)\n } else {\n updateValue(transformedValue)\n }\n\n const getArgs = (): [Value] | [Value, AdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n valueRef.current,\n 'onChange'\n )\n\n return typeof additionalArgs !== 'undefined'\n ? [value, additionalArgs]\n : [value]\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getArgs()\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n withValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n withValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n withValue: args[0],\n },\n ],\n })\n\n defineAsyncProcess('onChangeLocal')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n // If the value has changed during the async process, we don't want to call the onChange anymore\n setEventResult(await onChange?.apply(this, args))\n } else {\n setEventResult(null)\n }\n },\n true\n )\n } else {\n setEventResult(onChange?.apply(this, getArgs()))\n }\n\n await runPool()\n },\n [\n addToPool,\n asyncBehaviorIsEnabled,\n handleChangeIterateContext,\n hasError,\n hideError,\n itemPath,\n iterateElementIndex,\n onChange,\n runPool,\n defineAsyncProcess,\n setEventResult,\n updateValue,\n yieldAsyncProcess,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n // Put props into the surrounding data context as early as possible\n setPropsDataContext?.(identifier, props)\n\n useMountEffect(() => {\n dataContext?.handleMountField(identifier)\n validateValue()\n })\n useUnmountEffect(() => {\n dataContext?.handleUnMountField(identifier)\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldError?.(identifier, undefined)\n localErrorRef.current = undefined\n })\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema, validateValue])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n validateValue()\n }\n forceUpdate()\n }, [externalValue, validateValue])\n\n useEffect(() => {\n // Check against the local error state,\n // so we prioritize the local error state over the context error state\n if (!hasLocalErrorRef.current) {\n const error = prepareError(dataContextError)\n if (error) {\n persistErrorState('weak', error)\n if (validateInitially) {\n handleError()\n }\n } else {\n clearErrorState()\n }\n }\n }, [\n clearErrorState,\n dataContextError,\n handleError,\n persistErrorState,\n prepareError,\n validateInitially,\n ])\n\n useEffect(() => {\n if (path) {\n let value = props.value\n\n // First, look for existing data in the context\n const hasValue = pointer.has(dataContext.data, path)\n const existingValue = hasValue\n ? pointer.get(dataContext.data, path)\n : undefined\n\n // If no data where found in the dataContext, look for shared data\n if (\n dataContext.id &&\n !hasValue &&\n typeof existingValue === 'undefined' &&\n typeof value === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, path)\n if (hasValue) {\n const sharedValue = pointer.get(sharedState.data, path)\n if (sharedValue) {\n value = sharedValue\n }\n }\n }\n\n if (\n !hasValue ||\n (value !== existingValue &&\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current !== existingValue)\n ) {\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(path, value)\n validateDataDataContext?.()\n }\n }\n }, [\n dataContext.data,\n dataContext.id,\n path,\n props.value,\n updateDataValueDataContext,\n validateDataDataContext,\n ])\n\n useEffect(() => {\n if (dataContext.showAllErrors) {\n // In case of async validation, we don't want to show existing errors before the validation has been completed\n if (fieldStateRef.current !== 'validating') {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n showError()\n forceUpdate()\n }\n }\n }, [dataContext.showAllErrors, showError])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (validatorRef.current || onBlurValidatorRef.current)\n ) {\n hideError()\n forceUpdate()\n }\n }, [dataContext.formState, hideError])\n\n const onSubmitHandler = useCallback(async () => {\n if (hasError()) {\n return // stop here\n }\n\n addToPool('validator', callValidator, isAsync(validatorRef.current))\n addToPool(\n 'onBlurValidator',\n callOnBlurValidator,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [addToPool, callOnBlurValidator, callValidator, hasError, runPool])\n\n // Validate/call validator functions during submit of the form\n useMountEffect(() => {\n dataContext?.setFieldEventListener?.(\n identifier,\n 'onSubmit',\n onSubmitHandler\n )\n })\n\n // Set the error in the field block context if this field is inside a field block\n useMountEffect(() => {\n if (inFieldBlock) {\n if (errorProp) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n }\n if (warning) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n }\n if (info) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n }\n\n return () => {\n // Unmount procedure\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n }\n }\n })\n\n const infoRef = useRef<React.ReactNode>(info)\n const warningRef = useRef<React.ReactNode>(warning)\n useUpdateEffect(() => {\n infoRef.current = info\n warningRef.current = warning\n forceUpdate()\n }, [info, warning])\n\n // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>(\n (acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n },\n { ...props.htmlAttributes }\n )\n }, [props])\n\n if (error) {\n htmlAttributes['aria-invalid'] = error ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = 'true'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n\n // Check if there are any state IDs to be added to the aria-describedby attribute\n const stateIds = fieldBlockContext.fieldStateIdsRef?.current\n\n if (stateIds) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n [\n error && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (error || errorProp) && `${id}-form-status--error`,\n warning && `${id}-form-status--warning`,\n info && `${id}-form-status--info`,\n ].filter(Boolean)\n\n if (ids.length) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n ids\n )\n }\n }\n\n const fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? error : undefined,\n\n /** HTML Attributes */\n disabled:\n onBlurValidator &&\n asyncProcessRef.current === 'onBlurValidator' &&\n fieldStateRef.current === 'validating'\n ? true\n : disabled,\n\n /** Internal */\n fieldState: resolveValidatingState(fieldStateRef.current),\n }\n\n const sharedData = useSharedState(id)\n sharedData.set(fieldBlockProps)\n\n return {\n ...props,\n ...fieldBlockProps,\n\n /** HTML Attributes */\n name: props.name || props.path?.replace('/', '') || id,\n autoComplete:\n props.autoComplete ??\n (dataContext.autoComplete === true ? 'on' : undefined),\n\n /** Documented APIs */\n id,\n value: transformers.current.transformIn(\n transformers.current.toInput(valueRef.current)\n ),\n hasError: hasVisibleError,\n isChanged: changedRef.current,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n forceUpdate,\n\n /** Internal */\n dataContext,\n }\n}\n\nexport interface ReturnAdditional<Value> {\n /** Documented APIs */\n value: Value\n isChanged: boolean\n htmlAttributes: AriaAttributes | DataAttributes\n setHasFocus: (hasFocus: boolean, valueOverride?: unknown) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value,\n additionalArgs?: AdditionalEventArgs\n ) => void\n updateValue: (value: Value) => void\n forceUpdate: () => void\n hasError?: boolean\n\n /** Internal */\n dataContext: ContextState\n fieldState: SubmitState\n}\n\nfunction resolveValidatingState(state: SubmitStateWithValidating) {\n return state === 'validating' ? 'pending' : state\n}\n\nexport function useExternalValue<Value>({\n path,\n itemPath,\n props,\n transformers,\n emptyValue = undefined,\n}: {\n path?: Path\n itemPath?: Path\n props: FieldProps<Value>\n transformers: React.MutableRefObject<{\n fromExternal: FieldProps<Value>['fromExternal']\n }>\n emptyValue?: FieldProps<Value>['emptyValue']\n}) {\n const dataContext = useContext(DataContext)\n const iterateElementContext = useContext(IterateElementContext)\n const inIterate = Boolean(iterateElementContext)\n const { value: iterateElementValue } = iterateElementContext ?? {}\n\n return useMemo(() => {\n if (props.value !== emptyValue) {\n // Value-prop sent directly to the field has highest priority, overriding any surrounding source\n return transformers.current.fromExternal(props.value)\n }\n\n if (inIterate && itemPath) {\n // This field is inside an iterate, and has a pointer from the base of the element being iterated\n if (itemPath === '/') {\n return iterateElementValue\n }\n\n return pointer.has(iterateElementValue, itemPath)\n ? pointer.get(iterateElementValue, itemPath)\n : emptyValue\n }\n\n if (dataContext.data && path) {\n // There is a surrounding data context and a path for where in the source to find the data\n if (path === '/') {\n return dataContext.data\n }\n\n return pointer.has(dataContext.data, path)\n ? pointer.get(dataContext.data, path)\n : emptyValue\n }\n\n return emptyValue\n }, [\n props.value,\n emptyValue,\n inIterate,\n itemPath,\n dataContext.data,\n path,\n transformers,\n iterateElementValue,\n ])\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useFieldProps.js","names":["_react","require","_jsonPointer","_interopRequireDefault","_utils","_ajv","_types","_DataContext","_FieldPropsContext","_componentHelper","_useId","_useUpdateEffect","_useMountEffect","_useUnmountEffect","_FieldBlockContext","_IterateElementContext","_SectionContext","_FieldBoundaryContext","_useProcessManager","_usePath","_useSharedState","_isAsync","_useTranslation","_useExternalValue2","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","useFieldProps","localeProps","_dataContext$props","_useExternalValue","_dataContext$ajvInsta","_localErrorRef$curren","_ref3","_this","_props$path","_props$autoComplete","extend","useContext","FieldPropsContext","props","path","pathProp","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","fromExternal","validateRequired","_ref","forceUpdate","useReducer","startProcess","useProcessManager","id","useId","dataContext","DataContext","fieldBlockContext","FieldBlockContext","iterateElementContext","IterateElementContext","sectionContext","SectionContext","fieldBoundaryContext","FieldBoundaryContext","translation","useTranslation","transformers","useRef","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldProps","setPropsDataContext","errors","dataContextErrors","contextErrorMessages","onChangeContext","readOnly","inFieldBlock","Boolean","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","handleChange","handleChangeIterateContext","sectionPath","errorPrioritization","hasPath","identifier","makeIteratePath","usePath","defaultValueRef","externalValue","useExternalValue","current","valueRef","changedRef","hasFocusRef","useMemo","paths","split","requiredList","schemaPath","slice","join","schemaPart","pointer","has","get","substring","collected","flatMap","v","some","p","c","includes","showErrorRef","errorMethodRef","localErrorRef","hasLocalErrorRef","dataContextError","contextErrorRef","validatorRef","useUpdateEffect","onBlurValidatorRef","schemaValidatorRef","ajvInstance","compile","asyncBehaviorIsEnabled","isAsync","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","useCallback","name","asyncBufferRef","resolve","validateProcesses","window","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","showError","hideError","prepareError","FormError","_error$messageValues","message","validationRule","_errorMessagesRef$cur","fieldMessage","errorMessagesRef","messageWithValues","entries","messageValues","reduce","_ref2","replace","errorChanged","hasVisibleError","hasErrorProp","hasError","_ref4","Field","errorRequired","stateId","persistErrorState","method","errorArg","type","content","showInitially","clearErrorState","callValidator","opts","tmpValue","result","unchangedValue","Error","callOnBlurValidator","valueOverride","prioritizeContextSchema","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","ajvErrorsToOneFormError","handleError","setHasFocus","hasFocus","yieldAsyncProcess","_ref5","waitFor","Promise","_ref6","processName","withStates","withValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","argFromInput","additionalArgs","currentValue","transformedValue","getArgs","args","handleFocus","handleBlur","useMountEffect","handleMountField","useUnmountEffect","handleUnMountField","_dataContext$ajvInsta2","useEffect","hasValue","data","existingValue","sharedState","createSharedState","sharedValue","showAllErrors","formState","onSubmitHandler","_dataContext$setField","setFieldEventListener","show","htmlAttributes","acc","cur","startsWith","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","combineDescribedBy","ids","fieldSectionProps","fieldState","sharedData","useSharedState","set","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport { errorChanged } from '../utils'\nimport { ajvErrorsToOneFormError } from '../utils/ajv'\nimport {\n FormError,\n FieldProps,\n AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport FieldPropsContext from '../Form/FieldProps/FieldPropsContext'\nimport { combineDescribedBy } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport useMountEffect from '../../../shared/helpers/useMountEffect'\nimport useUnmountEffect from '../../../shared/helpers/useUnmountEffect'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateElementContext'\nimport SectionContext from '../Form/Section/SectionContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport useProcessManager from './useProcessManager'\nimport usePath from './usePath'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\nimport useExternalValue from './useExternalValue'\n\ntype SubmitStateWithValidating = SubmitState | 'validating'\ntype AsyncProcesses =\n | 'validator'\n | 'onBlurValidator'\n | 'onChangeLocal'\n | 'onChangeContext'\ntype PersistErrorStateMethod =\n /**\n * Add or remove the error regardless\n */\n | 'weak'\n /**\n * Check if there is an existing error, and if so, keep it\n */\n | 'gracefully'\n /**\n * Remove the error, if any\n */\n | 'wipe'\ntype AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string | boolean | number\n}\n\n// Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n// useEffect depend on them (like the external `value`)\n\nexport default function useFieldProps<\n Value = unknown,\n Props extends FieldProps<Value> = FieldProps<Value>,\n>(\n localeProps: Props\n): Props & FieldProps<Value> & ReturnAdditional<Value> {\n const { extend } = useContext(FieldPropsContext)\n const props = extend<Props>(localeProps)\n\n const {\n path: pathProp,\n value: valueProp,\n defaultValue,\n itemPath,\n emptyValue,\n required: requiredProp,\n disabled: disabledProp,\n info,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n transformIn = (value: Value) => value,\n transformOut = (value: Value) => value,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n fromExternal = (value: Value) => value,\n validateRequired = (value: Value, { emptyValue, required, error }) => {\n const res =\n required &&\n (value === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\n },\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateElementContext = useContext(IterateElementContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const translation = useTranslation()\n\n const transformers = useRef({\n transformIn,\n transformOut,\n toInput,\n fromInput,\n toEvent,\n fromExternal,\n transformValue,\n validateRequired,\n })\n\n const {\n handlePathChangeUnvalidated: handlePathChangeUnvalidatedDataContext,\n handlePathChange: handlePathChangeDataContext,\n updateDataValue: updateDataValueDataContext,\n validateData: validateDataDataContext,\n setFieldState: setFieldStateDataContext,\n setFieldError: setFieldErrorDataContext,\n setFieldProps: setPropsDataContext,\n errors: dataContextErrors,\n contextErrorMessages,\n } = dataContext ?? {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = fieldBlockContext ?? {}\n const { handleChange: handleChangeIterateContext } =\n iterateElementContext ?? {}\n const { path: sectionPath, errorPrioritization } = sectionContext ?? {}\n const { setFieldError } = fieldBoundaryContext ?? {}\n\n const hasPath = Boolean(pathProp)\n const { path, identifier, makeIteratePath } = usePath({\n id,\n path: pathProp,\n itemPath,\n })\n\n const defaultValueRef = useRef(defaultValue)\n const externalValue =\n useExternalValue<Value>({\n path,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue,\n }) ?? defaultValueRef.current\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>(false)\n const hasFocusRef = useRef<boolean>(false)\n\n const required = useMemo(() => {\n if (requiredProp) {\n return requiredProp\n }\n\n const paths = identifier.split('/')\n if (paths.length > 0 && (schema || dataContext?.schema)) {\n const requiredList = [schema?.['required']]\n\n if (paths.length > 1) {\n const schema = dataContext.schema\n const schemaPath = paths.slice(0, -1).join('/properties/')\n const schemaPart = pointer.has(schema, schemaPath)\n ? pointer.get(schema, schemaPath)\n : schema\n\n requiredList.push(schemaPart?.required)\n }\n\n if (sectionPath) {\n paths.push(sectionPath.substring(1))\n }\n\n const collected = requiredList.flatMap((v) => v).filter(Boolean)\n if (\n paths\n .filter(Boolean)\n .some((p) => collected.some((c) => c.includes(p)))\n ) {\n return true\n }\n }\n }, [sectionPath, dataContext.schema, identifier, requiredProp, schema])\n\n // Error handling\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const showErrorRef = useRef<boolean>(\n Boolean(validateInitially || errorProp)\n )\n // - Local errors are errors based on validation instructions received by\n const errorMethodRef = useRef<\n Partial<Record<PersistErrorStateMethod, Error | FormError>>\n >({})\n const localErrorRef = useRef<Error | FormError | undefined>()\n const hasLocalErrorRef = useRef(false)\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const dataContextError = useMemo(() => {\n return path ? dataContextErrors?.[identifier] : undefined\n }, [dataContextErrors, identifier, path])\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const validatorRef = useRef(validator)\n useUpdateEffect(() => {\n validatorRef.current = validator\n }, [validator])\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>(\n schema ? dataContext.ajvInstance?.compile(schema) : undefined\n )\n\n // - Async behavior\n const asyncBehaviorIsEnabled = useMemo(() => {\n return isAsync(onChange) || isAsync(onChangeContext)\n }, [onChangeContext, onChange])\n const validatedValue = useRef<Value>()\n const changeEventResultRef = useRef<EventStateObjectWithSuccess>(null)\n const asyncProcessRef = useRef<AsyncProcesses>(null)\n const defineAsyncProcess = useCallback((name: AsyncProcesses) => {\n asyncProcessRef.current = name\n }, [])\n\n // When both an async onChange and async validators are used,\n // we buffer the onChange calls to avoid race conditions.\n const asyncBufferRef = useRef<\n Record<AsyncProcesses, AsyncProcessesBuffer> | Record<string, unknown>\n >({})\n\n for (const key in asyncBufferRef.current) {\n const { resolve, validateProcesses } = (asyncBufferRef.current[key] ||\n {}) as AsyncProcessesBuffer\n if (validateProcesses?.() === false) {\n delete asyncBufferRef.current[key]\n if (typeof resolve === 'function') {\n window.requestAnimationFrame(resolve)\n }\n }\n }\n\n const eventPool = useRef({\n validator: null,\n onBlurValidator: null,\n onChangeContext: null,\n onChangeLocal: null,\n })\n\n const addToPool = useCallback(\n (name: keyof typeof eventPool.current, fn, runAsync) => {\n if (!eventPool.current[name]) {\n eventPool.current[name] = { fn, runAsync }\n }\n },\n []\n )\n\n const runPool = useCallback(async (cb = null) => {\n for (const key in eventPool.current) {\n if (!eventPool.current[key] || eventPool.current[key].pending) {\n continue\n }\n\n const { fn, runAsync } = eventPool.current[key] || {}\n if (fn) {\n eventPool.current[key].pending = true\n eventPool.current[key] = null\n\n if (runAsync) {\n await fn()\n } else {\n fn()\n }\n }\n }\n\n // use a callback in order to avoid any async/await,\n // because it will delay the execution of the following code\n cb?.()\n }, [])\n\n const fieldStateRef = useRef<SubmitStateWithValidating>()\n const setFieldState = useCallback(\n (state: SubmitStateWithValidating) => {\n fieldStateRef.current = state\n setFieldStateDataContext(identifier, resolveValidatingState(state))\n if (!validateInitially) {\n forceUpdate()\n }\n },\n [setFieldStateDataContext, identifier, validateInitially]\n )\n\n const showError = useCallback(() => {\n showErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n }, [showFieldErrorFieldBlock, identifier])\n\n const hideError = useCallback(() => {\n showErrorRef.current = false\n showFieldErrorFieldBlock?.(identifier, false)\n }, [showFieldErrorFieldBlock, identifier])\n\n /**\n * Prepare error from validation logic with correct error messages based on props\n */\n const prepareError = useCallback(\n (error: Error | FormError | undefined): FormError | undefined => {\n if (error instanceof FormError) {\n let message = error.message\n\n const { validationRule } = error\n if (typeof validationRule === 'string') {\n const fieldMessage = errorMessagesRef.current?.[validationRule]\n if (fieldMessage) {\n message = fieldMessage\n }\n }\n\n const messageWithValues = Object.entries(\n error.messageValues ?? {}\n ).reduce((message, [key, value]) => {\n return message.replace(`{${key}}`, value)\n }, message)\n\n error.message = messageWithValues\n\n return error\n }\n\n return error\n },\n []\n )\n\n contextErrorRef.current = useMemo(() => {\n if (!dataContextError) {\n return undefined\n }\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n return error\n }\n }, [dataContextError, prepareError])\n\n const error =\n showErrorRef.current ||\n // If the error is a type error, we want to show it even if the field as not been used\n localErrorRef.current?.['validationRule'] === 'type'\n ? errorProp ?? localErrorRef.current ?? contextErrorRef.current\n : undefined\n\n const hasVisibleError =\n Boolean(error) || (inFieldBlock && fieldBlockContext.hasErrorProp)\n const hasError = useCallback(() => {\n return Boolean(\n errorProp ?? localErrorRef.current ?? contextErrorRef.current\n )\n }, [errorProp])\n\n const errorMessagesRef = useRef(null)\n errorMessagesRef.current = useMemo(() => {\n return {\n required: translation.Field.errorRequired,\n ...errorMessages,\n }\n }, [errorMessages, translation.Field.errorRequired])\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n errorArg: Error | FormError | undefined = undefined\n ) => {\n const error = prepareError(errorArg)\n\n if (!errorChanged(error, localErrorRef.current)) {\n // In case different triggers lead to validation with no changes in the result (like still no error, or the same error),\n // avoid unnecessary re-renders by letting the old error object stay in the state and skip re-rendering.\n return\n }\n\n if (method === 'wipe') {\n errorMethodRef.current = {}\n } else {\n errorMethodRef.current[method] = error\n }\n\n if (\n !error &&\n method === 'gracefully' &&\n Object.keys(errorMethodRef.current).filter(Boolean).length > 0\n ) {\n // If the error is removed, we need to check if there are other errors that still should be shown\n return\n }\n\n localErrorRef.current = error\n\n // Tell the data context about the error, so it can stop the user from submitting the form until the error has been fixed\n setFieldErrorDataContext?.(identifier, error)\n setFieldError?.(identifier, error)\n\n // Set the visual states\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n setFieldStateFieldBlock?.({\n stateId,\n identifier,\n type: 'error',\n content: error,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n\n forceUpdate()\n },\n [\n prepareError,\n setFieldErrorDataContext,\n identifier,\n setFieldError,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n inFieldBlock,\n validateInitially,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe')\n hasLocalErrorRef.current = false\n }, [persistErrorState])\n\n const callValidator = useCallback(async () => {\n if (typeof validatorRef.current !== 'function') {\n return\n }\n\n const runAsync = isAsync(validatorRef.current)\n\n if (runAsync) {\n defineAsyncProcess('validator')\n setFieldState('validating')\n hideError()\n }\n\n const opts = {\n ...contextErrorMessages,\n ...errorMessagesRef.current,\n }\n\n const tmpValue = valueRef.current\n\n // Run async regardless to support Promise based validators\n const result = await validatorRef.current(valueRef.current, opts)\n\n const unchangedValue = tmpValue === valueRef.current\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState('gracefully', result as Error)\n\n // Because its a better UX to show the error when the validation is async/delayed\n if (continuousValidation || runAsync) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n showError()\n forceUpdate()\n })\n }\n }\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n\n if (unchangedValue) {\n setFieldState(result instanceof Error ? 'error' : 'complete')\n } else {\n setFieldState('pending')\n }\n }\n\n return result\n }, [\n contextErrorMessages,\n continuousValidation,\n hideError,\n persistErrorState,\n defineAsyncProcess,\n setFieldState,\n showError,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({ valueOverride = null } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return\n }\n // External blur validators makes it possible to validate values but not on every character change in case of\n // expensive validation calling external services etc.\n\n // Since the validator can return either a synchronous result or an asynchronous\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlurValidator'\n )\n\n const runAsync = isAsync(onBlurValidatorRef.current)\n\n if (runAsync) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n // Run async regardless to support Promise based validators\n const result = await onBlurValidatorRef.current(value)\n\n persistErrorState('gracefully', result as Error)\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n showError()\n forceUpdate()\n },\n [persistErrorState, defineAsyncProcess, setFieldState, showError]\n )\n\n const prioritizeContextSchema = useMemo(() => {\n if (errorPrioritization) {\n const schemaPath = identifier.split('/').join('/properties/')\n const hasContextSchema = pointer.has(\n dataContext?.schema || {},\n schemaPath\n )\n return (\n hasContextSchema &&\n errorPrioritization?.indexOf('contextSchema') === 0\n )\n }\n }, [dataContext?.schema, errorPrioritization, identifier])\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n if (disabled) {\n if (isProcessActive()) {\n clearErrorState()\n }\n hideError()\n setFieldState(undefined)\n return // stop here\n }\n\n const value = valueRef.current\n changeEventResultRef.current = null\n validatedValue.current = null\n\n try {\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required: requiredProp ?? required,\n isChanged: changedRef.current,\n error: new FormError('The value is required', {\n validationRule: 'required',\n }),\n })\n if (requiredError instanceof Error) {\n throw requiredError\n }\n\n // Validate by provided JSON Schema for this value\n if (\n schemaValidatorRef.current &&\n value !== undefined &&\n !schemaValidatorRef.current(value) &&\n !prioritizeContextSchema\n ) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors,\n valueRef.current\n )\n throw error\n }\n\n // Validate by provided derivative validator\n if (\n validatorRef.current &&\n (changedRef.current || validateInitially)\n ) {\n const result = await callValidator()\n\n if (result instanceof Error) {\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValue.current = value\n } catch (error: unknown) {\n if (isProcessActive()) {\n hasLocalErrorRef.current = true\n persistErrorState('weak', error as Error)\n }\n }\n }, [\n startProcess,\n disabled,\n hideError,\n setFieldState,\n clearErrorState,\n emptyValue,\n requiredProp,\n required,\n prioritizeContextSchema,\n validateInitially,\n callValidator,\n persistErrorState,\n ])\n\n const handleError = useCallback(() => {\n if (\n continuousValidation ||\n (continuousValidation !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with continuousValidation set to false).\n showError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [continuousValidation, hideError, showError])\n\n const setHasFocus = useCallback(\n async (hasFocus: boolean, valueOverride?: Value) => {\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onFocus'\n )\n onFocus?.(value)\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlur'\n )\n onBlur?.(value)\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n addToPool(\n 'onBlurValidator',\n async () => await callOnBlurValidator({ valueOverride }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n showError()\n forceUpdate()\n })\n }\n },\n [\n addToPool,\n callOnBlurValidator,\n onBlur,\n onFocus,\n runPool,\n showError,\n validateUnchanged,\n ]\n )\n\n // Await an async operation to run after criteria are fulfilled\n const yieldAsyncProcess = useCallback(\n async ({\n name,\n waitFor,\n }: {\n name: 'onChangeLocal' | 'onChangeContext' | 'onSubmitContext'\n waitFor: Array<{\n processName?: AsyncProcesses\n withStates: Array<SubmitStateWithValidating>\n withValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, withValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n withValue === validatedValue.current\n\n const result =\n (typeof withValue === 'undefined'\n ? false\n : !hasMatchingValue) ||\n ((processName\n ? processName === asyncProcessRef.current\n : true) &&\n withStates?.some((state) => {\n return state === fieldStateRef.current\n }))\n\n return result\n }\n )\n\n return result\n }\n\n if (validateProcesses() === true) {\n asyncBufferRef.current[name] = { resolve, validateProcesses }\n } else {\n resolve()\n setFieldState('pending')\n }\n })\n },\n [setFieldState]\n )\n\n const handleChangeEventResult = useCallback(async () => {\n const result: EventStateObjectWithSuccess =\n changeEventResultRef.current\n\n if (typeof result?.error !== 'undefined') {\n persistErrorState('gracefully', result.error)\n showError()\n }\n if (typeof result?.warning !== 'undefined') {\n warningRef.current = result.warning\n }\n if (typeof result?.info !== 'undefined') {\n infoRef.current = result.info\n }\n\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onSubmitContext',\n waitFor: [{ withStates: ['validating'] }],\n })\n }\n\n defineAsyncProcess(undefined)\n\n if (result?.success === 'saved') {\n setFieldState('success')\n } else if (result?.error) {\n setFieldState('error')\n } else if (asyncBehaviorIsEnabled) {\n setFieldState('complete')\n }\n }, [\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n persistErrorState,\n setFieldState,\n showError,\n yieldAsyncProcess,\n ])\n\n const setEventResult = useCallback(\n (result: EventReturnWithStateObjectAndSuccess) => {\n if (result instanceof Error) {\n result = { error: result }\n }\n changeEventResultRef.current = {\n ...changeEventResultRef.current,\n ...result,\n } as EventStateObjectWithSuccess\n\n handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n withValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n withValue: valueRef.current,\n },\n ],\n })\n }\n\n if (hasPath) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n setEventResult(\n (await handlePathChangeDataContext?.(\n identifier\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n setEventResult(null)\n }\n } else {\n setEventResult(\n handlePathChangeDataContext?.(\n identifier\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n hasPath,\n identifier,\n hasError,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n setEventResult,\n handlePathChangeDataContext,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n if (newValue === valueRef.current) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n valueRef.current = newValue\n\n if (hasPath) {\n handlePathChangeUnvalidatedDataContext(identifier, newValue)\n }\n\n addToPool('validator', validateValue, isAsync(validatorRef.current))\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n hasPath,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handlePathChangeUnvalidatedDataContext,\n identifier,\n handleError,\n ]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value,\n additionalArgs: AdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n const fromInput = transformers.current.fromInput(argFromInput)\n\n if (fromInput === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n const transformedValue = transformers.current.transformOut(\n transformers.current.transformValue(fromInput, currentValue)\n )\n\n // Must be set before validation\n changedRef.current = true\n\n // Run in sync, before any async operations to avoid lag in UX\n if (itemPath) {\n handleChangeIterateContext?.(makeIteratePath(), transformedValue)\n }\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(transformedValue)\n } else {\n updateValue(transformedValue)\n }\n\n const getArgs = (): [Value] | [Value, AdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n valueRef.current,\n 'onChange'\n )\n\n return typeof additionalArgs !== 'undefined'\n ? [value, additionalArgs]\n : [value]\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getArgs()\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n withValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n withValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n withValue: args[0],\n },\n ],\n })\n\n defineAsyncProcess('onChangeLocal')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n // If the value has changed during the async process, we don't want to call the onChange anymore\n setEventResult(await onChange?.apply(this, args))\n } else {\n setEventResult(null)\n }\n },\n true\n )\n } else {\n setEventResult(onChange?.apply(this, getArgs()))\n }\n\n await runPool()\n },\n [\n itemPath,\n asyncBehaviorIsEnabled,\n onChange,\n runPool,\n handleChangeIterateContext,\n makeIteratePath,\n hideError,\n updateValue,\n addToPool,\n yieldAsyncProcess,\n defineAsyncProcess,\n hasError,\n setEventResult,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n // Put props into the surrounding data context as early as possible\n setPropsDataContext?.(identifier, props)\n\n useMountEffect(() => {\n dataContext?.handleMountField(identifier)\n validateValue()\n })\n useUnmountEffect(() => {\n dataContext?.handleUnMountField(identifier)\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldError?.(identifier, undefined)\n localErrorRef.current = undefined\n })\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema, validateValue])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n validateValue()\n }\n forceUpdate()\n }, [externalValue, validateValue])\n\n useEffect(() => {\n // Check against the local error state,\n // so we prioritize the local error state over the context error state\n if (!hasLocalErrorRef.current) {\n const error = prepareError(dataContextError)\n if (error) {\n persistErrorState('weak', error)\n if (validateInitially) {\n handleError()\n }\n } else {\n clearErrorState()\n }\n }\n }, [\n clearErrorState,\n dataContextError,\n handleError,\n persistErrorState,\n prepareError,\n validateInitially,\n ])\n\n useEffect(() => {\n if (hasPath) {\n let value = valueProp\n\n // First, look for existing data in the context\n const hasValue = pointer.has(dataContext.data, identifier)\n const existingValue = hasValue\n ? pointer.get(dataContext.data, identifier)\n : undefined\n\n // If no data where found in the dataContext, look for shared data\n if (\n dataContext.id &&\n !hasValue &&\n typeof existingValue === 'undefined' &&\n typeof value === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, identifier)\n if (hasValue) {\n const sharedValue = pointer.get(sharedState.data, identifier)\n if (sharedValue) {\n value = sharedValue\n }\n }\n }\n\n if (\n typeof defaultValueRef.current !== 'undefined' &&\n typeof value === 'undefined'\n ) {\n value = defaultValueRef.current\n defaultValueRef.current = undefined\n }\n\n if (\n !hasValue ||\n (value !== existingValue &&\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current !== existingValue)\n ) {\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(identifier, value)\n validateDataDataContext?.()\n }\n }\n }, [\n dataContext.data,\n dataContext.id,\n hasPath,\n identifier,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n ])\n\n useEffect(() => {\n if (dataContext.showAllErrors) {\n // In case of async validation, we don't want to show existing errors before the validation has been completed\n if (fieldStateRef.current !== 'validating') {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n showError()\n forceUpdate()\n }\n }\n }, [dataContext.showAllErrors, showError])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (validatorRef.current || onBlurValidatorRef.current)\n ) {\n hideError()\n forceUpdate()\n }\n }, [dataContext.formState, hideError])\n\n const onSubmitHandler = useCallback(async () => {\n if (hasError()) {\n return // stop here\n }\n\n addToPool('validator', callValidator, isAsync(validatorRef.current))\n addToPool(\n 'onBlurValidator',\n callOnBlurValidator,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [addToPool, callOnBlurValidator, callValidator, hasError, runPool])\n\n // Validate/call validator functions during submit of the form\n useMountEffect(() => {\n dataContext?.setFieldEventListener?.(\n identifier,\n 'onSubmit',\n onSubmitHandler\n )\n })\n\n // Set the error in the field block context if this field is inside a field block\n useMountEffect(() => {\n if (inFieldBlock) {\n if (errorProp) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n }\n if (warning) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n }\n if (info) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n }\n\n return () => {\n // Unmount procedure\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n }\n }\n })\n\n const infoRef = useRef<React.ReactNode>(info)\n const warningRef = useRef<React.ReactNode>(warning)\n useUpdateEffect(() => {\n infoRef.current = info\n warningRef.current = warning\n forceUpdate()\n }, [info, warning])\n\n // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>(\n (acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n },\n { ...props.htmlAttributes }\n )\n }, [props])\n\n if (error) {\n htmlAttributes['aria-invalid'] = error ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = 'true'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n\n // Check if there are any state IDs to be added to the aria-describedby attribute\n const stateIds = fieldBlockContext.fieldStateIdsRef?.current\n\n if (stateIds) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n [\n error && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (error || errorProp) && `${id}-form-status--error`,\n warning && `${id}-form-status--warning`,\n info && `${id}-form-status--info`,\n ].filter(Boolean)\n\n if (ids.length) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n ids\n )\n }\n }\n\n const fieldSectionProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? error : undefined,\n\n /** HTML Attributes */\n disabled:\n onBlurValidator &&\n asyncProcessRef.current === 'onBlurValidator' &&\n fieldStateRef.current === 'validating'\n ? true\n : disabled,\n\n /** Internal */\n fieldState: resolveValidatingState(fieldStateRef.current),\n }\n\n const sharedData = useSharedState(id)\n sharedData.set(fieldSectionProps)\n\n return {\n ...props,\n ...fieldSectionProps,\n\n /** HTML Attributes */\n name: props.name || props.path?.replace('/', '') || id,\n autoComplete:\n props.autoComplete ??\n (dataContext.autoComplete === true ? 'on' : undefined),\n\n /** Documented APIs */\n id,\n value: transformers.current.transformIn(\n transformers.current.toInput(valueRef.current)\n ),\n hasError: hasVisibleError,\n isChanged: changedRef.current,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n forceUpdate,\n\n /** Internal */\n dataContext,\n }\n}\n\nexport interface ReturnAdditional<Value> {\n /** Documented APIs */\n value: Value\n isChanged: boolean\n htmlAttributes: AriaAttributes | DataAttributes\n setHasFocus: (hasFocus: boolean, valueOverride?: unknown) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value,\n additionalArgs?: AdditionalEventArgs\n ) => void\n updateValue: (value: Value) => void\n forceUpdate: () => void\n hasError?: boolean\n\n /** Internal */\n dataContext: ContextState\n fieldState: SubmitState\n}\n\nfunction resolveValidatingState(state: SubmitStateWithValidating) {\n return state === 'validating' ? 'pending' : state\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Path } from '../types';
|
|
2
|
+
export type Props = {
|
|
3
|
+
id?: string;
|
|
4
|
+
path?: Path;
|
|
5
|
+
itemPath?: Path;
|
|
6
|
+
};
|
|
7
|
+
export default function usePath(props?: Props): {
|
|
8
|
+
identifier: string;
|
|
9
|
+
path: string;
|
|
10
|
+
itemPath: string;
|
|
11
|
+
makePath: (path: Path) => string;
|
|
12
|
+
makeIteratePath: (iteratePath?: Path) => string;
|
|
13
|
+
makeSectionPath: (path: Path) => string;
|
|
14
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = usePath;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _useId = _interopRequireDefault(require("../../../shared/helpers/useId"));
|
|
10
|
+
var _SectionContext = _interopRequireDefault(require("../Form/Section/SectionContext"));
|
|
11
|
+
var _IterateElementContext = _interopRequireDefault(require("../Iterate/IterateElementContext"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function usePath() {
|
|
14
|
+
var _useContext, _useContext2;
|
|
15
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
16
|
+
const {
|
|
17
|
+
path: pathProp,
|
|
18
|
+
itemPath: itemPathProp
|
|
19
|
+
} = props;
|
|
20
|
+
const id = (0, _useId.default)(props.id);
|
|
21
|
+
const {
|
|
22
|
+
path: sectionPath
|
|
23
|
+
} = (_useContext = (0, _react.useContext)(_SectionContext.default)) !== null && _useContext !== void 0 ? _useContext : {};
|
|
24
|
+
const {
|
|
25
|
+
path: iteratePath,
|
|
26
|
+
index: iterateElementIndex
|
|
27
|
+
} = (_useContext2 = (0, _react.useContext)(_IterateElementContext.default)) !== null && _useContext2 !== void 0 ? _useContext2 : {};
|
|
28
|
+
if (pathProp && !pathProp.startsWith('/')) {
|
|
29
|
+
throw new Error(`path="${pathProp}" must start with a slash`);
|
|
30
|
+
}
|
|
31
|
+
if (itemPathProp && !itemPathProp.startsWith('/')) {
|
|
32
|
+
throw new Error(`itemPath="${itemPathProp}" must start with a slash`);
|
|
33
|
+
}
|
|
34
|
+
const makeSectionPath = (0, _react.useCallback)(path => {
|
|
35
|
+
return `${sectionPath && sectionPath !== '/' ? sectionPath : ''}${path}`;
|
|
36
|
+
}, [sectionPath]);
|
|
37
|
+
const makeIteratePath = (0, _react.useCallback)(function () {
|
|
38
|
+
let iteratePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
39
|
+
let root = '';
|
|
40
|
+
if (sectionPath) {
|
|
41
|
+
root = makeSectionPath('');
|
|
42
|
+
}
|
|
43
|
+
return `${root}${iteratePath}/${iterateElementIndex}${itemPathProp && itemPathProp !== '/' ? itemPathProp : ''}`;
|
|
44
|
+
}, [sectionPath, itemPathProp, iterateElementIndex, makeSectionPath]);
|
|
45
|
+
const itemPath = (0, _react.useMemo)(() => {
|
|
46
|
+
if (itemPathProp) {
|
|
47
|
+
return makeIteratePath(iteratePath);
|
|
48
|
+
}
|
|
49
|
+
}, [itemPathProp, makeIteratePath, iteratePath]);
|
|
50
|
+
const makePath = (0, _react.useCallback)(path => {
|
|
51
|
+
if (itemPath) {
|
|
52
|
+
return itemPath;
|
|
53
|
+
}
|
|
54
|
+
if (sectionPath) {
|
|
55
|
+
return makeSectionPath(path);
|
|
56
|
+
}
|
|
57
|
+
return path;
|
|
58
|
+
}, [itemPath, sectionPath, makeSectionPath]);
|
|
59
|
+
const path = (0, _react.useMemo)(() => {
|
|
60
|
+
return makePath(pathProp);
|
|
61
|
+
}, [makePath, pathProp]);
|
|
62
|
+
const identifier = path !== null && path !== void 0 ? path : id;
|
|
63
|
+
return {
|
|
64
|
+
identifier,
|
|
65
|
+
path,
|
|
66
|
+
itemPath,
|
|
67
|
+
makePath,
|
|
68
|
+
makeIteratePath,
|
|
69
|
+
makeSectionPath
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=usePath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePath.js","names":["_react","require","_useId","_interopRequireDefault","_SectionContext","_IterateElementContext","obj","__esModule","default","usePath","_useContext","_useContext2","props","arguments","length","undefined","path","pathProp","itemPath","itemPathProp","id","useId","sectionPath","useContext","SectionContext","iteratePath","index","iterateElementIndex","IterateElementContext","startsWith","Error","makeSectionPath","useCallback","makeIteratePath","root","useMemo","makePath","identifier"],"sources":["../../../../../src/extensions/forms/hooks/usePath.ts"],"sourcesContent":["import { useCallback, useContext, useMemo } from 'react'\nimport { Path } from '../types'\nimport useId from '../../../shared/helpers/useId'\nimport SectionContext from '../Form/Section/SectionContext'\nimport IterateElementContext from '../Iterate/IterateElementContext'\n\nexport type Props = {\n id?: string\n path?: Path\n itemPath?: Path\n}\n\nexport default function usePath(props: Props = {}) {\n const { path: pathProp, itemPath: itemPathProp } = props\n const id = useId(props.id)\n const { path: sectionPath } = useContext(SectionContext) ?? {}\n const { path: iteratePath, index: iterateElementIndex } =\n useContext(IterateElementContext) ?? {}\n\n if (pathProp && !pathProp.startsWith('/')) {\n throw new Error(`path=\"${pathProp}\" must start with a slash`)\n }\n if (itemPathProp && !itemPathProp.startsWith('/')) {\n throw new Error(`itemPath=\"${itemPathProp}\" must start with a slash`)\n }\n\n const makeSectionPath = useCallback(\n (path: Path) => {\n return `${\n sectionPath && sectionPath !== '/' ? sectionPath : ''\n }${path}`\n },\n [sectionPath]\n )\n\n const makeIteratePath = useCallback(\n (iteratePath: Path = '') => {\n let root = ''\n\n if (sectionPath) {\n root = makeSectionPath('')\n }\n\n return `${root}${iteratePath}/${iterateElementIndex}${\n itemPathProp && itemPathProp !== '/' ? itemPathProp : ''\n }`\n },\n [sectionPath, itemPathProp, iterateElementIndex, makeSectionPath]\n )\n\n const itemPath = useMemo(() => {\n if (itemPathProp) {\n return makeIteratePath(iteratePath)\n }\n }, [itemPathProp, makeIteratePath, iteratePath])\n\n const makePath = useCallback(\n (path: Path) => {\n if (itemPath) {\n return itemPath\n }\n\n if (sectionPath) {\n return makeSectionPath(path)\n }\n\n // Identifier is used is registries of multiple fields, like in the DataContext keeping track of errors\n return path\n },\n [itemPath, sectionPath, makeSectionPath]\n )\n\n const path = useMemo(() => {\n return makePath(pathProp)\n }, [makePath, pathProp])\n\n const identifier = path ?? id\n return {\n identifier,\n path,\n itemPath,\n makePath,\n makeIteratePath,\n makeSectionPath,\n }\n}\n"],"mappings":"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"}
|
|
@@ -6,16 +6,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = useValueProps;
|
|
8
8
|
var _react = require("react");
|
|
9
|
-
var
|
|
9
|
+
var _useExternalValue2 = _interopRequireDefault(require("./useExternalValue"));
|
|
10
|
+
var _usePath = _interopRequireDefault(require("./usePath"));
|
|
11
|
+
var _Context = _interopRequireDefault(require("../DataContext/Context"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
13
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
11
14
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
15
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
16
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
14
17
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
15
18
|
function useValueProps(props) {
|
|
19
|
+
var _useExternalValue, _dataContext$setValue;
|
|
16
20
|
const {
|
|
17
|
-
path,
|
|
21
|
+
path: pathProp,
|
|
18
22
|
itemPath,
|
|
23
|
+
value,
|
|
24
|
+
defaultValue,
|
|
19
25
|
transformIn = value => value,
|
|
20
26
|
toInput = value => value,
|
|
21
27
|
fromExternal = value => value
|
|
@@ -25,12 +31,20 @@ function useValueProps(props) {
|
|
|
25
31
|
toInput,
|
|
26
32
|
fromExternal
|
|
27
33
|
});
|
|
28
|
-
const
|
|
34
|
+
const {
|
|
35
|
+
path
|
|
36
|
+
} = (0, _usePath.default)({
|
|
37
|
+
path: pathProp,
|
|
38
|
+
itemPath
|
|
39
|
+
});
|
|
40
|
+
const externalValue = (_useExternalValue = (0, _useExternalValue2.default)({
|
|
29
41
|
path,
|
|
30
42
|
itemPath,
|
|
31
|
-
|
|
43
|
+
value,
|
|
32
44
|
transformers
|
|
33
|
-
});
|
|
45
|
+
})) !== null && _useExternalValue !== void 0 ? _useExternalValue : defaultValue;
|
|
46
|
+
const dataContext = (0, _react.useContext)(_Context.default);
|
|
47
|
+
dataContext === null || dataContext === void 0 ? void 0 : (_dataContext$setValue = dataContext.setValueProps) === null || _dataContext$setValue === void 0 ? void 0 : _dataContext$setValue.call(dataContext, path, props);
|
|
34
48
|
return _objectSpread(_objectSpread({}, props), {}, {
|
|
35
49
|
value: transformers.current.transformIn(transformers.current.toInput(externalValue))
|
|
36
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useValueProps.js","names":["_react","require","
|
|
1
|
+
{"version":3,"file":"useValueProps.js","names":["_react","require","_useExternalValue2","_interopRequireDefault","_usePath","_Context","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","useValueProps","props","_useExternalValue","_dataContext$setValue","path","pathProp","itemPath","defaultValue","transformIn","toInput","fromExternal","transformers","useRef","usePath","externalValue","useExternalValue","dataContext","useContext","DataContext","setValueProps","current"],"sources":["../../../../../src/extensions/forms/hooks/useValueProps.ts"],"sourcesContent":["import { useContext, useRef } from 'react'\nimport { ValueProps } from '../types'\nimport useExternalValue from './useExternalValue'\nimport usePath from './usePath'\nimport DataContext from '../DataContext/Context'\n\nexport type Props<Value> = ValueProps<Value>\n\nexport default function useValueProps<\n Value = unknown,\n Props extends ValueProps<Value> = ValueProps<Value>,\n>(props: Props): Props & ValueProps<Value> {\n const {\n path: pathProp,\n itemPath,\n value,\n defaultValue,\n transformIn = (value: Value) => value,\n toInput = (value: Value) => value,\n fromExternal = (value: Value) => value,\n } = props\n\n const transformers = useRef({\n transformIn,\n toInput,\n fromExternal,\n })\n\n const { path } = usePath({ path: pathProp, itemPath })\n\n const externalValue =\n useExternalValue<Value>({\n path,\n itemPath,\n value,\n transformers,\n }) ?? defaultValue\n\n const dataContext = useContext(DataContext)\n dataContext?.setValueProps?.(path, props)\n\n return {\n ...props,\n value: transformers.current.transformIn(\n transformers.current.toInput(externalValue)\n ),\n }\n}\n"],"mappings":"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"}
|
|
@@ -7,9 +7,11 @@ export * as Form from './Form';
|
|
|
7
7
|
export * as Wizard from './Wizard';
|
|
8
8
|
export * as DataContext from './DataContext';
|
|
9
9
|
export * as Iterate from './Iterate';
|
|
10
|
+
export * as Tools from './Tools';
|
|
10
11
|
export { default as FieldBlock } from './FieldBlock';
|
|
11
12
|
export { default as ValueBlock } from './ValueBlock';
|
|
12
13
|
export { default as Ajv } from 'ajv/dist/2020';
|
|
14
|
+
export type { SectionProps } from './Form/Section';
|
|
13
15
|
/**
|
|
14
16
|
* Deprecated and will be removed in v11
|
|
15
17
|
*
|