@dnb/eufemia 10.33.0 → 10.34.1
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 +44 -0
- package/cjs/components/accordion/Accordion.d.ts +0 -2
- package/cjs/components/accordion/Accordion.js +2 -3
- package/cjs/components/accordion/Accordion.js.map +1 -1
- package/cjs/components/accordion/AccordionGroup.js +2 -3
- package/cjs/components/accordion/AccordionGroup.js.map +1 -1
- package/cjs/components/anchor/Anchor.d.ts +3 -0
- package/cjs/components/anchor/Anchor.js +22 -15
- package/cjs/components/anchor/Anchor.js.map +1 -1
- package/cjs/components/autocomplete/Autocomplete.js +2 -4
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- 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/button/Button.d.ts +0 -4
- package/cjs/components/button/Button.js +2 -5
- package/cjs/components/button/Button.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/date-picker/DatePicker.d.ts +0 -1
- package/cjs/components/date-picker/DatePicker.js +2 -5
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/dropdown/Dropdown.js +2 -5
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/form-row/FormRow.d.ts +0 -1
- package/cjs/components/form-row/FormRow.js +3 -6
- package/cjs/components/form-row/FormRow.js.map +1 -1
- package/cjs/components/form-set/FormSet.d.ts +0 -1
- package/cjs/components/form-set/FormSet.js +4 -5
- package/cjs/components/form-set/FormSet.js.map +1 -1
- package/cjs/components/form-status/FormStatus.d.ts +0 -2
- package/cjs/components/form-status/FormStatus.js +87 -72
- 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.d.ts +0 -1
- package/cjs/components/global-status/GlobalStatus.js +4 -9
- 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/ContainerDocs.js +1 -1
- package/cjs/components/grid/ContainerDocs.js.map +1 -1
- package/cjs/components/help-button/HelpButtonInstance.js +3 -4
- package/cjs/components/help-button/HelpButtonInstance.js.map +1 -1
- package/cjs/components/icon/Icon.js +2 -3
- package/cjs/components/icon/Icon.js.map +1 -1
- package/cjs/components/input/Input.d.ts +0 -1
- package/cjs/components/input/Input.js +2 -5
- package/cjs/components/input/Input.js.map +1 -1
- package/cjs/components/input-masked/InputMasked.d.ts +0 -1
- package/cjs/components/logo/Logo.js +5 -8
- package/cjs/components/logo/Logo.js.map +1 -1
- package/cjs/components/modal/Modal.d.ts +0 -1
- package/cjs/components/modal/Modal.js +1 -2
- package/cjs/components/modal/Modal.js.map +1 -1
- package/cjs/components/modal/types.d.ts +0 -4
- package/cjs/components/modal/types.js.map +1 -1
- package/cjs/components/number-format/NumberFormat.js +3 -6
- package/cjs/components/number-format/NumberFormat.js.map +1 -1
- package/cjs/components/pagination/Pagination.d.ts +0 -3
- package/cjs/components/pagination/Pagination.js +2 -5
- package/cjs/components/pagination/Pagination.js.map +1 -1
- package/cjs/components/radio/Radio.d.ts +0 -1
- package/cjs/components/radio/Radio.js +2 -5
- package/cjs/components/radio/Radio.js.map +1 -1
- package/cjs/components/radio/RadioGroup.d.ts +0 -1
- package/cjs/components/radio/RadioGroup.js +2 -5
- package/cjs/components/radio/RadioGroup.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/skeleton/Skeleton.d.ts +0 -1
- package/cjs/components/skeleton/Skeleton.js +2 -5
- package/cjs/components/skeleton/Skeleton.js.map +1 -1
- 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/switch/Switch.d.ts +0 -1
- package/cjs/components/switch/Switch.js +2 -5
- package/cjs/components/switch/Switch.js.map +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/components/tabs/Tabs.d.ts +0 -1
- package/cjs/components/tabs/Tabs.js +0 -2
- package/cjs/components/tabs/Tabs.js.map +1 -1
- package/cjs/components/tabs/TabsCustomContent.d.ts +0 -1
- package/cjs/components/tabs/TabsCustomContent.js +5 -8
- package/cjs/components/tabs/TabsCustomContent.js.map +1 -1
- package/cjs/components/textarea/Textarea.d.ts +0 -1
- package/cjs/components/textarea/Textarea.js +2 -5
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButton.d.ts +0 -1
- package/cjs/components/toggle-button/ToggleButton.js +2 -5
- package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +0 -1
- package/cjs/components/toggle-button/ToggleButtonGroup.js +2 -5
- package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
- 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 +17 -0
- 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/Boolean/Boolean.d.ts +2 -2
- package/cjs/extensions/forms/Field/Boolean/Boolean.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 +21 -18
- 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/Number/style/dnb-number.css +10 -0
- package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +11 -0
- package/cjs/extensions/forms/Field/Password/Password.js +2 -1
- package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +2 -3
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +2 -2
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +9 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -0
- 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 -0
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -1
- package/cjs/extensions/forms/Form/Appearance/Appearance.d.ts +3 -0
- package/cjs/extensions/forms/Form/Appearance/Appearance.js +1 -0
- package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
- package/cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts +5 -1
- package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +15 -20
- package/cjs/extensions/forms/Form/FieldProps/FieldProps.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 +1 -9
- package/cjs/extensions/forms/Form/Section/Section.js +21 -9
- package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/SectionContext.d.ts +3 -3
- package/cjs/extensions/forms/Form/Section/SectionContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/SectionDocs.js +10 -0
- package/cjs/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
- 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/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/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/ListAllProps.js +2 -2
- package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -1
- 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 +16 -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 +88 -40
- 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 +8 -5
- 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/{Category/FirstBlock → ChildrenWithAge}/index.js +5 -5
- package/cjs/extensions/forms/blocks/ChildrenWithAge/index.js.map +1 -0
- package/cjs/extensions/forms/blocks/index.d.ts +1 -1
- package/cjs/extensions/forms/blocks/index.js +8 -5
- package/cjs/extensions/forms/blocks/index.js.map +1 -1
- 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/useFieldProps.js +13 -8
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.js +5 -4
- package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +15 -2
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +10 -4
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/payment-card/PaymentCard.js +0 -2
- package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +0 -1
- package/cjs/fragments/drawer-list/DrawerList.js +6 -13
- package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +43 -46
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +2 -4
- 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 +1 -1
- package/cjs/shared/Context.js +1 -1
- 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 +49 -13
- 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 +15 -2
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +15 -2
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +67 -15
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +15 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +15 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +132 -74
- 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 +15 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +15 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +67 -15
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +15 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +15 -2
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/accordion/Accordion.d.ts +0 -2
- package/components/accordion/Accordion.js +2 -3
- package/components/accordion/Accordion.js.map +1 -1
- package/components/accordion/AccordionGroup.js +2 -3
- package/components/accordion/AccordionGroup.js.map +1 -1
- package/components/anchor/Anchor.d.ts +3 -0
- package/components/anchor/Anchor.js +21 -15
- package/components/anchor/Anchor.js.map +1 -1
- package/components/autocomplete/Autocomplete.js +2 -4
- package/components/autocomplete/Autocomplete.js.map +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/button/Button.d.ts +0 -4
- package/components/button/Button.js +2 -5
- package/components/button/Button.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/date-picker/DatePicker.d.ts +0 -1
- package/components/date-picker/DatePicker.js +2 -5
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/dropdown/Dropdown.js +2 -5
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/form-row/FormRow.d.ts +0 -1
- package/components/form-row/FormRow.js +4 -7
- package/components/form-row/FormRow.js.map +1 -1
- package/components/form-set/FormSet.d.ts +0 -1
- package/components/form-set/FormSet.js +5 -6
- package/components/form-set/FormSet.js.map +1 -1
- package/components/form-status/FormStatus.d.ts +0 -2
- package/components/form-status/FormStatus.js +86 -71
- 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.d.ts +0 -1
- package/components/global-status/GlobalStatus.js +4 -9
- 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/ContainerDocs.js +1 -1
- package/components/grid/ContainerDocs.js.map +1 -1
- package/components/help-button/HelpButtonInstance.js +3 -4
- package/components/help-button/HelpButtonInstance.js.map +1 -1
- package/components/icon/Icon.js +2 -3
- package/components/icon/Icon.js.map +1 -1
- package/components/input/Input.d.ts +0 -1
- package/components/input/Input.js +2 -5
- package/components/input/Input.js.map +1 -1
- package/components/input-masked/InputMasked.d.ts +0 -1
- package/components/logo/Logo.js +5 -8
- package/components/logo/Logo.js.map +1 -1
- package/components/modal/Modal.d.ts +0 -1
- package/components/modal/Modal.js +1 -2
- package/components/modal/Modal.js.map +1 -1
- package/components/modal/types.d.ts +0 -4
- package/components/modal/types.js.map +1 -1
- package/components/number-format/NumberFormat.js +4 -7
- package/components/number-format/NumberFormat.js.map +1 -1
- package/components/pagination/Pagination.d.ts +0 -3
- package/components/pagination/Pagination.js +2 -5
- package/components/pagination/Pagination.js.map +1 -1
- package/components/radio/Radio.d.ts +0 -1
- package/components/radio/Radio.js +2 -5
- package/components/radio/Radio.js.map +1 -1
- package/components/radio/RadioGroup.d.ts +0 -1
- package/components/radio/RadioGroup.js +2 -5
- package/components/radio/RadioGroup.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/skeleton/Skeleton.d.ts +0 -1
- package/components/skeleton/Skeleton.js +2 -5
- package/components/skeleton/Skeleton.js.map +1 -1
- 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/switch/Switch.d.ts +0 -1
- package/components/switch/Switch.js +2 -5
- package/components/switch/Switch.js.map +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/components/tabs/Tabs.d.ts +0 -1
- package/components/tabs/Tabs.js +0 -2
- package/components/tabs/Tabs.js.map +1 -1
- package/components/tabs/TabsCustomContent.d.ts +0 -1
- package/components/tabs/TabsCustomContent.js +5 -8
- package/components/tabs/TabsCustomContent.js.map +1 -1
- package/components/textarea/Textarea.d.ts +0 -1
- package/components/textarea/Textarea.js +2 -5
- package/components/textarea/Textarea.js.map +1 -1
- package/components/toggle-button/ToggleButton.d.ts +0 -1
- package/components/toggle-button/ToggleButton.js +2 -5
- package/components/toggle-button/ToggleButton.js.map +1 -1
- package/components/toggle-button/ToggleButtonGroup.d.ts +0 -1
- package/components/toggle-button/ToggleButtonGroup.js +2 -5
- package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/es/components/accordion/Accordion.d.ts +0 -2
- package/es/components/accordion/Accordion.js +2 -3
- package/es/components/accordion/Accordion.js.map +1 -1
- package/es/components/accordion/AccordionGroup.js +2 -3
- package/es/components/accordion/AccordionGroup.js.map +1 -1
- package/es/components/anchor/Anchor.d.ts +3 -0
- package/es/components/anchor/Anchor.js +21 -15
- package/es/components/anchor/Anchor.js.map +1 -1
- package/es/components/autocomplete/Autocomplete.js +2 -4
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- 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/button/Button.d.ts +0 -4
- package/es/components/button/Button.js +2 -5
- package/es/components/button/Button.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/date-picker/DatePicker.d.ts +0 -1
- package/es/components/date-picker/DatePicker.js +2 -5
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/dropdown/Dropdown.js +2 -5
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/form-row/FormRow.d.ts +0 -1
- package/es/components/form-row/FormRow.js +4 -7
- package/es/components/form-row/FormRow.js.map +1 -1
- package/es/components/form-set/FormSet.d.ts +0 -1
- package/es/components/form-set/FormSet.js +5 -6
- package/es/components/form-set/FormSet.js.map +1 -1
- package/es/components/form-status/FormStatus.d.ts +0 -2
- package/es/components/form-status/FormStatus.js +86 -71
- 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.d.ts +0 -1
- package/es/components/global-status/GlobalStatus.js +4 -9
- 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/ContainerDocs.js +1 -1
- package/es/components/grid/ContainerDocs.js.map +1 -1
- package/es/components/help-button/HelpButtonInstance.js +3 -4
- package/es/components/help-button/HelpButtonInstance.js.map +1 -1
- package/es/components/icon/Icon.js +2 -3
- package/es/components/icon/Icon.js.map +1 -1
- package/es/components/input/Input.d.ts +0 -1
- package/es/components/input/Input.js +2 -5
- package/es/components/input/Input.js.map +1 -1
- package/es/components/input-masked/InputMasked.d.ts +0 -1
- package/es/components/logo/Logo.js +5 -8
- package/es/components/logo/Logo.js.map +1 -1
- package/es/components/modal/Modal.d.ts +0 -1
- package/es/components/modal/Modal.js +1 -2
- package/es/components/modal/Modal.js.map +1 -1
- package/es/components/modal/types.d.ts +0 -4
- package/es/components/modal/types.js.map +1 -1
- package/es/components/number-format/NumberFormat.js +4 -7
- package/es/components/number-format/NumberFormat.js.map +1 -1
- package/es/components/pagination/Pagination.d.ts +0 -3
- package/es/components/pagination/Pagination.js +2 -5
- package/es/components/pagination/Pagination.js.map +1 -1
- package/es/components/radio/Radio.d.ts +0 -1
- package/es/components/radio/Radio.js +2 -5
- package/es/components/radio/Radio.js.map +1 -1
- package/es/components/radio/RadioGroup.d.ts +0 -1
- package/es/components/radio/RadioGroup.js +2 -5
- package/es/components/radio/RadioGroup.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/skeleton/Skeleton.d.ts +0 -1
- package/es/components/skeleton/Skeleton.js +2 -5
- package/es/components/skeleton/Skeleton.js.map +1 -1
- 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/switch/Switch.d.ts +0 -1
- package/es/components/switch/Switch.js +2 -5
- package/es/components/switch/Switch.js.map +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/components/tabs/Tabs.d.ts +0 -1
- package/es/components/tabs/Tabs.js +0 -2
- package/es/components/tabs/Tabs.js.map +1 -1
- package/es/components/tabs/TabsCustomContent.d.ts +0 -1
- package/es/components/tabs/TabsCustomContent.js +5 -8
- package/es/components/tabs/TabsCustomContent.js.map +1 -1
- package/es/components/textarea/Textarea.d.ts +0 -1
- package/es/components/textarea/Textarea.js +2 -5
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/components/toggle-button/ToggleButton.d.ts +0 -1
- package/es/components/toggle-button/ToggleButton.js +2 -5
- package/es/components/toggle-button/ToggleButton.js.map +1 -1
- package/es/components/toggle-button/ToggleButtonGroup.d.ts +0 -1
- package/es/components/toggle-button/ToggleButtonGroup.js +2 -5
- package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +1 -0
- 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 +19 -2
- 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/Boolean/Boolean.d.ts +2 -2
- package/es/extensions/forms/Field/Boolean/Boolean.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 +21 -18
- 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/Number/style/dnb-number.css +10 -0
- package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/es/extensions/forms/Field/Number/style/dnb-number.scss +11 -0
- package/es/extensions/forms/Field/Password/Password.js +2 -1
- package/es/extensions/forms/Field/Password/Password.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.js +2 -3
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.d.ts +2 -2
- package/es/extensions/forms/Field/Toggle/Toggle.js +10 -2
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -0
- 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 -0
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -1
- package/es/extensions/forms/Form/Appearance/Appearance.d.ts +3 -0
- package/es/extensions/forms/Form/Appearance/Appearance.js +1 -0
- package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
- package/es/extensions/forms/Form/FieldProps/FieldProps.d.ts +5 -1
- package/es/extensions/forms/Form/FieldProps/FieldProps.js +15 -20
- package/es/extensions/forms/Form/FieldProps/FieldProps.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 +1 -9
- package/es/extensions/forms/Form/Section/Section.js +17 -10
- package/es/extensions/forms/Form/Section/Section.js.map +1 -1
- package/es/extensions/forms/Form/Section/SectionContext.d.ts +3 -3
- package/es/extensions/forms/Form/Section/SectionContext.js.map +1 -1
- package/es/extensions/forms/Form/Section/SectionDocs.js +10 -0
- package/es/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
- 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/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/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/ListAllProps.js +3 -3
- package/es/extensions/forms/Tools/ListAllProps.js.map +1 -1
- 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 +16 -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 +81 -34
- 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 +8 -5
- 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 -1
- package/es/extensions/forms/blocks/index.js +1 -1
- package/es/extensions/forms/blocks/index.js.map +1 -1
- 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/useFieldProps.js +12 -8
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/useValueProps.js +4 -3
- package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +15 -2
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +10 -4
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/payment-card/PaymentCard.js +0 -2
- package/es/extensions/payment-card/PaymentCard.js.map +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +0 -1
- package/es/fragments/drawer-list/DrawerList.js +6 -13
- package/es/fragments/drawer-list/DrawerList.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.d.ts +43 -46
- package/es/fragments/drawer-list/DrawerListHelpers.js +2 -4
- 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 +1 -1
- package/es/shared/Context.js +2 -2
- 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 +49 -13
- 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 +15 -2
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +15 -2
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +67 -15
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +15 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +15 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +132 -74
- 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 +15 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +15 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +67 -15
- package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/es/style/themes/theme-ui/ui-theme-extensions.css +15 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +15 -2
- 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 +1 -0
- 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 +19 -2
- 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/Boolean/Boolean.d.ts +2 -2
- package/extensions/forms/Field/Boolean/Boolean.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 +21 -18
- 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/Number/style/dnb-number.css +10 -0
- package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/extensions/forms/Field/Number/style/dnb-number.scss +11 -0
- package/extensions/forms/Field/Password/Password.js +2 -1
- package/extensions/forms/Field/Password/Password.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.js +2 -3
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.d.ts +2 -2
- package/extensions/forms/Field/Toggle/Toggle.js +10 -2
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -0
- 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 -0
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -1
- package/extensions/forms/Form/Appearance/Appearance.d.ts +3 -0
- package/extensions/forms/Form/Appearance/Appearance.js +1 -0
- package/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
- package/extensions/forms/Form/FieldProps/FieldProps.d.ts +5 -1
- package/extensions/forms/Form/FieldProps/FieldProps.js +15 -21
- package/extensions/forms/Form/FieldProps/FieldProps.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 +1 -9
- package/extensions/forms/Form/Section/Section.js +22 -10
- package/extensions/forms/Form/Section/Section.js.map +1 -1
- package/extensions/forms/Form/Section/SectionContext.d.ts +3 -3
- package/extensions/forms/Form/Section/SectionContext.js.map +1 -1
- package/extensions/forms/Form/Section/SectionDocs.js +10 -0
- package/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
- package/extensions/forms/Form/SubHeading/SubHeading.js +1 -0
- package/extensions/forms/Form/SubHeading/SubHeading.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/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/ListAllProps.js +3 -3
- package/extensions/forms/Tools/ListAllProps.js.map +1 -1
- 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 +16 -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 +89 -41
- 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 +8 -5
- 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 -1
- package/extensions/forms/blocks/index.js +1 -3
- package/extensions/forms/blocks/index.js.map +1 -1
- 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/useFieldProps.js +12 -7
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/useValueProps.js +4 -3
- package/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +15 -2
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +10 -4
- package/extensions/forms/types.js.map +1 -1
- package/extensions/payment-card/PaymentCard.js +0 -2
- package/extensions/payment-card/PaymentCard.js.map +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +0 -1
- package/fragments/drawer-list/DrawerList.js +6 -13
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.d.ts +43 -46
- package/fragments/drawer-list/DrawerListHelpers.js +2 -4
- 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 +1 -1
- package/shared/Context.js +2 -2
- 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 +49 -13
- 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 +15 -2
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +15 -2
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +67 -15
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +15 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +15 -2
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +132 -74
- 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 +15 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +15 -2
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +67 -15
- package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/style/themes/theme-ui/ui-theme-extensions.css +15 -2
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +15 -2
- 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/blocks/Category/FirstBlock/FirstBlock.d.ts +0 -2
- package/cjs/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js +0 -46
- package/cjs/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js.map +0 -1
- package/cjs/extensions/forms/blocks/Category/FirstBlock/index.d.ts +0 -2
- package/cjs/extensions/forms/blocks/Category/FirstBlock/index.js.map +0 -1
- package/cjs/extensions/forms/blocks/Category/index.d.ts +0 -1
- package/cjs/extensions/forms/blocks/Category/index.js +0 -14
- package/cjs/extensions/forms/blocks/Category/index.js.map +0 -1
- package/es/extensions/forms/blocks/Category/FirstBlock/FirstBlock.d.ts +0 -2
- package/es/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js +0 -39
- package/es/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js.map +0 -1
- package/es/extensions/forms/blocks/Category/FirstBlock/index.d.ts +0 -2
- package/es/extensions/forms/blocks/Category/FirstBlock/index.js +0 -3
- package/es/extensions/forms/blocks/Category/FirstBlock/index.js.map +0 -1
- package/es/extensions/forms/blocks/Category/index.d.ts +0 -1
- package/es/extensions/forms/blocks/Category/index.js +0 -1
- package/es/extensions/forms/blocks/Category/index.js.map +0 -1
- package/extensions/forms/blocks/Category/FirstBlock/FirstBlock.d.ts +0 -2
- package/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js +0 -39
- package/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js.map +0 -1
- package/extensions/forms/blocks/Category/FirstBlock/index.d.ts +0 -2
- package/extensions/forms/blocks/Category/FirstBlock/index.js +0 -3
- package/extensions/forms/blocks/Category/FirstBlock/index.js.map +0 -1
- package/extensions/forms/blocks/Category/index.d.ts +0 -1
- package/extensions/forms/blocks/Category/index.js +0 -1
- package/extensions/forms/blocks/Category/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en-GB.js","names":["SubmitButton","text","sendText","Step","next","previous","edit","summaryTitle","Form","errorSummaryTitle","Iterate","remove","done","cancel","Field","stateSummary","errorSummary","errorRequired","errorPattern","StringField","errorMinLength","errorMaxLength","NumberField","errorMinimum","errorMaximum","errorExclusiveMinimum","errorExclusiveMaximum","errorMultipleOf","BooleanField","yes","no","Date","label","Expiry","Email","FirstName","LastName","CompanyName","NationalIdentityNumber","OrganizationNumber","BankAccountNumber","PhoneNumber","countryCodeLabel","warningRequired","PostalCodeAndCity","PostalCode","City","SelectCountry","placeholder","Password","ariaLabelShow","ariaLabelHide"],"sources":["../../../../../../src/extensions/forms/constants/locales/en-GB.ts"],"sourcesContent":["export default {\n 'en-GB': {\n /**\n * General\n */\n SubmitButton: {\n text: 'Send',\n sendText: 'Send',\n },\n Step: {\n next: 'Next',\n previous: 'Back',\n edit: 'Edit',\n summaryTitle: 'Summary',\n },\n Form: {\n errorSummaryTitle: 'Please correct the following errors',\n },\n Iterate: {\n remove: 'Remove',\n done: 'Done',\n cancel: 'Cancel',\n edit: 'Edit',\n },\n\n /**\n * Base fields\n */\n Field: {\n stateSummary: 'Summary:',\n errorSummary: 'Please correct the following errors:',\n errorRequired: 'This field is required.',\n errorPattern: 'The value is invalid.',\n },\n StringField: {\n errorMinLength:\n 'The value
|
|
1
|
+
{"version":3,"file":"en-GB.js","names":["SubmitButton","text","sendText","Step","next","previous","edit","summaryTitle","Form","errorSummaryTitle","Iterate","remove","done","cancel","Field","stateSummary","errorSummary","errorRequired","errorPattern","StringField","errorMinLength","errorMaxLength","NumberField","errorMinimum","errorMaximum","errorExclusiveMinimum","errorExclusiveMaximum","errorMultipleOf","BooleanField","yes","no","Date","label","Expiry","Email","FirstName","LastName","CompanyName","NationalIdentityNumber","OrganizationNumber","BankAccountNumber","PhoneNumber","countryCodeLabel","warningRequired","PostalCodeAndCity","PostalCode","City","SelectCountry","placeholder","Password","ariaLabelShow","ariaLabelHide"],"sources":["../../../../../../src/extensions/forms/constants/locales/en-GB.ts"],"sourcesContent":["export default {\n 'en-GB': {\n /**\n * General\n */\n SubmitButton: {\n text: 'Send',\n sendText: 'Send',\n },\n Step: {\n next: 'Next',\n previous: 'Back',\n edit: 'Edit',\n summaryTitle: 'Summary',\n },\n Form: {\n errorSummaryTitle: 'Please correct the following errors',\n },\n Iterate: {\n remove: 'Remove',\n done: 'Done',\n cancel: 'Cancel',\n edit: 'Edit',\n },\n\n /**\n * Base fields\n */\n Field: {\n stateSummary: 'Summary:',\n errorSummary: 'Please correct the following errors:',\n errorRequired: 'This field is required.',\n errorPattern: 'The value is invalid.',\n },\n StringField: {\n errorMinLength:\n 'The value can not be shorter than {minLength} characters.',\n errorMaxLength:\n 'The value can not be longer than {maxLength} characters.',\n },\n NumberField: {\n errorMinimum: 'The value must be at least {minimum}.',\n errorMaximum: 'The value must be a maximum of {maximum}.',\n errorExclusiveMinimum:\n 'The value must be greater than {exclusiveMinimum}.',\n errorExclusiveMaximum:\n 'The value must be less than {exclusiveMaximum}.',\n errorMultipleOf: 'The value must be a multiple of {multipleOf}.',\n },\n BooleanField: {\n yes: 'Yes',\n no: 'No',\n },\n\n /**\n * Feature fields\n */\n Date: {\n label: 'Date',\n errorRequired: 'You must provide a valid date.',\n },\n Expiry: {\n label: 'Expiry date',\n },\n Email: {\n label: 'Email address',\n errorRequired: 'You must enter a Email address.',\n errorPattern: 'Invalid Email address. Enter a valid Email address.',\n },\n FirstName: {\n label: 'Given name',\n errorRequired: 'You must enter a given name (first name).',\n errorPattern:\n 'Enter a given name (first name) using only letters and characters such as hyphens and spaces.',\n },\n LastName: {\n label: 'Surname',\n errorRequired: 'You must enter a surname (last name).',\n errorPattern:\n 'Enter a surname (last name) using only letters and characters such as hyphens and spaces.',\n },\n CompanyName: {\n label: 'Company name',\n errorRequired: 'You must enter a company name.',\n },\n NationalIdentityNumber: {\n label: 'National identity number (11 digits)',\n errorRequired:\n 'Invalid national identity number. Enter a valid 11-digit number.',\n },\n OrganizationNumber: {\n label: 'Organisation number',\n errorRequired: 'You must enter an organisation number.',\n errorPattern: 'This is not a valid organisation number.',\n },\n BankAccountNumber: {\n label: 'Bank account',\n errorRequired:\n 'Enter a valid account number. Account number is mandatory to fill out.',\n errorPattern: 'This is not a valid bank account number.',\n },\n PhoneNumber: {\n label: 'Mobile number',\n countryCodeLabel: 'Country code',\n errorRequired:\n 'Mobile number must be filled in. If you don’t have a mobile number, you can enter another phone number.',\n warningRequired:\n 'You have not entered a mobile number. You can still use this number if it is correct.',\n },\n PostalCodeAndCity: {\n label: 'Postcode and city',\n },\n PostalCode: {\n label: 'Postc.',\n errorRequired: 'You must enter a postcode.',\n errorPattern: 'This is not a valid postcode (four-digits).',\n },\n City: {\n label: 'City',\n errorRequired: 'You must enter a city name.',\n errorPattern:\n 'City names can only contain letters and valid characters such as hyphens and spaces.',\n },\n SelectCountry: {\n label: 'Country',\n placeholder: 'Select country',\n errorRequired: 'You must select a country from the list.',\n },\n Password: {\n label: 'Password',\n ariaLabelShow: 'Show password',\n ariaLabelHide: 'Hide password',\n },\n },\n}\n"],"mappings":"AAAA,eAAe;EACb,OAAO,EAAE;IAIPA,YAAY,EAAE;MACZC,IAAI,EAAE,MAAM;MACZC,QAAQ,EAAE;IACZ,CAAC;IACDC,IAAI,EAAE;MACJC,IAAI,EAAE,MAAM;MACZC,QAAQ,EAAE,MAAM;MAChBC,IAAI,EAAE,MAAM;MACZC,YAAY,EAAE;IAChB,CAAC;IACDC,IAAI,EAAE;MACJC,iBAAiB,EAAE;IACrB,CAAC;IACDC,OAAO,EAAE;MACPC,MAAM,EAAE,QAAQ;MAChBC,IAAI,EAAE,MAAM;MACZC,MAAM,EAAE,QAAQ;MAChBP,IAAI,EAAE;IACR,CAAC;IAKDQ,KAAK,EAAE;MACLC,YAAY,EAAE,UAAU;MACxBC,YAAY,EAAE,sCAAsC;MACpDC,aAAa,EAAE,yBAAyB;MACxCC,YAAY,EAAE;IAChB,CAAC;IACDC,WAAW,EAAE;MACXC,cAAc,EACZ,2DAA2D;MAC7DC,cAAc,EACZ;IACJ,CAAC;IACDC,WAAW,EAAE;MACXC,YAAY,EAAE,uCAAuC;MACrDC,YAAY,EAAE,2CAA2C;MACzDC,qBAAqB,EACnB,oDAAoD;MACtDC,qBAAqB,EACnB,iDAAiD;MACnDC,eAAe,EAAE;IACnB,CAAC;IACDC,YAAY,EAAE;MACZC,GAAG,EAAE,KAAK;MACVC,EAAE,EAAE;IACN,CAAC;IAKDC,IAAI,EAAE;MACJC,KAAK,EAAE,MAAM;MACbf,aAAa,EAAE;IACjB,CAAC;IACDgB,MAAM,EAAE;MACND,KAAK,EAAE;IACT,CAAC;IACDE,KAAK,EAAE;MACLF,KAAK,EAAE,eAAe;MACtBf,aAAa,EAAE,iCAAiC;MAChDC,YAAY,EAAE;IAChB,CAAC;IACDiB,SAAS,EAAE;MACTH,KAAK,EAAE,YAAY;MACnBf,aAAa,EAAE,2CAA2C;MAC1DC,YAAY,EACV;IACJ,CAAC;IACDkB,QAAQ,EAAE;MACRJ,KAAK,EAAE,SAAS;MAChBf,aAAa,EAAE,uCAAuC;MACtDC,YAAY,EACV;IACJ,CAAC;IACDmB,WAAW,EAAE;MACXL,KAAK,EAAE,cAAc;MACrBf,aAAa,EAAE;IACjB,CAAC;IACDqB,sBAAsB,EAAE;MACtBN,KAAK,EAAE,sCAAsC;MAC7Cf,aAAa,EACX;IACJ,CAAC;IACDsB,kBAAkB,EAAE;MAClBP,KAAK,EAAE,qBAAqB;MAC5Bf,aAAa,EAAE,wCAAwC;MACvDC,YAAY,EAAE;IAChB,CAAC;IACDsB,iBAAiB,EAAE;MACjBR,KAAK,EAAE,cAAc;MACrBf,aAAa,EACX,wEAAwE;MAC1EC,YAAY,EAAE;IAChB,CAAC;IACDuB,WAAW,EAAE;MACXT,KAAK,EAAE,eAAe;MACtBU,gBAAgB,EAAE,cAAc;MAChCzB,aAAa,EACX,yGAAyG;MAC3G0B,eAAe,EACb;IACJ,CAAC;IACDC,iBAAiB,EAAE;MACjBZ,KAAK,EAAE;IACT,CAAC;IACDa,UAAU,EAAE;MACVb,KAAK,EAAE,QAAQ;MACff,aAAa,EAAE,4BAA4B;MAC3CC,YAAY,EAAE;IAChB,CAAC;IACD4B,IAAI,EAAE;MACJd,KAAK,EAAE,MAAM;MACbf,aAAa,EAAE,6BAA6B;MAC5CC,YAAY,EACV;IACJ,CAAC;IACD6B,aAAa,EAAE;MACbf,KAAK,EAAE,SAAS;MAChBgB,WAAW,EAAE,gBAAgB;MAC7B/B,aAAa,EAAE;IACjB,CAAC;IACDgC,QAAQ,EAAE;MACRjB,KAAK,EAAE,UAAU;MACjBkB,aAAa,EAAE,eAAe;MAC9BC,aAAa,EAAE;IACjB;EACF;AACF,CAAC"}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
export const dataValueProperties = {
|
|
2
2
|
value: {
|
|
3
|
-
doc: 'Source data value for the
|
|
3
|
+
doc: 'Source data value for the field Will take precedence over the path value given in the data context..',
|
|
4
4
|
type: '{valueType}',
|
|
5
5
|
status: 'optional'
|
|
6
6
|
},
|
|
7
|
-
|
|
8
|
-
doc: '
|
|
9
|
-
type: '
|
|
7
|
+
defaultValue: {
|
|
8
|
+
doc: 'Default source data value for the field. Will not take precedence over the path value given in the data context.',
|
|
9
|
+
type: '{valueType}',
|
|
10
10
|
status: 'optional'
|
|
11
11
|
},
|
|
12
|
-
|
|
13
|
-
doc: '
|
|
12
|
+
path: {
|
|
13
|
+
doc: 'JSON Pointer for where the data for the field is located in the source dataset (when using Form.Handler or DataContext). The `path` will also be set as the `name` attribute for the [string](/uilib/extensions/forms/base-fields/String/)-field.',
|
|
14
14
|
type: 'string',
|
|
15
15
|
status: 'optional'
|
|
16
16
|
},
|
|
17
17
|
info: {
|
|
18
|
-
doc: 'Info message shown below / after the
|
|
18
|
+
doc: 'Info message shown below / after the field.',
|
|
19
19
|
type: 'React.Node',
|
|
20
20
|
status: 'optional'
|
|
21
21
|
},
|
|
22
22
|
warning: {
|
|
23
|
-
doc: 'Warning message shown below / after the
|
|
23
|
+
doc: 'Warning message shown below / after the field.',
|
|
24
24
|
type: 'React.Node',
|
|
25
25
|
status: 'optional'
|
|
26
26
|
},
|
|
27
27
|
error: {
|
|
28
|
-
doc: 'Error message shown below / after the
|
|
28
|
+
doc: 'Error message shown below / after the field.',
|
|
29
29
|
type: 'Error',
|
|
30
30
|
status: 'optional'
|
|
31
31
|
},
|
|
@@ -40,7 +40,7 @@ export const dataValueProperties = {
|
|
|
40
40
|
status: 'optional'
|
|
41
41
|
},
|
|
42
42
|
required: {
|
|
43
|
-
doc: 'When set `true`, the
|
|
43
|
+
doc: 'When set `true`, the field will give an error if the value cannot be empty.',
|
|
44
44
|
type: 'boolean',
|
|
45
45
|
status: 'optional'
|
|
46
46
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataValueDocs.js","names":["dataValueProperties","value","doc","type","status","
|
|
1
|
+
{"version":3,"file":"DataValueDocs.js","names":["dataValueProperties","value","doc","type","status","defaultValue","path","info","warning","error","disabled","emptyValue","required","schema","validateInitially","validateUnchanged","continuousValidation","errorMessages","validator","onBlurValidator","transformIn","transformOut","dataValueEvents","onChange","onFocus","onBlur"],"sources":["../../../../../src/extensions/forms/hooks/DataValueDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const dataValueProperties: PropertiesTableProps = {\n value: {\n doc: 'Source data value for the field Will take precedence over the path value given in the data context..',\n type: '{valueType}',\n status: 'optional',\n },\n defaultValue: {\n doc: 'Default source data value for the field. Will not take precedence over the path value given in the data context.',\n type: '{valueType}',\n status: 'optional',\n },\n path: {\n doc: 'JSON Pointer for where the data for the field is located in the source dataset (when using Form.Handler or DataContext). The `path` will also be set as the `name` attribute for the [string](/uilib/extensions/forms/base-fields/String/)-field.',\n type: 'string',\n status: 'optional',\n },\n info: {\n doc: 'Info message shown below / after the field.',\n type: 'React.Node',\n status: 'optional',\n },\n warning: {\n doc: 'Warning message shown below / after the field.',\n type: 'React.Node',\n status: 'optional',\n },\n error: {\n doc: 'Error message shown below / after the field.',\n type: 'Error',\n status: 'optional',\n },\n disabled: {\n doc: 'Set `true` to show the field but without the possibility of changing the value.',\n type: 'boolean',\n status: 'optional',\n },\n emptyValue: {\n doc: 'The value to use (in `onChange` events etc) when emptying the field. Makes it possible for instance to provide `undefined` instead of an empty string when clearing the content of a text input.',\n type: 'any',\n status: 'optional',\n },\n required: {\n doc: 'When set `true`, the field will give an error if the value cannot be empty.',\n type: 'boolean',\n status: 'optional',\n },\n schema: {\n doc: 'Custom JSON Schema for validating the value.',\n type: 'object',\n status: 'optional',\n },\n validateInitially: {\n doc: 'Set `true` to show validation based errors initially (from given value-prop or source data) before the user interacts with the field.',\n type: 'boolean',\n status: 'optional',\n },\n validateUnchanged: {\n doc: 'Set `true` to show validation based errors when the field is touched (like focusing a field and blurring) without having changed the value. Since the user did not introduce a new error, this will apply when the value was initially invalid based on validation.',\n type: 'boolean',\n status: 'optional',\n },\n continuousValidation: {\n doc: 'Set `true` to show validation based errors continuously while writing, not just when blurring the field.',\n type: 'boolean',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Custom error messages for each type of error, overriding default messages.',\n type: 'object',\n status: 'optional',\n },\n validator: {\n doc: 'Custom validator function that will be called for every change done by the user. Can be asynchronous or synchronous.',\n type: 'function',\n status: 'optional',\n },\n onBlurValidator: {\n doc: 'Custom validator function that will be called when the user leaves the field (blurring a text input, closing a dropdown etc). Can be asynchronous or synchronous.',\n type: 'function',\n status: 'optional',\n },\n transformIn: {\n doc: 'transforms the `value` before its displayed in the field (e.g. input).',\n type: 'function',\n status: 'optional',\n },\n transformOut: {\n doc: 'transforms the value before it gets forwarded to the form data object or returned as the `onChange` value parameter.',\n type: 'function',\n status: 'optional',\n },\n}\n\nexport const dataValueEvents: PropertiesTableProps = {\n onChange: {\n doc: \"Will be called on value changes made by the user, with the new value as argument. When an `async` function is used, the corresponding [FieldBlock](/uilib/extensions/forms/create-component/FieldBlock/) will show an indicator on the field label. You can return `{ success: 'saved' } as const` to show a success symbol, or an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const`.\",\n type: 'function',\n status: 'optional',\n },\n onFocus: {\n doc: 'Will be called when the component gets into focus. Like clicking inside a text input or opening a dropdown. Called with active value as argument.',\n type: 'function',\n status: 'optional',\n },\n onBlur: {\n doc: 'Will be called when the component stop being in focus. Like when going to next field, or closing a dropdown. Called with active value as argument.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,mBAAyC,GAAG;EACvDC,KAAK,EAAE;IACLC,GAAG,EAAE,sGAAsG;IAC3GC,IAAI,EAAE,aAAa;IACnBC,MAAM,EAAE;EACV,CAAC;EACDC,YAAY,EAAE;IACZH,GAAG,EAAE,kHAAkH;IACvHC,IAAI,EAAE,aAAa;IACnBC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAE;IACJJ,GAAG,EAAE,mPAAmP;IACxPC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,IAAI,EAAE;IACJL,GAAG,EAAE,6CAA6C;IAClDC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDI,OAAO,EAAE;IACPN,GAAG,EAAE,gDAAgD;IACrDC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDK,KAAK,EAAE;IACLP,GAAG,EAAE,8CAA8C;IACnDC,IAAI,EAAE,OAAO;IACbC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,UAAU,EAAE;IACVT,GAAG,EAAE,kMAAkM;IACvMC,IAAI,EAAE,KAAK;IACXC,MAAM,EAAE;EACV,CAAC;EACDQ,QAAQ,EAAE;IACRV,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDS,MAAM,EAAE;IACNX,GAAG,EAAE,8CAA8C;IACnDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,iBAAiB,EAAE;IACjBZ,GAAG,EAAE,uIAAuI;IAC5IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,iBAAiB,EAAE;IACjBb,GAAG,EAAE,qQAAqQ;IAC1QC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,oBAAoB,EAAE;IACpBd,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDa,aAAa,EAAE;IACbf,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDc,SAAS,EAAE;IACThB,GAAG,EAAE,sHAAsH;IAC3HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDe,eAAe,EAAE;IACfjB,GAAG,EAAE,mKAAmK;IACxKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDgB,WAAW,EAAE;IACXlB,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDiB,YAAY,EAAE;IACZnB,GAAG,EAAE,sHAAsH;IAC3HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMkB,eAAqC,GAAG;EACnDC,QAAQ,EAAE;IACRrB,GAAG,EAAE,kcAAkc;IACvcC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDoB,OAAO,EAAE;IACPtB,GAAG,EAAE,mJAAmJ;IACxJC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDqB,MAAM,EAAE;IACNvB,GAAG,EAAE,oJAAoJ;IACzJC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -27,6 +27,7 @@ import useTranslation from './useTranslation';
|
|
|
27
27
|
import useExternalValue from './useExternalValue';
|
|
28
28
|
export default function useFieldProps(localeProps) {
|
|
29
29
|
var _dataContext$props,
|
|
30
|
+
_useExternalValue,
|
|
30
31
|
_dataContext$ajvInsta,
|
|
31
32
|
_localErrorRef$curren,
|
|
32
33
|
_ref3,
|
|
@@ -40,6 +41,7 @@ export default function useFieldProps(localeProps) {
|
|
|
40
41
|
const {
|
|
41
42
|
path: pathProp,
|
|
42
43
|
value: valueProp,
|
|
44
|
+
defaultValue,
|
|
43
45
|
itemPath,
|
|
44
46
|
emptyValue,
|
|
45
47
|
required: requiredProp,
|
|
@@ -119,7 +121,6 @@ export default function useFieldProps(localeProps) {
|
|
|
119
121
|
} = iterateElementContext !== null && iterateElementContext !== void 0 ? iterateElementContext : {};
|
|
120
122
|
const {
|
|
121
123
|
path: sectionPath,
|
|
122
|
-
handleChange: handleChangeSectionContext,
|
|
123
124
|
errorPrioritization
|
|
124
125
|
} = sectionContext !== null && sectionContext !== void 0 ? sectionContext : {};
|
|
125
126
|
const {
|
|
@@ -135,13 +136,14 @@ export default function useFieldProps(localeProps) {
|
|
|
135
136
|
path: pathProp,
|
|
136
137
|
itemPath
|
|
137
138
|
});
|
|
138
|
-
const
|
|
139
|
+
const defaultValueRef = useRef(defaultValue);
|
|
140
|
+
const externalValue = (_useExternalValue = useExternalValue({
|
|
139
141
|
path,
|
|
140
142
|
itemPath,
|
|
141
143
|
value: valueProp,
|
|
142
144
|
transformers,
|
|
143
145
|
emptyValue
|
|
144
|
-
});
|
|
146
|
+
})) !== null && _useExternalValue !== void 0 ? _useExternalValue : defaultValueRef.current;
|
|
145
147
|
const valueRef = useRef(externalValue);
|
|
146
148
|
const changedRef = useRef(false);
|
|
147
149
|
const hasFocusRef = useRef(false);
|
|
@@ -592,7 +594,6 @@ export default function useFieldProps(localeProps) {
|
|
|
592
594
|
}
|
|
593
595
|
const transformedValue = transformers.current.transformOut(transformers.current.transformValue(fromInput, currentValue));
|
|
594
596
|
changedRef.current = true;
|
|
595
|
-
handleChangeSectionContext === null || handleChangeSectionContext === void 0 ? void 0 : handleChangeSectionContext(identifier, transformedValue);
|
|
596
597
|
if (itemPath) {
|
|
597
598
|
handleChangeIterateContext === null || handleChangeIterateContext === void 0 ? void 0 : handleChangeIterateContext(makeIteratePath(), transformedValue);
|
|
598
599
|
}
|
|
@@ -636,7 +637,7 @@ export default function useFieldProps(localeProps) {
|
|
|
636
637
|
setEventResult(onChange === null || onChange === void 0 ? void 0 : onChange.apply(_this, getArgs()));
|
|
637
638
|
}
|
|
638
639
|
await runPool();
|
|
639
|
-
}, [itemPath, asyncBehaviorIsEnabled, onChange, runPool, handleChangeIterateContext, makeIteratePath,
|
|
640
|
+
}, [itemPath, asyncBehaviorIsEnabled, onChange, runPool, handleChangeIterateContext, makeIteratePath, hideError, updateValue, addToPool, yieldAsyncProcess, defineAsyncProcess, hasError, setEventResult]);
|
|
640
641
|
const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus]);
|
|
641
642
|
const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus]);
|
|
642
643
|
setPropsDataContext === null || setPropsDataContext === void 0 ? void 0 : setPropsDataContext(identifier, props);
|
|
@@ -677,7 +678,7 @@ export default function useFieldProps(localeProps) {
|
|
|
677
678
|
}, [clearErrorState, dataContextError, handleError, persistErrorState, prepareError, validateInitially]);
|
|
678
679
|
useEffect(() => {
|
|
679
680
|
if (hasPath) {
|
|
680
|
-
let value =
|
|
681
|
+
let value = valueProp;
|
|
681
682
|
const hasValue = pointer.has(dataContext.data, identifier);
|
|
682
683
|
const existingValue = hasValue ? pointer.get(dataContext.data, identifier) : undefined;
|
|
683
684
|
if (dataContext.id && !hasValue && typeof existingValue === 'undefined' && typeof value === 'undefined') {
|
|
@@ -690,12 +691,16 @@ export default function useFieldProps(localeProps) {
|
|
|
690
691
|
}
|
|
691
692
|
}
|
|
692
693
|
}
|
|
694
|
+
if (typeof defaultValueRef.current !== 'undefined' && typeof value === 'undefined') {
|
|
695
|
+
value = defaultValueRef.current;
|
|
696
|
+
defaultValueRef.current = undefined;
|
|
697
|
+
}
|
|
693
698
|
if (!hasValue || value !== existingValue && valueRef.current !== existingValue) {
|
|
694
699
|
updateDataValueDataContext === null || updateDataValueDataContext === void 0 ? void 0 : updateDataValueDataContext(identifier, value);
|
|
695
700
|
validateDataDataContext === null || validateDataDataContext === void 0 ? void 0 : validateDataDataContext();
|
|
696
701
|
}
|
|
697
702
|
}
|
|
698
|
-
}, [dataContext.data, dataContext.id,
|
|
703
|
+
}, [dataContext.data, dataContext.id, hasPath, identifier, updateDataValueDataContext, validateDataDataContext, valueProp]);
|
|
699
704
|
useEffect(() => {
|
|
700
705
|
if (dataContext.showAllErrors) {
|
|
701
706
|
if (fieldStateRef.current !== 'validating') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFieldProps.js","names":["useRef","useEffect","useContext","useCallback","useMemo","useReducer","pointer","errorChanged","ajvErrorsToOneFormError","FormError","Context","DataContext","FieldPropsContext","combineDescribedBy","useId","useUpdateEffect","useMountEffect","useUnmountEffect","FieldBlockContext","IterateElementContext","SectionContext","FieldBoundaryContext","useProcessManager","usePath","createSharedState","useSharedState","isAsync","useTranslation","useExternalValue","useFieldProps","localeProps","_dataContext$props","_dataContext$ajvInsta","_localErrorRef$curren","_ref3","_this","_props$path","_props$autoComplete","extend","props","path","pathProp","value","valueProp","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","res","undefined","forceUpdate","startProcess","id","dataContext","fieldBlockContext","iterateElementContext","sectionContext","fieldBoundaryContext","translation","transformers","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","handleChangeSectionContext","errorPrioritization","hasPath","identifier","makeIteratePath","externalValue","valueRef","changedRef","hasFocusRef","paths","split","length","requiredList","schemaPath","slice","join","schemaPart","has","get","push","substring","collected","flatMap","v","filter","some","p","c","includes","showErrorRef","errorMethodRef","localErrorRef","hasLocalErrorRef","dataContextError","contextErrorRef","validatorRef","current","onBlurValidatorRef","schemaValidatorRef","ajvInstance","compile","asyncBehaviorIsEnabled","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","name","asyncBufferRef","key","resolve","validateProcesses","window","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","arguments","pending","fieldStateRef","state","resolveValidatingState","showError","hideError","prepareError","_error$messageValues","message","validationRule","_errorMessagesRef$cur","fieldMessage","errorMessagesRef","messageWithValues","Object","entries","messageValues","reduce","_ref2","replace","hasVisibleError","hasErrorProp","hasError","_ref4","_objectSpread","Field","errorRequired","stateId","persistErrorState","method","errorArg","keys","type","content","showInitially","clearErrorState","callValidator","opts","tmpValue","result","unchangedValue","Error","callOnBlurValidator","valueOverride","prioritizeContextSchema","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","handleError","setHasFocus","hasFocus","yieldAsyncProcess","_ref5","waitFor","Promise","_ref6","processName","withStates","withValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","argFromInput","additionalArgs","currentValue","transformedValue","getArgs","args","apply","handleFocus","handleBlur","handleMountField","handleUnMountField","_dataContext$ajvInsta2","hasValue","data","existingValue","sharedState","sharedValue","showAllErrors","formState","onSubmitHandler","_dataContext$setField","setFieldEventListener","call","show","htmlAttributes","acc","cur","startsWith","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","ids","fieldSectionProps","fieldState","sharedData","set","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport { errorChanged } from '../utils'\nimport { ajvErrorsToOneFormError } from '../utils/ajv'\nimport {\n FormError,\n 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 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 {\n path: sectionPath,\n handleChange: handleChangeSectionContext,\n errorPrioritization,\n } = 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 externalValue = useExternalValue<Value>({\n path,\n itemPath,\n value: valueProp,\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 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 handleChangeSectionContext?.(identifier, transformedValue)\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 handleChangeSectionContext,\n identifier,\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 = props.value\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 !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 identifier,\n hasPath,\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 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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"}
|
|
1
|
+
{"version":3,"file":"useFieldProps.js","names":["useRef","useEffect","useContext","useCallback","useMemo","useReducer","pointer","errorChanged","ajvErrorsToOneFormError","FormError","Context","DataContext","FieldPropsContext","combineDescribedBy","useId","useUpdateEffect","useMountEffect","useUnmountEffect","FieldBlockContext","IterateElementContext","SectionContext","FieldBoundaryContext","useProcessManager","usePath","createSharedState","useSharedState","isAsync","useTranslation","useExternalValue","useFieldProps","localeProps","_dataContext$props","_useExternalValue","_dataContext$ajvInsta","_localErrorRef$curren","_ref3","_this","_props$path","_props$autoComplete","extend","props","path","pathProp","value","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","fromExternal","validateRequired","_ref","res","undefined","forceUpdate","startProcess","id","dataContext","fieldBlockContext","iterateElementContext","sectionContext","fieldBoundaryContext","translation","transformers","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","defaultValueRef","externalValue","current","valueRef","changedRef","hasFocusRef","paths","split","length","requiredList","schemaPath","slice","join","schemaPart","has","get","push","substring","collected","flatMap","v","filter","some","p","c","includes","showErrorRef","errorMethodRef","localErrorRef","hasLocalErrorRef","dataContextError","contextErrorRef","validatorRef","onBlurValidatorRef","schemaValidatorRef","ajvInstance","compile","asyncBehaviorIsEnabled","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","name","asyncBufferRef","key","resolve","validateProcesses","window","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","arguments","pending","fieldStateRef","state","resolveValidatingState","showError","hideError","prepareError","_error$messageValues","message","validationRule","_errorMessagesRef$cur","fieldMessage","errorMessagesRef","messageWithValues","Object","entries","messageValues","reduce","_ref2","replace","hasVisibleError","hasErrorProp","hasError","_ref4","_objectSpread","Field","errorRequired","stateId","persistErrorState","method","errorArg","keys","type","content","showInitially","clearErrorState","callValidator","opts","tmpValue","result","unchangedValue","Error","callOnBlurValidator","valueOverride","prioritizeContextSchema","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","handleError","setHasFocus","hasFocus","yieldAsyncProcess","_ref5","waitFor","Promise","_ref6","processName","withStates","withValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","argFromInput","additionalArgs","currentValue","transformedValue","getArgs","args","apply","handleFocus","handleBlur","handleMountField","handleUnMountField","_dataContext$ajvInsta2","hasValue","data","existingValue","sharedState","sharedValue","showAllErrors","formState","onSubmitHandler","_dataContext$setField","setFieldEventListener","call","show","htmlAttributes","acc","cur","startsWith","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","ids","fieldSectionProps","fieldState","sharedData","set","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport { errorChanged } from '../utils'\nimport { ajvErrorsToOneFormError } from '../utils/ajv'\nimport {\n FormError,\n 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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"}
|