@dnb/eufemia 10.54.0 → 10.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/cjs/components/ListFormat.d.ts +12 -0
- package/cjs/components/ListFormat.js +24 -0
- package/cjs/components/ListFormat.js.map +1 -0
- package/cjs/components/anchor/Anchor.js +1 -1
- package/cjs/components/anchor/Anchor.js.map +1 -1
- package/cjs/components/autocomplete/Autocomplete.js +3 -3
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/card/Card.js +14 -5
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/card/CardContext.d.ts +6 -0
- package/cjs/components/card/CardContext.js +12 -0
- package/cjs/components/card/CardContext.js.map +1 -0
- package/cjs/components/card/CardDocs.js +2 -2
- package/cjs/components/card/CardDocs.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 +5 -0
- package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +3 -0
- package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
- package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +5 -0
- package/cjs/components/card/style/themes/dnb-card-theme-ui.css +5 -0
- package/cjs/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
- package/cjs/components/card/style/themes/dnb-card-theme-ui.scss +7 -0
- package/cjs/components/country-flag/CountryFlagDocs.js +5 -0
- package/cjs/components/country-flag/CountryFlagDocs.js.map +1 -1
- package/cjs/components/date-picker/DatePicker.d.ts +261 -291
- package/cjs/components/date-picker/DatePicker.js +346 -482
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerAddon.d.ts +21 -20
- package/cjs/components/date-picker/DatePickerAddon.js +66 -84
- package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalc.d.ts +19 -21
- package/cjs/components/date-picker/DatePickerCalc.js +44 -44
- package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendar.d.ts +73 -39
- package/cjs/components/date-picker/DatePickerCalendar.js +391 -535
- package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/cjs/components/date-picker/DatePickerContext.d.ts +26 -2
- package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
- package/cjs/components/date-picker/DatePickerFooter.d.ts +20 -18
- package/cjs/components/date-picker/DatePickerFooter.js +92 -117
- package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.d.ts +56 -64
- package/cjs/components/date-picker/DatePickerInput.js +515 -533
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/date-picker/DatePickerOld.d.ts +334 -0
- package/cjs/components/date-picker/DatePickerOld.js +538 -0
- package/cjs/components/date-picker/DatePickerOld.js.map +1 -0
- package/cjs/components/date-picker/DatePickerProvider.d.ts +40 -17
- package/cjs/components/date-picker/DatePickerProvider.js +125 -236
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/DatePickerRange.d.ts +22 -20
- package/cjs/components/date-picker/DatePickerRange.js +61 -144
- package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
- package/cjs/components/date-picker/hooks/useDates.d.ts +45 -0
- package/cjs/components/date-picker/hooks/useDates.js +182 -0
- package/cjs/components/date-picker/hooks/useDates.js.map +1 -0
- package/cjs/components/date-picker/hooks/useLastEventCallCache.d.ts +9 -0
- package/cjs/components/date-picker/hooks/useLastEventCallCache.js +16 -0
- package/cjs/components/date-picker/hooks/useLastEventCallCache.js.map +1 -0
- package/cjs/components/date-picker/hooks/useViews.d.ts +20 -0
- package/cjs/components/date-picker/hooks/useViews.js +84 -0
- package/cjs/components/date-picker/hooks/useViews.js.map +1 -0
- package/cjs/components/date-picker/style/dnb-date-picker.css +12 -1
- package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/cjs/components/dropdown/Dropdown.js +3 -3
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/flex/StackDocs.d.ts +2 -0
- package/cjs/components/flex/StackDocs.js +30 -0
- package/cjs/components/flex/StackDocs.js.map +1 -0
- package/cjs/components/form-row/FormRow.js +3 -3
- package/cjs/components/form-row/FormRow.js.map +1 -1
- package/cjs/components/form-row/style/dnb-form-row.css +12 -1
- package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
- package/cjs/components/form-status/FormStatus.d.ts +4 -1
- package/cjs/components/icon/style/dnb-icon.scss +1 -1
- package/cjs/components/index.d.ts +2 -1
- package/cjs/components/index.js +7 -0
- package/cjs/components/index.js.map +1 -1
- package/cjs/components/input-masked/TextMask.d.ts +2 -1
- package/cjs/components/input-masked/style/dnb-input-masked.css +12 -1
- package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
- package/cjs/components/lib.d.ts +3 -1
- package/cjs/components/lib.js +8 -0
- package/cjs/components/lib.js.map +1 -1
- package/cjs/components/list-format/ListFormat.d.ts +40 -0
- package/cjs/components/list-format/ListFormat.js +122 -0
- package/cjs/components/list-format/ListFormat.js.map +1 -0
- package/cjs/components/list-format/ListFormatDocs.d.ts +2 -0
- package/cjs/components/list-format/ListFormatDocs.js +35 -0
- package/cjs/components/list-format/ListFormatDocs.js.map +1 -0
- package/cjs/components/list-format/index.d.ts +7 -0
- package/cjs/components/list-format/index.js +24 -0
- package/cjs/components/list-format/index.js.map +1 -0
- package/cjs/components/number-format/NumberUtils.js +1 -1
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/radio/style/dnb-radio.css +12 -1
- package/cjs/components/radio/style/dnb-radio.min.css +1 -1
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/cjs/components/textarea/Textarea.js +3 -3
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButton.js +3 -3
- package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
- package/cjs/components/toggle-button/style/dnb-toggle-button.css +12 -1
- package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/cjs/components/upload/Upload.js +2 -1
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/UploadContext.d.ts +1 -0
- package/cjs/components/upload/UploadContext.js +2 -1
- package/cjs/components/upload/UploadContext.js.map +1 -1
- package/cjs/components/upload/UploadDocs.js +5 -0
- package/cjs/components/upload/UploadDocs.js.map +1 -1
- package/cjs/components/upload/UploadDropzone.js.map +1 -1
- package/cjs/components/upload/UploadFileList.js +3 -1
- package/cjs/components/upload/UploadFileList.js.map +1 -1
- package/cjs/components/upload/UploadFileListCell.d.ts +22 -3
- package/cjs/components/upload/UploadFileListCell.js +17 -8
- package/cjs/components/upload/UploadFileListCell.js.map +1 -1
- package/cjs/components/upload/UploadInfo.js +7 -4
- package/cjs/components/upload/UploadInfo.js.map +1 -1
- package/cjs/components/upload/UploadVerify.d.ts +2 -2
- package/cjs/components/upload/UploadVerify.js.map +1 -1
- package/cjs/components/upload/style/dnb-upload.css +1 -1
- package/cjs/components/upload/style/dnb-upload.min.css +1 -1
- package/cjs/components/upload/style/dnb-upload.scss +1 -1
- package/cjs/components/upload/types.d.ts +11 -5
- package/cjs/components/upload/types.js.map +1 -1
- package/cjs/components/upload/useUpload.d.ts +6 -6
- package/cjs/components/upload/useUpload.js.map +1 -1
- package/cjs/elements/lists/style/lists-mixins.scss +1 -0
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +11 -14
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +3 -4
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +4 -4
- package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +3 -2
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Composition/CompositionDocs.js +1 -1
- package/cjs/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +4 -12
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +6 -14
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/FieldDocs.d.ts +2 -2
- package/cjs/extensions/forms/Field/FieldDocs.js +10 -10
- package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -1
- package/cjs/extensions/forms/Field/Number/Number.js +7 -19
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/style/dnb-number.css +0 -3
- package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +0 -2
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -10
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +3 -3
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.js +6 -3
- package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +10 -3
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +14 -12
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +5 -13
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Slider/Slider.d.ts +2 -1
- package/cjs/extensions/forms/Field/Slider/Slider.js +0 -13
- package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.d.ts +2 -1
- package/cjs/extensions/forms/Field/String/String.js +7 -20
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -18
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.d.ts +4 -3
- package/cjs/extensions/forms/Field/Upload/Upload.js +2 -12
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +45 -6
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +39 -20
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +3 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -5
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +34 -11
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +56 -13
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.css +7 -0
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.min.css +1 -0
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.scss +10 -0
- package/cjs/extensions/forms/Form/Section/EditContainer/CancelButton.d.ts +1 -0
- package/cjs/extensions/forms/Form/Section/EditContainer/{EditToolbarTools.js → CancelButton.js} +15 -41
- package/cjs/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -0
- package/cjs/extensions/forms/Form/Section/EditContainer/DoneButton.d.ts +1 -0
- package/cjs/extensions/forms/Form/Section/EditContainer/DoneButton.js +52 -0
- package/cjs/extensions/forms/Form/Section/EditContainer/DoneButton.js.map +1 -0
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +11 -4
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/Section.d.ts +4 -2
- package/cjs/extensions/forms/Form/Section/Section.js +2 -0
- package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/Toolbar/Toolbar.d.ts +7 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/Toolbar.js +68 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/Toolbar.js.map +1 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarContext.d.ts +9 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarContext.js +12 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarContext.js.map +1 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarDocs.d.ts +3 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js +11 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js.map +1 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/index.d.ts +2 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/index.js +27 -0
- package/cjs/extensions/forms/Form/Section/Toolbar/index.js.map +1 -0
- package/cjs/extensions/forms/Form/Section/ViewContainer/EditButton.d.ts +1 -0
- package/cjs/extensions/forms/Form/Section/ViewContainer/{ViewToolbarTools.js → EditButton.js} +12 -13
- package/cjs/extensions/forms/Form/Section/ViewContainer/EditButton.js.map +1 -0
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +9 -4
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +3 -2
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +6 -13
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.scss +11 -24
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +5 -5
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js +3 -2
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +2 -2
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +2 -2
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +2 -25
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +16 -49
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +7 -17
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/Composition/CompositionDocs.js +3 -1
- package/cjs/extensions/forms/Value/Composition/CompositionDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -1
- package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -5
- package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/Upload/Upload.d.ts +11 -0
- package/cjs/extensions/forms/Value/Upload/Upload.js +99 -0
- package/cjs/extensions/forms/Value/Upload/Upload.js.map +1 -0
- package/cjs/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -0
- package/cjs/extensions/forms/Value/Upload/UploadDocs.js +26 -0
- package/cjs/extensions/forms/Value/Upload/UploadDocs.js.map +1 -0
- package/cjs/extensions/forms/Value/Upload/index.d.ts +2 -0
- package/cjs/extensions/forms/Value/Upload/index.js +27 -0
- package/cjs/extensions/forms/Value/Upload/index.js.map +1 -0
- package/cjs/extensions/forms/Value/index.d.ts +1 -0
- package/cjs/extensions/forms/Value/index.js +7 -0
- package/cjs/extensions/forms/Value/index.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +8 -3
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +0 -7
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +0 -10
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js +1 -1
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -0
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.d.ts +3 -0
- package/cjs/extensions/forms/hooks/{DataValueDocs.js → DataValueWritePropsDocs.js} +6 -6
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -0
- package/cjs/extensions/forms/hooks/useDataValue.js +6 -1
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +8 -3
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.js +1 -6
- package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +45 -38
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +6 -28
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.css +2 -0
- package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -1
- package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.scss +2 -0
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +7 -0
- package/cjs/index.js.map +1 -1
- package/cjs/shared/Context.d.ts +4 -0
- 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 +1 -1
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/style/core/reset.scss +0 -8
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/core/utilities.scss +12 -16
- package/cjs/style/dnb-ui-basis.css +1 -7
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -7
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +109 -43
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-core.css +1 -8
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-elements.css +1 -0
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +45 -38
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +45 -38
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +159 -80
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -38
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -38
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +164 -83
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +50 -41
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +52 -41
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +159 -80
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +45 -38
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +45 -38
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/ListFormat.d.ts +12 -0
- package/components/ListFormat.js +4 -0
- package/components/ListFormat.js.map +1 -0
- package/components/anchor/Anchor.js +1 -1
- package/components/anchor/Anchor.js.map +1 -1
- package/components/autocomplete/Autocomplete.js +3 -3
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/card/Card.js +13 -5
- package/components/card/Card.js.map +1 -1
- package/components/card/CardContext.d.ts +6 -0
- package/components/card/CardContext.js +4 -0
- package/components/card/CardContext.js.map +1 -0
- package/components/card/CardDocs.js +2 -2
- package/components/card/CardDocs.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 +5 -0
- package/components/card/style/themes/dnb-card-theme-sbanken.css +3 -0
- package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
- package/components/card/style/themes/dnb-card-theme-sbanken.scss +5 -0
- package/components/card/style/themes/dnb-card-theme-ui.css +5 -0
- package/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
- package/components/card/style/themes/dnb-card-theme-ui.scss +7 -0
- package/components/country-flag/CountryFlagDocs.js +5 -0
- package/components/country-flag/CountryFlagDocs.js.map +1 -1
- package/components/date-picker/DatePicker.d.ts +261 -291
- package/components/date-picker/DatePicker.js +343 -481
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerAddon.d.ts +21 -20
- package/components/date-picker/DatePickerAddon.js +64 -81
- package/components/date-picker/DatePickerAddon.js.map +1 -1
- package/components/date-picker/DatePickerCalc.d.ts +19 -21
- package/components/date-picker/DatePickerCalc.js +35 -34
- package/components/date-picker/DatePickerCalc.js.map +1 -1
- package/components/date-picker/DatePickerCalendar.d.ts +73 -39
- package/components/date-picker/DatePickerCalendar.js +389 -534
- package/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/components/date-picker/DatePickerContext.d.ts +26 -2
- package/components/date-picker/DatePickerContext.js.map +1 -1
- package/components/date-picker/DatePickerFooter.d.ts +20 -18
- package/components/date-picker/DatePickerFooter.js +90 -116
- package/components/date-picker/DatePickerFooter.js.map +1 -1
- package/components/date-picker/DatePickerInput.d.ts +56 -64
- package/components/date-picker/DatePickerInput.js +515 -532
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/date-picker/DatePickerOld.d.ts +334 -0
- package/components/date-picker/DatePickerOld.js +528 -0
- package/components/date-picker/DatePickerOld.js.map +1 -0
- package/components/date-picker/DatePickerProvider.d.ts +40 -17
- package/components/date-picker/DatePickerProvider.js +123 -235
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/DatePickerRange.d.ts +22 -20
- package/components/date-picker/DatePickerRange.js +58 -140
- package/components/date-picker/DatePickerRange.js.map +1 -1
- package/components/date-picker/hooks/useDates.d.ts +45 -0
- package/components/date-picker/hooks/useDates.js +173 -0
- package/components/date-picker/hooks/useDates.js.map +1 -0
- package/components/date-picker/hooks/useLastEventCallCache.d.ts +9 -0
- package/components/date-picker/hooks/useLastEventCallCache.js +11 -0
- package/components/date-picker/hooks/useLastEventCallCache.js.map +1 -0
- package/components/date-picker/hooks/useViews.d.ts +20 -0
- package/components/date-picker/hooks/useViews.js +74 -0
- package/components/date-picker/hooks/useViews.js.map +1 -0
- package/components/date-picker/style/dnb-date-picker.css +12 -1
- package/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/components/dropdown/Dropdown.js +3 -3
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/flex/StackDocs.d.ts +2 -0
- package/components/flex/StackDocs.js +23 -0
- package/components/flex/StackDocs.js.map +1 -0
- package/components/form-row/FormRow.js +3 -3
- package/components/form-row/FormRow.js.map +1 -1
- package/components/form-row/style/dnb-form-row.css +12 -1
- package/components/form-row/style/dnb-form-row.min.css +1 -1
- package/components/form-status/FormStatus.d.ts +4 -1
- package/components/icon/style/dnb-icon.scss +1 -1
- package/components/index.d.ts +2 -1
- package/components/index.js +2 -1
- package/components/index.js.map +1 -1
- package/components/input-masked/TextMask.d.ts +2 -1
- package/components/input-masked/style/dnb-input-masked.css +12 -1
- package/components/input-masked/style/dnb-input-masked.min.css +1 -1
- package/components/lib.d.ts +3 -1
- package/components/lib.js +3 -1
- package/components/lib.js.map +1 -1
- package/components/list-format/ListFormat.d.ts +40 -0
- package/components/list-format/ListFormat.js +112 -0
- package/components/list-format/ListFormat.js.map +1 -0
- package/components/list-format/ListFormatDocs.d.ts +2 -0
- package/components/list-format/ListFormatDocs.js +28 -0
- package/components/list-format/ListFormatDocs.js.map +1 -0
- package/components/list-format/index.d.ts +7 -0
- package/components/list-format/index.js +4 -0
- package/components/list-format/index.js.map +1 -0
- package/components/number-format/NumberUtils.js +1 -1
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/radio/style/dnb-radio.css +12 -1
- package/components/radio/style/dnb-radio.min.css +1 -1
- package/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
- package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/components/textarea/Textarea.js +3 -3
- package/components/textarea/Textarea.js.map +1 -1
- package/components/toggle-button/ToggleButton.js +3 -3
- package/components/toggle-button/ToggleButton.js.map +1 -1
- package/components/toggle-button/style/dnb-toggle-button.css +12 -1
- package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/components/upload/Upload.js +2 -1
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/UploadContext.d.ts +1 -0
- package/components/upload/UploadContext.js +2 -1
- package/components/upload/UploadContext.js.map +1 -1
- package/components/upload/UploadDocs.js +5 -0
- package/components/upload/UploadDocs.js.map +1 -1
- package/components/upload/UploadDropzone.js.map +1 -1
- package/components/upload/UploadFileList.js +3 -1
- package/components/upload/UploadFileList.js.map +1 -1
- package/components/upload/UploadFileListCell.d.ts +22 -3
- package/components/upload/UploadFileListCell.js +16 -8
- package/components/upload/UploadFileListCell.js.map +1 -1
- package/components/upload/UploadInfo.js +7 -4
- package/components/upload/UploadInfo.js.map +1 -1
- package/components/upload/UploadVerify.d.ts +2 -2
- package/components/upload/UploadVerify.js.map +1 -1
- package/components/upload/style/dnb-upload.css +1 -1
- package/components/upload/style/dnb-upload.min.css +1 -1
- package/components/upload/style/dnb-upload.scss +1 -1
- package/components/upload/types.d.ts +11 -5
- package/components/upload/types.js.map +1 -1
- package/components/upload/useUpload.d.ts +6 -6
- package/components/upload/useUpload.js.map +1 -1
- package/elements/lists/style/lists-mixins.scss +1 -0
- package/es/components/ListFormat.d.ts +12 -0
- package/es/components/ListFormat.js +4 -0
- package/es/components/ListFormat.js.map +1 -0
- package/es/components/anchor/Anchor.js +1 -1
- package/es/components/anchor/Anchor.js.map +1 -1
- package/es/components/autocomplete/Autocomplete.js +3 -3
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/card/Card.js +13 -5
- package/es/components/card/Card.js.map +1 -1
- package/es/components/card/CardContext.d.ts +6 -0
- package/es/components/card/CardContext.js +4 -0
- package/es/components/card/CardContext.js.map +1 -0
- package/es/components/card/CardDocs.js +2 -2
- package/es/components/card/CardDocs.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 +5 -0
- package/es/components/card/style/themes/dnb-card-theme-sbanken.css +3 -0
- package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
- package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +5 -0
- package/es/components/card/style/themes/dnb-card-theme-ui.css +5 -0
- package/es/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
- package/es/components/card/style/themes/dnb-card-theme-ui.scss +7 -0
- package/es/components/country-flag/CountryFlagDocs.js +5 -0
- package/es/components/country-flag/CountryFlagDocs.js.map +1 -1
- package/es/components/date-picker/DatePicker.d.ts +261 -291
- package/es/components/date-picker/DatePicker.js +342 -481
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerAddon.d.ts +21 -20
- package/es/components/date-picker/DatePickerAddon.js +65 -82
- package/es/components/date-picker/DatePickerAddon.js.map +1 -1
- package/es/components/date-picker/DatePickerCalc.d.ts +19 -21
- package/es/components/date-picker/DatePickerCalc.js +38 -37
- package/es/components/date-picker/DatePickerCalc.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendar.d.ts +73 -39
- package/es/components/date-picker/DatePickerCalendar.js +387 -531
- package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/es/components/date-picker/DatePickerContext.d.ts +26 -2
- package/es/components/date-picker/DatePickerContext.js.map +1 -1
- package/es/components/date-picker/DatePickerFooter.d.ts +20 -18
- package/es/components/date-picker/DatePickerFooter.js +89 -116
- package/es/components/date-picker/DatePickerFooter.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.d.ts +56 -64
- package/es/components/date-picker/DatePickerInput.js +508 -525
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/date-picker/DatePickerOld.d.ts +334 -0
- package/es/components/date-picker/DatePickerOld.js +528 -0
- package/es/components/date-picker/DatePickerOld.js.map +1 -0
- package/es/components/date-picker/DatePickerProvider.d.ts +40 -17
- package/es/components/date-picker/DatePickerProvider.js +122 -230
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/DatePickerRange.d.ts +22 -20
- package/es/components/date-picker/DatePickerRange.js +57 -138
- package/es/components/date-picker/DatePickerRange.js.map +1 -1
- package/es/components/date-picker/hooks/useDates.d.ts +45 -0
- package/es/components/date-picker/hooks/useDates.js +169 -0
- package/es/components/date-picker/hooks/useDates.js.map +1 -0
- package/es/components/date-picker/hooks/useLastEventCallCache.d.ts +9 -0
- package/es/components/date-picker/hooks/useLastEventCallCache.js +11 -0
- package/es/components/date-picker/hooks/useLastEventCallCache.js.map +1 -0
- package/es/components/date-picker/hooks/useViews.d.ts +20 -0
- package/es/components/date-picker/hooks/useViews.js +72 -0
- package/es/components/date-picker/hooks/useViews.js.map +1 -0
- package/es/components/date-picker/style/dnb-date-picker.css +12 -1
- package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/es/components/dropdown/Dropdown.js +3 -3
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/flex/StackDocs.d.ts +2 -0
- package/es/components/flex/StackDocs.js +23 -0
- package/es/components/flex/StackDocs.js.map +1 -0
- package/es/components/form-row/FormRow.js +3 -3
- package/es/components/form-row/FormRow.js.map +1 -1
- package/es/components/form-row/style/dnb-form-row.css +12 -1
- package/es/components/form-row/style/dnb-form-row.min.css +1 -1
- package/es/components/form-status/FormStatus.d.ts +4 -1
- package/es/components/icon/style/dnb-icon.scss +1 -1
- package/es/components/index.d.ts +2 -1
- package/es/components/index.js +2 -1
- package/es/components/index.js.map +1 -1
- package/es/components/input-masked/TextMask.d.ts +2 -1
- package/es/components/input-masked/style/dnb-input-masked.css +12 -1
- package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
- package/es/components/lib.d.ts +3 -1
- package/es/components/lib.js +3 -1
- package/es/components/lib.js.map +1 -1
- package/es/components/list-format/ListFormat.d.ts +40 -0
- package/es/components/list-format/ListFormat.js +111 -0
- package/es/components/list-format/ListFormat.js.map +1 -0
- package/es/components/list-format/ListFormatDocs.d.ts +2 -0
- package/es/components/list-format/ListFormatDocs.js +28 -0
- package/es/components/list-format/ListFormatDocs.js.map +1 -0
- package/es/components/list-format/index.d.ts +7 -0
- package/es/components/list-format/index.js +4 -0
- package/es/components/list-format/index.js.map +1 -0
- package/es/components/number-format/NumberUtils.js +1 -1
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/radio/style/dnb-radio.css +12 -1
- package/es/components/radio/style/dnb-radio.min.css +1 -1
- package/es/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
- package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/es/components/textarea/Textarea.js +3 -3
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/components/toggle-button/ToggleButton.js +3 -3
- package/es/components/toggle-button/ToggleButton.js.map +1 -1
- package/es/components/toggle-button/style/dnb-toggle-button.css +12 -1
- package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/es/components/upload/Upload.js +2 -1
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/UploadContext.d.ts +1 -0
- package/es/components/upload/UploadContext.js +2 -1
- package/es/components/upload/UploadContext.js.map +1 -1
- package/es/components/upload/UploadDocs.js +5 -0
- package/es/components/upload/UploadDocs.js.map +1 -1
- package/es/components/upload/UploadDropzone.js.map +1 -1
- package/es/components/upload/UploadFileList.js +3 -1
- package/es/components/upload/UploadFileList.js.map +1 -1
- package/es/components/upload/UploadFileListCell.d.ts +22 -3
- package/es/components/upload/UploadFileListCell.js +16 -8
- package/es/components/upload/UploadFileListCell.js.map +1 -1
- package/es/components/upload/UploadInfo.js +7 -4
- package/es/components/upload/UploadInfo.js.map +1 -1
- package/es/components/upload/UploadVerify.d.ts +2 -2
- package/es/components/upload/UploadVerify.js.map +1 -1
- package/es/components/upload/style/dnb-upload.css +1 -1
- package/es/components/upload/style/dnb-upload.min.css +1 -1
- package/es/components/upload/style/dnb-upload.scss +1 -1
- package/es/components/upload/types.d.ts +11 -5
- package/es/components/upload/types.js.map +1 -1
- package/es/components/upload/useUpload.d.ts +6 -6
- package/es/components/upload/useUpload.js.map +1 -1
- package/es/elements/lists/style/lists-mixins.scss +1 -0
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +11 -14
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +3 -4
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +4 -4
- package/es/extensions/forms/Field/Boolean/Boolean.d.ts +3 -2
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Composition/CompositionDocs.js +2 -2
- package/es/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.js +4 -12
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js +6 -14
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/FieldDocs.d.ts +2 -2
- package/es/extensions/forms/Field/FieldDocs.js +8 -8
- package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.d.ts +2 -1
- package/es/extensions/forms/Field/Number/Number.js +8 -19
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/Number/style/dnb-number.css +0 -3
- package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/es/extensions/forms/Field/Number/style/dnb-number.scss +0 -2
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -10
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/FieldProviderDocs.js +6 -3
- package/es/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +10 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +14 -12
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -1
- package/es/extensions/forms/Field/Selection/Selection.js +5 -13
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Slider/Slider.d.ts +2 -1
- package/es/extensions/forms/Field/Slider/Slider.js +0 -13
- package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/es/extensions/forms/Field/String/String.d.ts +2 -1
- package/es/extensions/forms/Field/String/String.js +7 -20
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +6 -18
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/Upload/Upload.d.ts +4 -3
- package/es/extensions/forms/Field/Upload/Upload.js +2 -12
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +45 -6
- package/es/extensions/forms/FieldBlock/FieldBlock.js +39 -20
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -0
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +3 -2
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +17 -2
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +34 -11
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +56 -13
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.css +7 -0
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.min.css +1 -0
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.scss +10 -0
- package/es/extensions/forms/Form/Section/EditContainer/CancelButton.d.ts +1 -0
- package/es/extensions/forms/Form/Section/EditContainer/CancelButton.js +51 -0
- package/es/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -0
- package/es/extensions/forms/Form/Section/EditContainer/DoneButton.d.ts +1 -0
- package/es/extensions/forms/Form/Section/EditContainer/DoneButton.js +44 -0
- package/es/extensions/forms/Form/Section/EditContainer/DoneButton.js.map +1 -0
- package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
- package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +11 -4
- package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/Section.d.ts +4 -2
- package/es/extensions/forms/Form/Section/Section.js +2 -0
- package/es/extensions/forms/Form/Section/Section.js.map +1 -1
- package/es/extensions/forms/Form/Section/Toolbar/Toolbar.d.ts +7 -0
- package/es/extensions/forms/Form/Section/Toolbar/Toolbar.js +59 -0
- package/es/extensions/forms/Form/Section/Toolbar/Toolbar.js.map +1 -0
- package/es/extensions/forms/Form/Section/Toolbar/ToolbarContext.d.ts +9 -0
- package/es/extensions/forms/Form/Section/Toolbar/ToolbarContext.js +4 -0
- package/es/extensions/forms/Form/Section/Toolbar/ToolbarContext.js.map +1 -0
- package/es/extensions/forms/Form/Section/Toolbar/ToolbarDocs.d.ts +3 -0
- package/es/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js +3 -0
- package/es/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js.map +1 -0
- package/es/extensions/forms/Form/Section/Toolbar/index.d.ts +2 -0
- package/es/extensions/forms/Form/Section/Toolbar/index.js +3 -0
- package/es/extensions/forms/Form/Section/Toolbar/index.js.map +1 -0
- package/es/extensions/forms/Form/Section/ViewContainer/EditButton.d.ts +1 -0
- package/es/extensions/forms/Form/Section/ViewContainer/{ViewToolbarTools.js → EditButton.js} +10 -11
- package/es/extensions/forms/Form/Section/ViewContainer/EditButton.js.map +1 -0
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +9 -4
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/containers/SectionContainer.js +4 -3
- package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/es/extensions/forms/Form/Section/style/dnb-form-section.css +6 -13
- package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/es/extensions/forms/Form/Section/style/dnb-form-section.scss +11 -24
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js +5 -5
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +4 -3
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +1 -1
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +2 -25
- package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +14 -45
- package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +5 -17
- package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/es/extensions/forms/Value/Composition/CompositionDocs.js +3 -1
- package/es/extensions/forms/Value/Composition/CompositionDocs.js.map +1 -1
- package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -1
- package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -5
- package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
- package/es/extensions/forms/Value/Upload/Upload.d.ts +11 -0
- package/es/extensions/forms/Value/Upload/Upload.js +88 -0
- package/es/extensions/forms/Value/Upload/Upload.js.map +1 -0
- package/es/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -0
- package/es/extensions/forms/Value/Upload/UploadDocs.js +17 -0
- package/es/extensions/forms/Value/Upload/UploadDocs.js.map +1 -0
- package/es/extensions/forms/Value/Upload/index.d.ts +2 -0
- package/es/extensions/forms/Value/Upload/index.js +3 -0
- package/es/extensions/forms/Value/Upload/index.js.map +1 -0
- package/es/extensions/forms/Value/index.d.ts +1 -0
- package/es/extensions/forms/Value/index.js +1 -0
- package/es/extensions/forms/Value/index.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +8 -3
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +0 -7
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +0 -10
- package/es/extensions/forms/Wizard/Step/StepDocs.js +1 -1
- package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -0
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.d.ts +3 -0
- package/es/extensions/forms/hooks/{DataValueDocs.js → DataValueWritePropsDocs.js} +3 -3
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -0
- package/es/extensions/forms/hooks/useDataValue.js +6 -1
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +8 -3
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/useValueProps.js +1 -6
- package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +45 -38
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +6 -28
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/TestElement/style/dnb-test-element.css +2 -0
- package/es/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -1
- package/es/extensions/forms/utils/TestElement/style/dnb-test-element.scss +2 -0
- package/es/index.d.ts +2 -1
- package/es/index.js +2 -1
- package/es/index.js.map +1 -1
- package/es/shared/Context.d.ts +4 -0
- 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 +1 -1
- package/es/shared/component-helper.js.map +1 -1
- package/es/style/core/reset.scss +0 -8
- package/es/style/core/scopes.scss +1 -1
- package/es/style/core/utilities.scss +12 -16
- package/es/style/dnb-ui-basis.css +1 -7
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -7
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +109 -43
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-core.css +1 -8
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-elements.css +1 -0
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +45 -38
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +45 -38
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +159 -80
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -38
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -38
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +164 -83
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +50 -41
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +52 -41
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.css +1 -0
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +159 -80
- package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/es/style/themes/theme-ui/ui-theme-elements.css +1 -0
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +45 -38
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +45 -38
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +1 -0
- package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.js +11 -14
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +3 -4
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +4 -4
- package/extensions/forms/Field/Boolean/Boolean.d.ts +3 -2
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Composition/CompositionDocs.js +2 -2
- package/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -1
- package/extensions/forms/Field/Date/Date.js +4 -12
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js +6 -14
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/FieldDocs.d.ts +2 -2
- package/extensions/forms/Field/FieldDocs.js +8 -8
- package/extensions/forms/Field/FieldDocs.js.map +1 -1
- package/extensions/forms/Field/Number/Number.d.ts +2 -1
- package/extensions/forms/Field/Number/Number.js +7 -19
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/Number/style/dnb-number.css +0 -3
- package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/extensions/forms/Field/Number/style/dnb-number.scss +0 -2
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -10
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/FieldProviderDocs.js +6 -3
- package/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +10 -3
- package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -1
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +14 -12
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.d.ts +2 -1
- package/extensions/forms/Field/Selection/Selection.js +5 -13
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Slider/Slider.d.ts +2 -1
- package/extensions/forms/Field/Slider/Slider.js +0 -13
- package/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/extensions/forms/Field/String/String.d.ts +2 -1
- package/extensions/forms/Field/String/String.js +7 -20
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +6 -18
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/Upload/Upload.d.ts +4 -3
- package/extensions/forms/Field/Upload/Upload.js +2 -12
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +45 -6
- package/extensions/forms/FieldBlock/FieldBlock.js +39 -20
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -0
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +3 -2
- package/extensions/forms/FieldBlock/FieldBlockDocs.js +17 -2
- package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +34 -11
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +56 -13
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.css +7 -0
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.min.css +1 -0
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.scss +10 -0
- package/extensions/forms/Form/Section/EditContainer/CancelButton.d.ts +1 -0
- package/extensions/forms/Form/Section/EditContainer/CancelButton.js +51 -0
- package/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -0
- package/extensions/forms/Form/Section/EditContainer/DoneButton.d.ts +1 -0
- package/extensions/forms/Form/Section/EditContainer/DoneButton.js +44 -0
- package/extensions/forms/Form/Section/EditContainer/DoneButton.js.map +1 -0
- package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
- package/extensions/forms/Form/Section/EditContainer/EditContainer.js +11 -4
- package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Form/Section/Section.d.ts +4 -2
- package/extensions/forms/Form/Section/Section.js +2 -0
- package/extensions/forms/Form/Section/Section.js.map +1 -1
- package/extensions/forms/Form/Section/Toolbar/Toolbar.d.ts +7 -0
- package/extensions/forms/Form/Section/Toolbar/Toolbar.js +59 -0
- package/extensions/forms/Form/Section/Toolbar/Toolbar.js.map +1 -0
- package/extensions/forms/Form/Section/Toolbar/ToolbarContext.d.ts +9 -0
- package/extensions/forms/Form/Section/Toolbar/ToolbarContext.js +4 -0
- package/extensions/forms/Form/Section/Toolbar/ToolbarContext.js.map +1 -0
- package/extensions/forms/Form/Section/Toolbar/ToolbarDocs.d.ts +3 -0
- package/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js +3 -0
- package/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js.map +1 -0
- package/extensions/forms/Form/Section/Toolbar/index.d.ts +2 -0
- package/extensions/forms/Form/Section/Toolbar/index.js +3 -0
- package/extensions/forms/Form/Section/Toolbar/index.js.map +1 -0
- package/extensions/forms/Form/Section/ViewContainer/EditButton.d.ts +1 -0
- package/extensions/forms/Form/Section/ViewContainer/{ViewToolbarTools.js → EditButton.js} +10 -11
- package/extensions/forms/Form/Section/ViewContainer/EditButton.js.map +1 -0
- package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
- package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +9 -4
- package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Form/Section/containers/SectionContainer.js +4 -3
- package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/extensions/forms/Form/Section/style/dnb-form-section.css +6 -13
- package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/extensions/forms/Form/Section/style/dnb-form-section.scss +11 -24
- package/extensions/forms/Iterate/Array/ArrayDocs.js +5 -5
- package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayItemArea.js +4 -3
- package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +1 -1
- package/extensions/forms/Iterate/EditContainer/CancelButton.js +1 -1
- package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -1
- package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +2 -25
- package/extensions/forms/Value/ArraySelection/ArraySelection.js +14 -46
- package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +5 -17
- package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/extensions/forms/Value/Composition/CompositionDocs.js +3 -1
- package/extensions/forms/Value/Composition/CompositionDocs.js.map +1 -1
- package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -1
- package/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -5
- package/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
- package/extensions/forms/Value/Upload/Upload.d.ts +11 -0
- package/extensions/forms/Value/Upload/Upload.js +88 -0
- package/extensions/forms/Value/Upload/Upload.js.map +1 -0
- package/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -0
- package/extensions/forms/Value/Upload/UploadDocs.js +17 -0
- package/extensions/forms/Value/Upload/UploadDocs.js.map +1 -0
- package/extensions/forms/Value/Upload/index.d.ts +2 -0
- package/extensions/forms/Value/Upload/index.js +3 -0
- package/extensions/forms/Value/Upload/index.js.map +1 -0
- package/extensions/forms/Value/index.d.ts +1 -0
- package/extensions/forms/Value/index.js +1 -0
- package/extensions/forms/Value/index.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +8 -3
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.css +0 -7
- package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.scss +0 -10
- package/extensions/forms/Wizard/Step/StepDocs.js +1 -1
- package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -0
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/extensions/forms/hooks/DataValueWritePropsDocs.d.ts +3 -0
- package/extensions/forms/hooks/{DataValueDocs.js → DataValueWritePropsDocs.js} +3 -3
- package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -0
- package/extensions/forms/hooks/useDataValue.js +6 -1
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +8 -3
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/useValueProps.js +1 -6
- package/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +45 -38
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +6 -28
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/TestElement/style/dnb-test-element.css +2 -0
- package/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -1
- package/extensions/forms/utils/TestElement/style/dnb-test-element.scss +2 -0
- package/index.d.ts +2 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/shared/Context.d.ts +4 -0
- 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 +1 -1
- package/shared/component-helper.js.map +1 -1
- package/style/core/reset.scss +0 -8
- package/style/core/scopes.scss +1 -1
- package/style/core/utilities.scss +12 -16
- package/style/dnb-ui-basis.css +1 -7
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -7
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +109 -43
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-core.css +1 -8
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-elements.css +1 -0
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/dnb-ui-extensions.css +45 -38
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +45 -38
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +159 -80
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -38
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -38
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +164 -83
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +50 -41
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +52 -41
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
- package/style/themes/theme-ui/ui-theme-basis.css +1 -0
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +159 -80
- package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/style/themes/theme-ui/ui-theme-elements.css +1 -0
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +45 -38
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +45 -38
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +1 -0
- package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +3 -3
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +0 -4
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +0 -1
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +0 -6
- package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +0 -5
- package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +0 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +0 -4
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +0 -1
- package/cjs/extensions/forms/Form/Section/containers/Toolbar.d.ts +0 -7
- package/cjs/extensions/forms/Form/Section/containers/Toolbar.js +0 -35
- package/cjs/extensions/forms/Form/Section/containers/Toolbar.js.map +0 -1
- package/cjs/extensions/forms/hooks/DataValueDocs.d.ts +0 -3
- package/cjs/extensions/forms/hooks/DataValueDocs.js.map +0 -1
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +0 -4
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +0 -1
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +0 -6
- package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +0 -5
- package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -77
- package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +0 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +0 -4
- package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +0 -1
- package/es/extensions/forms/Form/Section/containers/Toolbar.d.ts +0 -7
- package/es/extensions/forms/Form/Section/containers/Toolbar.js +0 -27
- package/es/extensions/forms/Form/Section/containers/Toolbar.js.map +0 -1
- package/es/extensions/forms/hooks/DataValueDocs.d.ts +0 -3
- package/es/extensions/forms/hooks/DataValueDocs.js.map +0 -1
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +0 -4
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +0 -1
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +0 -6
- package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +0 -5
- package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -77
- package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +0 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +0 -4
- package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +0 -1
- package/extensions/forms/Form/Section/containers/Toolbar.d.ts +0 -7
- package/extensions/forms/Form/Section/containers/Toolbar.js +0 -27
- package/extensions/forms/Form/Section/containers/Toolbar.js.map +0 -1
- package/extensions/forms/hooks/DataValueDocs.d.ts +0 -3
- package/extensions/forms/hooks/DataValueDocs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFieldProps.js","names":["React","useRef","useEffect","useContext","useCallback","useMemo","useReducer","pointer","ajvErrorsToOneFormError","errorChanged","overwriteErrorMessagesWithGivenAjvKeys","extendErrorMessagesWithTranslationMessages","FormError","Context","DataContext","clearedData","FieldProviderContext","combineDescribedBy","warn","useId","useUpdateEffect","FieldBlockContext","IterateElementContext","SectionContext","FieldBoundaryContext","VisibilityContext","WizardContext","SnapshotContext","useProcessManager","usePath","createSharedState","useSharedState","isAsync","useTranslation","useExternalValue","useDataValue","useLayoutEffect","window","useFieldProps","localProps","executeOnChangeRegardlessOfError","updateContextDataInSync","omitMultiplePathWarning","forceUpdateWhenContextDataIsSet","_dataContext$props","_transformers$current","_localErrorRef$curren","_ref","_prepareError","_dataContext$props3","_props$path","_props$autoComplete","extend","props","path","pathProp","value","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","exportValidators","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","provideAdditionalArgs","additionalArgs","fromExternal","validateRequired","res","undefined","salt","forceUpdate","isInternalRerenderRef","current","startProcess","id","dataContext","fieldBlockContext","iterateItemContext","sectionContext","fieldBoundaryContext","wizardContext","setMountedField","setMountedFieldSnapshot","isVisible","translation","formatMessage","translationRef","transformers","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldProps","setFieldPropsDataContext","setFieldConnection","setFieldConnectionDataContext","setVisibleError","setVisibleErrorDataContext","setMountedFieldState","setMountedFieldStateDataContext","setFieldEventListener","errors","dataContextErrors","showAllErrors","contextErrorMessages","fieldDisplayValueRef","existingFieldsRef","onChangeContext","readOnly","inFieldBlock","Boolean","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","handleChange","handleChangeIterateContext","index","iterateIndex","arrayValue","iterateArrayValue","sectionPath","errorPrioritization","setFieldErrorBoundary","setVisibleErrorBoundary","showBoundaryErrors","hasPath","hasItemPath","identifier","makeIteratePath","joinPath","cleanPath","defaultValueRef","externalValue","valueRef","changedRef","hasFocusRef","paths","split","length","requiredInSchema","pathWithoutLast","slice","join","schemaPart","has","get","requiredSchemaList","Array","isArray","rootPath","replace","requiredList","map","startsWith","push","collected","flatMap","filter","some","revealErrorRef","errorMethodRef","localErrorRef","localErrorInitiatorRef","dataContextError","contextErrorRef","onChangeValidatorRef","onBlurValidatorRef","schemaValidatorRef","_dataContext$ajvInsta","ajvInstance","compile","asyncBehaviorIsEnabled","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","name","asyncBufferRef","key","resolve","validateProcesses","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","revealError","hideError","getErrorMessages","messages","_objectSpread","prepareError","prepare","message","ajvKeyword","ajvMessage","validationRule","messageValues","Object","entries","reduce","msg","includes","hasVisibleError","hasErrorProp","hasError","_ref2","connectWithPathListenerRef","runOnChangeValidator","runOnBlurValidator","getValueByPath","exportValidatorsRef","args","validators","connectWithPath","getValue","callStackRef","hasBeenCalledRef","result","callValidatorFnAsync","Error","callValidatorFnSync","hasAsyncValidator","Promise","then","stateId","persistErrorState","method","initiator","errorArg","keys","type","content","showInitially","clearErrorState","_schemaValidatorRef$c","removeError","validatorCacheRef","onChangeValidator","revealOnChangeValidatorResult","unchangedValue","callOnChangeValidator","tmpValue","startOnChangeValidatorValidation","String","callOnBlurValidator","overrideValue","revealOnBlurValidatorResult","startOnBlurValidatorProcess","prioritizeContextSchema","schemaPath","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","handleError","getEventArgs","eventName","transformedValue","setHasFocus","hasFocus","apply","isFocused","yieldAsyncProcess","waitFor","processName","withStates","hasValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","_transformers$current2","currentValue","contextValue","setChanged","setDisplayValue","argFromInput","handleFocus","handleBlur","activeIndex","activeIndexRef","activeIndexTmpRef","isPreMounted","wasStepChange","isMounted","process","env","NODE_ENV","existingFields","set","delete","_dataContext$ajvInsta2","externalValueDidChangeRef","tmpTransValueRef","setContextData","preventUpdate","_dataContext$internal","valueToStore","data","prerenderFieldProps","internalDataRef","existingValue","sharedState","sharedValue","hasDefaultValue","skipEqualCheck","isEmptyData","_dataContext$isEmptyD","_dataContext$internal2","_dataContext$props$em","_dataContext$props2","isEmptyDataRef","emptyData","formState","onSubmitHandler","show","connections","htmlAttributes","acc","cur","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","ids","fieldBlockProps","labelSuffix","fieldState","sharedData","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import React, {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from '../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n ajvErrorsToOneFormError,\n errorChanged,\n overwriteErrorMessagesWithGivenAjvKeys,\n extendErrorMessagesWithTranslationMessages,\n FormError,\n} from '../utils'\nimport {\n FieldPropsGeneric,\n AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n ValidatorAdditionalArgs,\n Validator,\n Identifier,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { clearedData } from '../DataContext/Provider/Provider'\nimport FieldProviderContext from '../Field/Provider/FieldProviderContext'\nimport { combineDescribedBy, warn } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateItemContext'\nimport SectionContext from '../Form/Section/SectionContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport VisibilityContext from '../Form/Visibility/VisibilityContext'\nimport WizardContext from '../Wizard/Context'\nimport SnapshotContext from '../Form/Snapshot/SnapshotContext'\nimport useProcessManager from './useProcessManager'\nimport usePath from './usePath'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\nimport useExternalValue from './useExternalValue'\nimport useDataValue from './useDataValue'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\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 ErrorInitiator =\n | 'required'\n | 'schema'\n | 'onChangeValidator'\n | 'onBlurValidator'\n | 'dataContextError'\ntype AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string | boolean | number\n}\n\n// Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n// useEffect depend on them (like the external `value`)\n\nexport default function useFieldProps<Value, EmptyValue, Props>(\n localProps: Props & FieldPropsGeneric<Value, EmptyValue>,\n {\n executeOnChangeRegardlessOfError = false,\n updateContextDataInSync = false,\n omitMultiplePathWarning = false,\n forceUpdateWhenContextDataIsSet = false,\n } = {}\n): typeof localProps & ReturnAdditional<Value> {\n const { extend } = useContext(FieldProviderContext)\n const props = extend(localProps)\n\n const {\n path: pathProp,\n value: valueProp,\n defaultValue,\n itemPath,\n emptyValue,\n required: requiredProp,\n disabled: disabledProp,\n info,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n exportValidators,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n transformIn = (value: Value) => value,\n transformOut = (value: Value) => value,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n provideAdditionalArgs = (\n value: Value,\n additionalArgs: AdditionalEventArgs\n ) => additionalArgs,\n fromExternal = (value: Value) => value,\n validateRequired = (value, { emptyValue, required, error }) => {\n const res =\n required &&\n ((value as unknown) === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\n },\n } = props\n\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const isInternalRerenderRef = useRef(undefined)\n useMemo(() => {\n /**\n * This is currently not used, but we keep it here for future use.\n * It lets you check for isInternalRerenderRef.current !== undefined\n * inside a useUpdateEffect or useEffect to know if the component is rerendering from inside or outside.\n */\n isInternalRerenderRef.current = salt\n }, [salt])\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateItemContext = useContext(IterateElementContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const wizardContext = useContext(WizardContext)\n const { setMountedField: setMountedFieldSnapshot } =\n useContext(SnapshotContext) || {}\n const { isVisible } = useContext(VisibilityContext) || {}\n\n const translation = useTranslation()\n const { formatMessage } = translation\n const translationRef = useRef(translation)\n translationRef.current = translation\n\n const transformers = useRef({\n transformIn,\n transformOut,\n provideAdditionalArgs,\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: setFieldPropsDataContext,\n setFieldConnection: setFieldConnectionDataContext,\n setVisibleError: setVisibleErrorDataContext,\n setMountedFieldState: setMountedFieldStateDataContext,\n setFieldEventListener,\n errors: dataContextErrors,\n showAllErrors,\n contextErrorMessages,\n fieldDisplayValueRef,\n existingFieldsRef,\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 {\n handleChange: handleChangeIterateContext,\n index: iterateIndex,\n arrayValue: iterateArrayValue,\n } = iterateItemContext || {}\n const { path: sectionPath, errorPrioritization } = sectionContext || {}\n const {\n setFieldError: setFieldErrorBoundary,\n setVisibleError: setVisibleErrorBoundary,\n showBoundaryErrors,\n } = fieldBoundaryContext || {}\n\n const hasPath = Boolean(pathProp)\n const hasItemPath = Boolean(itemPath)\n const { path, identifier, makeIteratePath, joinPath, cleanPath } =\n usePath({\n id,\n path: pathProp,\n itemPath,\n })\n\n const defaultValueRef = useRef(defaultValue)\n useLayoutEffect(() => {\n // To support React.StrictMode, we also need to add it from inside a useEffect\n defaultValueRef.current = defaultValue\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n const externalValue =\n transformers.current.transformIn(\n useExternalValue<Value>({\n path,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue,\n })\n ) ?? defaultValueRef.current\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>()\n const hasFocusRef = useRef<boolean>()\n\n const required = useMemo(() => {\n if (typeof requiredProp !== 'undefined') {\n return requiredProp\n }\n\n if (schema || dataContext?.schema) {\n const paths = identifier.split('/')\n if (paths.length > 0) {\n const requiredInSchema = [schema?.['required']]\n\n // - Handle context schema\n if (paths.length > 1) {\n const schema = dataContext.schema\n const pathWithoutLast = paths.slice(0, -1).join('/properties/')\n const schemaPart = pointer.has(schema, pathWithoutLast)\n ? pointer.get(schema, pathWithoutLast)\n : schema\n\n const requiredSchemaList = schemaPart?.['required']\n if (Array.isArray(requiredSchemaList)) {\n const rootPath = pathWithoutLast.replace(/properties\\//g, '')\n const requiredList = requiredSchemaList.map((path) => {\n path = cleanPath('/' + path)\n return sectionPath && path.startsWith(sectionPath)\n ? path\n : joinPath([sectionPath || rootPath, path])\n })\n requiredInSchema.push(requiredList)\n }\n }\n\n const collected = requiredInSchema\n .flatMap((value) => value)\n .filter(Boolean)\n\n if (\n collected.filter(Boolean).some((path) => {\n path = cleanPath('/' + path)\n return identifier === path || sectionPath === path\n })\n ) {\n return true\n }\n }\n }\n }, [\n cleanPath,\n dataContext.schema,\n identifier,\n joinPath,\n requiredProp,\n schema,\n sectionPath,\n ])\n\n // Error handling\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const revealErrorRef = useRef<boolean>(\n validateInitially ?? Boolean(errorProp)\n )\n\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 localErrorInitiatorRef = useRef<ErrorInitiator>()\n\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const dataContextError = useMemo(() => {\n return path ? dataContextErrors?.[identifier] : undefined\n }, [dataContextErrors, identifier, path])\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const onChangeValidatorRef = useRef(validator)\n useUpdateEffect(() => {\n onChangeValidatorRef.current = validator\n }, [validator])\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>()\n if (!schemaValidatorRef.current && schema) {\n schemaValidatorRef.current = dataContext.ajvInstance?.compile(schema)\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 revealError = useCallback(() => {\n // To support \"validateInitially={false}\" prop, we need to make sure that the error is not shown initially\n if (revealErrorRef.current === false && validateInitially === false) {\n revealErrorRef.current = undefined\n return // stop here\n }\n\n if (!revealErrorRef.current) {\n revealErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n setVisibleErrorBoundary?.(identifier, !!localErrorRef.current)\n setVisibleErrorDataContext?.(identifier, !!localErrorRef.current)\n }\n }, [\n identifier,\n setVisibleErrorDataContext,\n setVisibleErrorBoundary,\n showFieldErrorFieldBlock,\n validateInitially,\n ])\n\n const hideError = useCallback(() => {\n if (revealErrorRef.current) {\n revealErrorRef.current = undefined\n showFieldErrorFieldBlock?.(identifier, false)\n setVisibleErrorBoundary?.(identifier, false)\n setVisibleErrorDataContext?.(identifier, false)\n }\n }, [\n identifier,\n setVisibleErrorBoundary,\n setVisibleErrorDataContext,\n showFieldErrorFieldBlock,\n ])\n\n const getErrorMessages = useCallback(() => {\n const messages = {\n ...contextErrorMessages,\n ...contextErrorMessages?.[identifier],\n ...errorMessages,\n }\n\n return extendErrorMessagesWithTranslationMessages(\n overwriteErrorMessagesWithGivenAjvKeys(messages),\n translationRef.current\n )\n }, [contextErrorMessages, errorMessages, 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 const prepare = (error: FormError) => {\n let message = error.message\n const errorMessages = getErrorMessages()\n\n const { ajvKeyword } = error\n if (typeof ajvKeyword === 'string') {\n const ajvMessage = errorMessages?.[ajvKeyword]\n if (ajvMessage) {\n message = ajvMessage\n }\n }\n\n /** @deprecated – can be removed in v11 */\n const { validationRule } = error\n if (typeof validationRule === 'string') {\n const ajvMessage = errorMessages?.[validationRule]\n if (ajvMessage) {\n message = ajvMessage\n }\n }\n\n if (errorMessages[message]) {\n // - For when the message is e.g. Field.errorRequired or Custom.key, but delivered in the `errorMessages` object\n message = errorMessages[message]\n\n if (error.messageValues) {\n message = Object.entries(error.messageValues || {}).reduce(\n (msg, [key, value]) => {\n return msg.replace(`{${key}}`, value)\n },\n message\n )\n }\n } else if (message.includes('.')) {\n // - For when the message is e.g. Field.errorRequired\n message = formatMessage(message, error.messageValues)\n }\n\n error.message = message\n\n return error\n }\n\n if (Array.isArray(error.errors)) {\n error.errors = error.errors.map(prepare)\n return error\n }\n\n return prepare(error)\n }\n\n return error\n },\n [getErrorMessages, formatMessage]\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 // If the error is a type error, we want to show it even if the field as not been used\n if (localErrorRef.current?.['ajvKeyword'] === 'type') {\n revealErrorRef.current = true\n }\n\n const error = revealErrorRef.current\n ? prepareError(errorProp) ??\n localErrorRef.current ??\n contextErrorRef.current\n : undefined\n\n const hasVisibleError =\n Boolean(error) || (inFieldBlock && fieldBlockContext.hasErrorProp)\n const hasError = useCallback(() => {\n return Boolean(\n errorProp ?? localErrorRef.current ?? contextErrorRef.current\n )\n }, [errorProp])\n\n const connectWithPathListenerRef = useRef(async () => {\n if (\n localErrorRef.current ||\n validateUnchanged ||\n continuousValidation\n ) {\n if (onChangeValidatorRef.current) {\n runOnChangeValidator()\n }\n }\n\n if (localErrorRef.current && onBlurValidatorRef.current) {\n runOnBlurValidator()\n }\n })\n\n const { getValueByPath } = useDataValue()\n const exportValidatorsRef = useRef(exportValidators)\n exportValidatorsRef.current = exportValidators\n const additionalArgs = useMemo(() => {\n const errorMessages = getErrorMessages()\n\n const args: ValidatorAdditionalArgs<Value> = {\n /** @deprecated – can be removed in v11 */\n ...errorMessages,\n\n errorMessages,\n validators: exportValidatorsRef.current,\n connectWithPath: (path) => {\n setFieldEventListener?.(\n path,\n 'onPathChange',\n connectWithPathListenerRef.current\n )\n\n return {\n getValue: () => getValueByPath(path),\n }\n },\n }\n\n return args\n }, [getErrorMessages, getValueByPath, setFieldEventListener])\n\n const callStackRef = useRef<Array<Validator<Value>>>([])\n const hasBeenCalledRef = useCallback((validator: Validator<Value>) => {\n const result = callStackRef.current.includes(validator)\n callStackRef.current.push(validator)\n return result\n }, [])\n\n const callValidatorFnAsync = useCallback(\n async (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): Promise<ReturnType<Validator<Value>>> => {\n if (typeof validator !== 'function') {\n return\n }\n\n const result = await validator(value, additionalArgs)\n\n if (Array.isArray(result)) {\n for (const validator of result) {\n if (!hasBeenCalledRef(validator)) {\n const result = await callValidatorFnAsync(validator, value)\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n callStackRef.current = []\n } else {\n return result\n }\n },\n [additionalArgs, hasBeenCalledRef]\n )\n\n const callValidatorFnSync = useCallback(\n (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): ReturnType<Validator<Value>> => {\n if (typeof validator !== 'function') {\n return // stop here\n }\n\n const result = validator(value, additionalArgs)\n\n if (Array.isArray(result)) {\n const hasAsyncValidator = result.some((validator) =>\n isAsync(validator)\n )\n if (hasAsyncValidator) {\n return new Promise((resolve) => {\n callValidatorFnAsync(validator, value).then((result) => {\n resolve(result)\n })\n })\n }\n\n for (const validator of result) {\n if (!hasBeenCalledRef(validator)) {\n const result = callValidatorFnSync(validator, value)\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n callStackRef.current = []\n } else {\n return result\n }\n },\n [additionalArgs, callValidatorFnAsync, hasBeenCalledRef]\n )\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n initiator: ErrorInitiator,\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 (initiator !== 'dataContextError') {\n localErrorInitiatorRef.current = initiator\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 setFieldErrorBoundary?.(identifier, error)\n\n // Set the visual states\n setFieldStateFieldBlock?.({\n stateId,\n identifier,\n type: 'error',\n content: error,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n\n forceUpdate()\n },\n [\n identifier,\n inFieldBlock,\n prepareError,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n validateInitially,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe', undefined)\n localErrorInitiatorRef.current = undefined\n if (Array.isArray(schemaValidatorRef.current?.errors)) {\n schemaValidatorRef.current.errors = []\n }\n }, [persistErrorState])\n\n const removeError = useCallback(() => {\n changedRef.current = false\n hideError()\n clearErrorState()\n }, [clearErrorState, hideError])\n\n const validatorCacheRef = useRef({\n onChangeValidator: null,\n onBlurValidator: null,\n })\n\n const revealOnChangeValidatorResult = useCallback(\n ({ result, unchangedValue }) => {\n const runAsync = isAsync(onChangeValidatorRef.current)\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState(\n 'gracefully',\n 'onChangeValidator',\n result as Error\n )\n\n if (\n (validateInitially && !changedRef.current) ||\n validateUnchanged ||\n continuousValidation ||\n runAsync // Because it's a better UX to show the error when the validation is async/delayed\n ) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n revealError()\n forceUpdate()\n })\n }\n }\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n\n if (unchangedValue) {\n setFieldState(result instanceof Error ? 'error' : 'complete')\n } else {\n setFieldState('pending')\n }\n }\n },\n [\n continuousValidation,\n defineAsyncProcess,\n persistErrorState,\n revealError,\n setFieldState,\n validateInitially,\n validateUnchanged,\n ]\n )\n\n const callOnChangeValidator = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return {}\n }\n\n const tmpValue = valueRef.current\n\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n\n const unchangedValue = tmpValue === valueRef.current\n return { result, unchangedValue }\n }, [callValidatorFnAsync, callValidatorFnSync])\n\n const startOnChangeValidatorValidation = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return\n }\n\n if (isAsync(onChangeValidatorRef.current)) {\n defineAsyncProcess('validator')\n setFieldState('validating')\n hideError()\n }\n\n // Ideally, we should rather call \"callOnChangeValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n const tmpValue = valueRef.current\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n const unchangedValue = tmpValue === valueRef.current\n\n revealOnChangeValidatorResult({ result, unchangedValue })\n\n return { result }\n }, [\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n hideError,\n revealOnChangeValidatorResult,\n setFieldState,\n ])\n\n const runOnChangeValidator = useCallback(async () => {\n if (!onChangeValidatorRef.current) {\n return // stop here\n }\n\n const { result, unchangedValue } = await callOnChangeValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onChangeValidator)\n ) {\n if (result) {\n revealOnChangeValidatorResult({ result, unchangedValue })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onChangeValidator = result || null\n }, [\n callOnChangeValidator,\n clearErrorState,\n hideError,\n revealOnChangeValidatorResult,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return {}\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n return { result }\n },\n [callValidatorFnAsync, callValidatorFnSync]\n )\n\n const revealOnBlurValidatorResult = useCallback(\n ({ result }) => {\n persistErrorState('gracefully', 'onBlurValidator', result as Error)\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n revealError()\n },\n [defineAsyncProcess, persistErrorState, revealError, setFieldState]\n )\n\n const startOnBlurValidatorProcess = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return // stop here\n }\n\n if (\n (localErrorInitiatorRef.current === 'required' ||\n localErrorInitiatorRef.current === 'schema') &&\n !asyncBehaviorIsEnabled && // Has async \"onChange\" event\n !isAsync(onChangeValidatorRef.current)\n ) {\n return // stop here\n }\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n // Ideally, we should rather call \"callOnBlurValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n revealOnBlurValidatorResult({ result })\n },\n [\n asyncBehaviorIsEnabled,\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n revealOnBlurValidatorResult,\n setFieldState,\n ]\n )\n\n const runOnBlurValidator = useCallback(async () => {\n if (!onBlurValidatorRef.current) {\n return // stop here\n }\n\n const { result } = await callOnBlurValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onBlurValidator) &&\n revealErrorRef.current\n ) {\n if (result) {\n revealOnBlurValidatorResult({ result })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onBlurValidator = result || null\n }, [\n callOnBlurValidator,\n clearErrorState,\n hideError,\n revealOnBlurValidatorResult,\n ])\n\n const prioritizeContextSchema = useMemo(() => {\n if (errorPrioritization) {\n const schemaPath = identifier.split('/').join('/properties/')\n const hasContextSchema = pointer.has(\n dataContext?.schema || {},\n schemaPath\n )\n return (\n hasContextSchema &&\n errorPrioritization?.indexOf('contextSchema') === 0\n )\n }\n }, [dataContext?.schema, errorPrioritization, identifier])\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n if (disabled) {\n if (isProcessActive()) {\n clearErrorState()\n }\n hideError()\n setFieldState(undefined)\n return // stop here\n }\n\n const value = valueRef.current\n changeEventResultRef.current = null\n validatedValue.current = null\n let initiator: ErrorInitiator = 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('Field.errorRequired'),\n })\n if (requiredError instanceof Error) {\n initiator = 'required'\n throw requiredError\n }\n\n // Validate by provided JSON Schema for this value\n if (\n value !== undefined &&\n !prioritizeContextSchema &&\n typeof schemaValidatorRef.current === 'function'\n ) {\n if (!schemaValidatorRef.current(value)) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors,\n value\n )\n initiator = 'schema'\n throw error\n }\n }\n\n // Validate by provided derivative validator\n if (\n onChangeValidatorRef.current &&\n (changedRef.current || validateInitially || validateUnchanged)\n ) {\n const { result } = await startOnChangeValidatorValidation()\n\n if (result instanceof Error) {\n initiator = 'onChangeValidator'\n throw result\n }\n }\n\n // Only for when \"validateInitially\" is set to true\n if (\n onBlurValidatorRef.current &&\n validateInitially &&\n !changedRef.current\n ) {\n const { result } = await callOnBlurValidator()\n\n if (result instanceof Error) {\n initiator = 'onBlurValidator'\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValue.current = value\n } catch (error) {\n if (isProcessActive()) {\n persistErrorState('weak', initiator, error)\n }\n }\n }, [\n callOnBlurValidator,\n clearErrorState,\n disabled,\n emptyValue,\n hideError,\n persistErrorState,\n prioritizeContextSchema,\n required,\n requiredProp,\n setFieldState,\n startOnChangeValidatorValidation,\n startProcess,\n validateInitially,\n validateUnchanged,\n ])\n\n const handleError = useCallback(() => {\n if (\n continuousValidation ||\n (continuousValidation !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with continuousValidation set to false).\n revealError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [continuousValidation, hideError, revealError])\n\n const getEventArgs = useCallback(\n ({\n eventName,\n additionalArgs,\n overrideValue = undefined,\n }): [Value] | [Value, AdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n eventName\n )\n const args = transformers.current.provideAdditionalArgs(\n value,\n additionalArgs\n )\n const transformedValue = transformers.current.transformOut(\n value,\n args\n ) as Value\n\n if (typeof args !== 'undefined') {\n return [transformedValue, args]\n }\n\n return [transformedValue]\n },\n []\n )\n\n const setHasFocus = useCallback(\n async (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => {\n const args = getEventArgs({\n eventName: hasFocus ? 'onFocus' : 'onBlur',\n overrideValue,\n additionalArgs,\n })\n\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n onFocus?.apply(this, args)\n setMountedFieldStateDataContext(identifier, {\n isFocused: true,\n })\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 onBlur?.apply(this, args)\n setMountedFieldStateDataContext(identifier, {\n isFocused: false,\n })\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n addToPool(\n 'onBlurValidator',\n async () => await startOnBlurValidatorProcess({ overrideValue }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n revealError()\n forceUpdate()\n })\n }\n },\n [\n getEventArgs,\n onFocus,\n setMountedFieldStateDataContext,\n identifier,\n onBlur,\n validateUnchanged,\n addToPool,\n runPool,\n startOnBlurValidatorProcess,\n revealError,\n ]\n )\n\n // Await an async operation to run after criteria are fulfilled\n const yieldAsyncProcess = useCallback(\n async ({\n name,\n waitFor,\n }: {\n name: 'onChangeLocal' | 'onChangeContext' | 'onSubmitContext'\n waitFor: Array<{\n processName?: AsyncProcesses\n withStates: Array<SubmitStateWithValidating>\n hasValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, hasValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n hasValue === validatedValue.current\n\n const result =\n (typeof hasValue === 'undefined'\n ? false\n : !hasMatchingValue) ||\n ((processName\n ? processName === asyncProcessRef.current\n : true) &&\n withStates?.some((state) => {\n return state === fieldStateRef.current\n }))\n\n return result\n }\n )\n\n return result\n }\n\n if (validateProcesses() === true) {\n asyncBufferRef.current[name] = { resolve, validateProcesses }\n } else {\n resolve()\n setFieldState('pending')\n }\n })\n },\n [setFieldState]\n )\n\n const handleChangeEventResult = useCallback(async () => {\n const result: EventStateObjectWithSuccess =\n changeEventResultRef.current\n\n if (typeof result?.error !== 'undefined') {\n if (result?.error === null) {\n removeError()\n } else {\n persistErrorState('gracefully', 'onChangeValidator', result.error)\n revealError()\n }\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 forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n removeError,\n persistErrorState,\n revealError,\n yieldAsyncProcess,\n setFieldState,\n ])\n\n const setEventResult = useCallback(\n async (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 await handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled && !executeOnChangeRegardlessOfError) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n ],\n })\n }\n\n if (hasPath) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError() || executeOnChangeRegardlessOfError) {\n await setEventResult(\n (await handlePathChangeDataContext?.(\n identifier\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n await setEventResult(null)\n }\n } else {\n setEventResult(\n handlePathChangeDataContext?.(\n identifier\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n executeOnChangeRegardlessOfError,\n hasPath,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n hasError,\n setEventResult,\n handlePathChangeDataContext,\n identifier,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n const currentValue = valueRef.current\n if (newValue === 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 =\n transformers.current.transformValue(newValue, currentValue) ??\n (emptyValue as unknown as Value)\n const contextValue = transformers.current.transformOut(\n transformedValue,\n transformers.current.provideAdditionalArgs(\n transformedValue,\n additionalArgs\n )\n )\n\n valueRef.current = transformedValue\n\n if (hasPath) {\n handlePathChangeUnvalidatedDataContext(identifier, contextValue)\n }\n\n if (itemPath) {\n handleChangeIterateContext?.(\n makeIteratePath(itemPath, ''),\n contextValue\n )\n }\n\n addToPool(\n 'validator',\n validateValue,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n emptyValue,\n additionalArgs,\n hasPath,\n itemPath,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handlePathChangeUnvalidatedDataContext,\n identifier,\n handleChangeIterateContext,\n makeIteratePath,\n handleError,\n ]\n )\n\n const setChanged = (state: boolean) => {\n changedRef.current = state\n }\n\n const setDisplayValue = useCallback(\n (path: Identifier, content: React.ReactNode) => {\n if (!path || !fieldDisplayValueRef?.current) {\n return // stop here\n }\n fieldDisplayValueRef.current[path] =\n valueRef.current === (emptyValue as unknown as Value)\n ? undefined\n : content\n },\n [emptyValue, fieldDisplayValueRef]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value | unknown,\n additionalArgs: AdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n const fromInput = transformers.current.fromInput(argFromInput)\n\n if (fromInput === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n // Must be set before validation\n changedRef.current = true\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(fromInput)\n } else {\n updateValue(fromInput)\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getEventArgs({\n eventName: 'onChange',\n additionalArgs,\n })\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n hasValue: args[0],\n },\n ],\n })\n\n defineAsyncProcess('onChangeLocal')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n // If the value has changed during the async process, we don't want to call the onChange anymore\n await setEventResult(await onChange?.apply(this, args))\n } else {\n await setEventResult(null)\n }\n },\n true\n )\n } else {\n const args = getEventArgs({\n eventName: 'onChange',\n additionalArgs,\n })\n setEventResult(onChange?.apply(this, args))\n }\n\n await runPool()\n },\n [\n asyncBehaviorIsEnabled,\n onChange,\n runPool,\n hideError,\n updateValue,\n addToPool,\n getEventArgs,\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 setFieldPropsDataContext?.(identifier, props)\n\n const { activeIndex, activeIndexRef } = wizardContext || {}\n const activeIndexTmpRef = useRef(activeIndex)\n useEffect(() => {\n activeIndexTmpRef.current = activeIndex\n }, [activeIndex]) // We want to watch for step changes\n\n useMemo(() => {\n setMountedFieldStateDataContext(identifier, {\n isPreMounted: true,\n })\n\n if (typeof isVisible === 'boolean') {\n setMountedFieldStateDataContext(identifier, { isVisible })\n }\n }, [setMountedFieldStateDataContext, identifier, isVisible])\n\n useEffect(() => {\n if (typeof activeIndexRef?.current === 'number') {\n setMountedFieldStateDataContext(identifier, {\n wasStepChange: false,\n })\n\n return () => {\n const wasStepChange =\n typeof activeIndex === 'number' &&\n // eslint-disable-next-line react-hooks/exhaustive-deps\n activeIndexRef.current !== activeIndexTmpRef.current\n\n setMountedFieldStateDataContext(identifier, {\n wasStepChange,\n })\n }\n }\n }, [\n activeIndex,\n activeIndexRef,\n identifier,\n setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\n // Mount procedure.\n setMountedFieldStateDataContext(identifier, {\n isMounted: true,\n isPreMounted: true,\n })\n setMountedFieldSnapshot?.(identifier, { isMounted: true })\n\n // Unmount procedure.\n return () => {\n setMountedFieldStateDataContext(identifier, {\n isMounted: false,\n isPreMounted: false,\n })\n setMountedFieldSnapshot?.(identifier, { isMounted: false })\n }\n }, [\n identifier,\n setMountedFieldSnapshot,\n setMountedFieldStateDataContext,\n ])\n\n // - Warn when a field path is used multiple times\n useEffect(() => {\n if (\n !omitMultiplePathWarning &&\n process.env.NODE_ENV !== 'production' &&\n (hasPath || hasItemPath) &&\n (hasPath ? !iterateItemContext : true) &&\n existingFieldsRef?.current\n ) {\n const existingFields = existingFieldsRef.current\n if (existingFields.has(identifier)) {\n warn('Path declared multiple times:', identifier)\n } else {\n existingFields.set(identifier, true)\n return () => {\n existingFields.delete(identifier)\n }\n }\n }\n }, [\n existingFieldsRef,\n hasItemPath,\n hasPath,\n identifier,\n iterateItemContext,\n omitMultiplePathWarning,\n ])\n\n useEffect(() => {\n return () => {\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldErrorBoundary?.(identifier, undefined)\n localErrorRef.current = undefined\n }\n }, [\n identifier,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\n validateValue()\n }, [validateValue])\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema])\n\n // Use \"useLayoutEffect\" and \"externalValueDidChangeRef\"\n // to cooperate with the the data context \"updateDataValueDataContext\" routine further down,\n // which also uses useLayoutEffect.\n const externalValueDidChangeRef = useRef(false)\n useLayoutEffect(() => {\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n externalValueDidChangeRef.current = true\n }\n }, [externalValue, hasItemPath])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (externalValueDidChangeRef.current) {\n externalValueDidChangeRef.current = false\n validateValue()\n forceUpdate()\n }\n }, [externalValue]) // Keep \"externalValue\" in the dependency list, so it will be updated when it changes\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 (!localErrorInitiatorRef.current) {\n const error = prepareError(dataContextError)\n if (error) {\n persistErrorState('weak', 'dataContextError', 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 // Use \"useLayoutEffect\" to avoid flickering when value/defaultValue gets set, and other fields dependent on it.\n // Form.Visibility is an example of a logic, where a field value/defaultValue can be used to set the set state of a path,\n // where again other fields depend on it.\n const tmpTransValueRef = useRef<Record<Identifier, unknown>>({})\n const setContextData = useCallback(\n ({ preventUpdate = undefined } = {}) => {\n if (!hasPath && !hasItemPath) {\n return // stop here\n }\n\n let valueToStore: Value | unknown = valueProp ?? emptyValue\n\n const data = wizardContext?.prerenderFieldProps\n ? dataContext.data\n : dataContext.internalDataRef?.current\n\n // First, look for existing data in the context\n const hasValue = pointer.has(data, identifier) || identifier === '/'\n const existingValue = transformers.current.transformIn(\n identifier === '/'\n ? data\n : hasValue\n ? pointer.get(data, identifier)\n : undefined\n )\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 valueToStore === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, identifier)\n if (hasValue) {\n const sharedValue = transformers.current.transformIn(\n pointer.get(sharedState.data, identifier)\n )\n if (sharedValue) {\n valueToStore = sharedValue as Value\n }\n }\n }\n\n const hasDefaultValue =\n typeof defaultValueRef.current !== 'undefined' &&\n typeof valueToStore === 'undefined'\n\n if (hasDefaultValue) {\n valueToStore = defaultValueRef.current\n defaultValueRef.current = undefined\n }\n\n let skipEqualCheck = false\n\n if (hasItemPath) {\n if (existingValue === valueToStore) {\n return // stop here, don't store the same value again\n }\n\n if (\n typeof valueToStore === 'undefined' &&\n typeof existingValue !== 'undefined'\n ) {\n // On the rerender (after defaultValue was set) and the data context was given, but as \"undefined\",\n // then we want to use the current value (the defaultValue from the previous render),\n // because else the comparison \"valueRef.current !== existingValue\" is true and we will set undefined as the new data context value.\n valueToStore = existingValue\n }\n\n if (itemPath === '/') {\n // The push container uses an object as the default value for the array.\n // But when a root slash is used, we want to make sure the field don't gets the object.\n if (existingValue === clearedData) {\n valueRef.current = undefined\n }\n\n if (hasDefaultValue && Array.isArray(existingValue)) {\n // Ensures support to have a field with a defaultValue and a itemPath of \"/\"\n // This way, we ensure the defaultValue is actually set in the data context.\n skipEqualCheck = true\n }\n }\n }\n\n // Used by e.g. Iterate.Array\n if (updateContextDataInSync) {\n // When an array is given (iterate), we don't want to overwrite the existing array\n if (hasDefaultValue && hasValue) {\n return // stop here, we don't want to overwrite the existing array\n }\n\n // React.StrictMode will come with \"undefined\" on the second render,\n // because \"defaultValueRef.current\" was removed.\n // But because we run \"useMemo\" on the first render when updateContextDataInSync is true,\n // we have still a valid value/array.\n if (!Array.isArray(valueToStore)) {\n return // stop here, never use a non-array value when in \"updateContextDataInSync\"\n }\n\n if (Array.isArray(existingValue)) {\n if (valueToStore.length !== existingValue.length) {\n skipEqualCheck = true // in order to update the items\n }\n\n // Keep Iterate.Array in sync with the data context\n valueRef.current = existingValue\n }\n }\n\n if (\n !skipEqualCheck &&\n hasValue &&\n (valueToStore === existingValue ||\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current === existingValue)\n ) {\n return // stop here, we don't want to set same value twice\n }\n\n if (\n identifier in tmpTransValueRef.current &&\n tmpTransValueRef.current[identifier] === valueToStore\n ) {\n return // stop here, avoid infinite loop\n }\n\n const transformedValue = transformers.current.transformOut(\n valueToStore as Value,\n transformers.current.provideAdditionalArgs(valueToStore as Value)\n )\n if (transformedValue !== valueToStore) {\n // When the value got transformed, we want to update the internal value, and avoid an infinite loop\n tmpTransValueRef.current[identifier] = valueToStore\n valueToStore = transformedValue\n }\n\n // When an itemPath is given, we don't want to rerender the context on every iteration because of performance reasons.\n // We know when the last item is reached, so we can prevent rerenders during the iteration.\n if (hasItemPath && iterateIndex < iterateArrayValue?.length - 1) {\n preventUpdate = true\n }\n\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(identifier, valueToStore, {\n preventUpdate,\n })\n\n if (!preventUpdate) {\n validateDataDataContext?.()\n }\n },\n [\n dataContext.data,\n dataContext.id,\n dataContext.internalDataRef,\n emptyValue,\n hasItemPath,\n hasPath,\n identifier,\n itemPath,\n iterateArrayValue?.length,\n iterateIndex,\n updateContextDataInSync,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n wizardContext?.prerenderFieldProps,\n ]\n )\n\n const isEmptyData = useCallback(\n () => {\n return (\n dataContext.isEmptyDataRef?.current ||\n dataContext.internalDataRef?.current ===\n (dataContext.props?.emptyData ?? clearedData)\n )\n },\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n dataContext.internalDataRef,\n dataContext.props?.emptyData,\n externalValue, // ensure to include \"externalValue\" in order to properly remove errors\n ]\n )\n\n // Use \"useLayoutEffect\" to be in sync with the data context \"updateDataValueDataContext\".\n useLayoutEffect(() => {\n if (isEmptyData()) {\n defaultValueRef.current = defaultValue\n changedRef.current = false\n hideError()\n clearErrorState()\n }\n }, [clearErrorState, defaultValue, hideError, isEmptyData])\n\n useMemo(() => {\n if (updateContextDataInSync && !isEmptyData()) {\n setContextData({ preventUpdate: true })\n }\n }, [isEmptyData, updateContextDataInSync, setContextData])\n\n useLayoutEffect(() => {\n if (!updateContextDataInSync && !isEmptyData()) {\n setContextData()\n }\n\n // In order to render Iterate.Array with \"countPath\" immediately\n if (forceUpdateWhenContextDataIsSet) {\n forceUpdate()\n }\n }, [\n forceUpdateWhenContextDataIsSet,\n isEmptyData,\n setContextData,\n updateContextDataInSync,\n ])\n\n useEffect(() => {\n if (isEmptyData()) {\n setContextData()\n validateValue()\n }\n }, [isEmptyData, setContextData, validateValue])\n\n useEffect(() => {\n if (showAllErrors || showBoundaryErrors) {\n // In case of async validation, we don't want to show existing errors before the validation has been completed\n if (fieldStateRef.current !== 'validating') {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n revealError()\n }\n } else if (showBoundaryErrors === false) {\n hideError()\n }\n }, [hideError, revealError, showAllErrors, showBoundaryErrors])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (onChangeValidatorRef.current || onBlurValidatorRef.current)\n ) {\n hideError()\n forceUpdate()\n }\n }, [dataContext.formState, hideError])\n\n const onSubmitHandler = useCallback(async () => {\n if (hasError()) {\n return // stop here\n }\n\n addToPool(\n 'validator',\n startOnChangeValidatorValidation,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onBlurValidator',\n startOnBlurValidatorProcess,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [\n addToPool,\n startOnBlurValidatorProcess,\n hasError,\n runPool,\n startOnChangeValidatorValidation,\n ])\n\n // Validate/call validator functions during submit of the form\n useEffect(() => {\n setFieldEventListener?.(identifier, 'onSubmit', onSubmitHandler)\n }, [identifier, onSubmitHandler, setFieldEventListener])\n\n // Set the error in the field block context if this field is inside a field block\n useEffect(() => {\n if (inFieldBlock) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n\n return () => {\n // Unmount procedure\n if (mountedFieldsRefFieldBlock) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n }\n }\n }, [\n errorProp,\n identifier,\n inFieldBlock,\n info,\n mountedFieldsRefFieldBlock,\n setFieldStateFieldBlock,\n warning,\n ])\n\n const infoRef = useRef<React.ReactNode>(info)\n const warningRef = useRef<React.ReactNode>(warning)\n useUpdateEffect(() => {\n infoRef.current = info\n warningRef.current = warning\n forceUpdate()\n }, [info, warning])\n\n const connections = useMemo(() => {\n return {\n setEventResult,\n }\n }, [setEventResult])\n setFieldConnectionDataContext?.(identifier, connections)\n\n // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>(\n (acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n },\n { ...props.htmlAttributes }\n )\n }, [props])\n\n if (error) {\n htmlAttributes['aria-invalid'] = error ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = 'true'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n\n // Check if there are any state IDs to be added to the aria-describedby attribute\n const stateIds = fieldBlockContext.fieldStateIdsRef?.current\n\n if (stateIds) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n [\n error && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (error || errorProp) && `${id}-form-status--error`,\n warning && `${id}-form-status--warning`,\n info && `${id}-form-status--info`,\n ].filter(Boolean)\n\n if (ids.length) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n ids\n )\n }\n }\n\n const fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? error : undefined,\n required,\n labelSuffix: props.labelSuffix,\n\n /** HTML Attributes */\n disabled:\n onBlurValidator &&\n asyncProcessRef.current === 'onBlurValidator' &&\n fieldStateRef.current === 'validating'\n ? true\n : disabled,\n\n /** Internal */\n fieldState: resolveValidatingState(fieldStateRef.current),\n }\n\n const sharedData = useSharedState('field-block-props-' + id)\n sharedData.set(fieldBlockProps)\n\n useEffect(() => {\n isInternalRerenderRef.current = undefined\n })\n\n return {\n ...props,\n ...fieldBlockProps,\n\n /** HTML Attributes */\n name: props.name || props.path?.replace('/', '') || id,\n autoComplete:\n props.autoComplete ??\n (typeof dataContext.autoComplete === 'boolean'\n ? dataContext.autoComplete\n ? 'on'\n : 'off'\n : undefined),\n\n /** Documented APIs */\n id,\n value: transformers.current.toInput(valueRef.current),\n hasError: hasVisibleError,\n isChanged: Boolean(changedRef.current),\n props,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setChanged,\n setDisplayValue,\n forceUpdate,\n\n /** Internal */\n dataContext,\n }\n}\n\nexport interface ReturnAdditional<Value> {\n /** Documented APIs */\n value: Value\n isChanged: boolean\n htmlAttributes: AriaAttributes | DataAttributes\n setHasFocus: (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value | unknown,\n additionalArgs?: AdditionalEventArgs\n ) => void\n updateValue: (value: Value) => void\n setChanged: (state: boolean) => void\n setDisplayValue: (path: Identifier, value: React.ReactNode) => 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":["React","useRef","useEffect","useContext","useCallback","useMemo","useReducer","pointer","ajvErrorsToOneFormError","errorChanged","overwriteErrorMessagesWithGivenAjvKeys","extendErrorMessagesWithTranslationMessages","FormError","Context","DataContext","clearedData","FieldProviderContext","combineDescribedBy","warn","useId","useUpdateEffect","FieldBlockContext","IterateElementContext","SectionContext","FieldBoundaryContext","VisibilityContext","WizardContext","SnapshotContext","useProcessManager","usePath","createSharedState","useSharedState","isAsync","useTranslation","useExternalValue","useDataValue","useLayoutEffect","window","useFieldProps","localProps","executeOnChangeRegardlessOfError","updateContextDataInSync","omitMultiplePathWarning","forceUpdateWhenContextDataIsSet","_dataContext$props","_transformers$current","_localErrorRef$curren","_ref","_prepareError","_dataContext$props3","_props$path","_props$autoComplete","extend","props","path","pathProp","value","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","exportValidators","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","provideAdditionalArgs","additionalArgs","fromExternal","validateRequired","res","undefined","salt","forceUpdate","isInternalRerenderRef","current","startProcess","id","dataContext","fieldBlockContext","iterateItemContext","sectionContext","fieldBoundaryContext","wizardContext","setMountedField","setMountedFieldSnapshot","isVisible","translation","formatMessage","translationRef","transformers","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldProps","setFieldPropsDataContext","setFieldConnection","setFieldConnectionDataContext","setVisibleError","setVisibleErrorDataContext","setMountedFieldState","setMountedFieldStateDataContext","setFieldEventListener","errors","dataContextErrors","showAllErrors","contextErrorMessages","fieldDisplayValueRef","existingFieldsRef","onChangeContext","readOnly","inFieldBlock","Boolean","disableStatusSummary","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","handleChange","handleChangeIterateContext","index","iterateIndex","arrayValue","iterateArrayValue","sectionPath","errorPrioritization","setFieldErrorBoundary","setVisibleErrorBoundary","showBoundaryErrors","hasPath","hasItemPath","identifier","makeIteratePath","joinPath","cleanPath","defaultValueRef","externalValue","valueRef","changedRef","hasFocusRef","paths","split","length","requiredInSchema","pathWithoutLast","slice","join","schemaPart","has","get","requiredSchemaList","Array","isArray","rootPath","replace","requiredList","map","startsWith","push","collected","flatMap","filter","some","revealErrorRef","errorMethodRef","localErrorRef","localErrorInitiatorRef","dataContextError","contextErrorRef","onChangeValidatorRef","onBlurValidatorRef","schemaValidatorRef","_dataContext$ajvInsta","ajvInstance","compile","asyncBehaviorIsEnabled","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","name","asyncBufferRef","key","resolve","validateProcesses","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","revealError","hideError","getErrorMessages","messages","_objectSpread","prepareError","prepare","message","ajvKeyword","ajvMessage","validationRule","messageValues","Object","entries","reduce","msg","includes","hasVisibleError","hasErrorProp","hasError","_ref2","connectWithPathListenerRef","runOnChangeValidator","runOnBlurValidator","getValueByPath","exportValidatorsRef","args","validators","connectWithPath","getValue","callStackRef","hasBeenCalledRef","result","callValidatorFnAsync","Error","callValidatorFnSync","hasAsyncValidator","Promise","then","stateId","persistErrorState","method","initiator","errorArg","keys","type","content","showInitially","clearErrorState","_schemaValidatorRef$c","removeError","validatorCacheRef","onChangeValidator","revealOnChangeValidatorResult","unchangedValue","callOnChangeValidator","tmpValue","startOnChangeValidatorValidation","String","callOnBlurValidator","overrideValue","revealOnBlurValidatorResult","startOnBlurValidatorProcess","prioritizeContextSchema","schemaPath","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","handleError","getEventArgs","eventName","transformedValue","setHasFocus","hasFocus","apply","isFocused","yieldAsyncProcess","waitFor","processName","withStates","hasValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","_transformers$current2","currentValue","contextValue","setChanged","setDisplayValue","argFromInput","handleFocus","handleBlur","activeIndex","activeIndexRef","activeIndexTmpRef","isPreMounted","wasStepChange","isMounted","process","env","NODE_ENV","existingFields","set","delete","_dataContext$ajvInsta2","externalValueDidChangeRef","tmpTransValueRef","setContextData","preventUpdate","_dataContext$internal","valueToStore","data","prerenderFieldProps","internalDataRef","existingValue","sharedState","sharedValue","hasDefaultValue","skipEqualCheck","isEmptyData","_dataContext$isEmptyD","_dataContext$internal2","_dataContext$props$em","_dataContext$props2","isEmptyDataRef","emptyData","formState","onSubmitHandler","show","connections","htmlAttributes","acc","cur","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","ids","fieldBlockProps","label","labelDescription","labelSuffix","layout","layoutOptions","fieldState","labelHeight","sharedData","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import React, {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from '../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n ajvErrorsToOneFormError,\n errorChanged,\n overwriteErrorMessagesWithGivenAjvKeys,\n extendErrorMessagesWithTranslationMessages,\n FormError,\n} from '../utils'\nimport {\n FieldPropsGeneric,\n AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n ValidatorAdditionalArgs,\n Validator,\n Identifier,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { clearedData } from '../DataContext/Provider/Provider'\nimport FieldProviderContext from '../Field/Provider/FieldProviderContext'\nimport { combineDescribedBy, warn } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport FieldBlockContext, {\n FieldBlockContextProps,\n} from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateItemContext'\nimport SectionContext from '../Form/Section/SectionContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport VisibilityContext from '../Form/Visibility/VisibilityContext'\nimport WizardContext from '../Wizard/Context'\nimport SnapshotContext from '../Form/Snapshot/SnapshotContext'\nimport useProcessManager from './useProcessManager'\nimport usePath from './usePath'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\nimport useExternalValue from './useExternalValue'\nimport useDataValue from './useDataValue'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\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 ErrorInitiator =\n | 'required'\n | 'schema'\n | 'onChangeValidator'\n | 'onBlurValidator'\n | 'dataContextError'\ntype AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string | boolean | number\n}\n\n// Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n// useEffect depend on them (like the external `value`)\n\nexport default function useFieldProps<Value, EmptyValue, Props>(\n localProps: Props & FieldPropsGeneric<Value, EmptyValue>,\n {\n executeOnChangeRegardlessOfError = false,\n updateContextDataInSync = false,\n omitMultiplePathWarning = false,\n forceUpdateWhenContextDataIsSet = false,\n } = {}\n): typeof localProps & ReturnAdditional<Value> {\n const { extend } = useContext(FieldProviderContext)\n const props = extend(localProps)\n\n const {\n path: pathProp,\n value: valueProp,\n defaultValue,\n itemPath,\n emptyValue,\n required: requiredProp,\n disabled: disabledProp,\n info,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n exportValidators,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n transformIn = (value: Value) => value,\n transformOut = (value: Value) => value,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n provideAdditionalArgs = (\n value: Value,\n additionalArgs: AdditionalEventArgs\n ) => additionalArgs,\n fromExternal = (value: Value) => value,\n validateRequired = (value, { emptyValue, required, error }) => {\n const res =\n required &&\n ((value as unknown) === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\n },\n } = props\n\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const isInternalRerenderRef = useRef(undefined)\n useMemo(() => {\n /**\n * This is currently not used, but we keep it here for future use.\n * It lets you check for isInternalRerenderRef.current !== undefined\n * inside a useUpdateEffect or useEffect to know if the component is rerendering from inside or outside.\n */\n isInternalRerenderRef.current = salt\n }, [salt])\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateItemContext = useContext(IterateElementContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const wizardContext = useContext(WizardContext)\n const { setMountedField: setMountedFieldSnapshot } =\n useContext(SnapshotContext) || {}\n const { isVisible } = useContext(VisibilityContext) || {}\n\n const translation = useTranslation()\n const { formatMessage } = translation\n const translationRef = useRef(translation)\n translationRef.current = translation\n\n const transformers = useRef({\n transformIn,\n transformOut,\n provideAdditionalArgs,\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: setFieldPropsDataContext,\n setFieldConnection: setFieldConnectionDataContext,\n setVisibleError: setVisibleErrorDataContext,\n setMountedFieldState: setMountedFieldStateDataContext,\n setFieldEventListener,\n errors: dataContextErrors,\n showAllErrors,\n contextErrorMessages,\n fieldDisplayValueRef,\n existingFieldsRef,\n } = dataContext || {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const inFieldBlock = Boolean(\n fieldBlockContext && fieldBlockContext.disableStatusSummary !== true\n )\n const {\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = inFieldBlock ? fieldBlockContext : ({} as FieldBlockContextProps)\n const {\n handleChange: handleChangeIterateContext,\n index: iterateIndex,\n arrayValue: iterateArrayValue,\n } = iterateItemContext || {}\n const { path: sectionPath, errorPrioritization } = sectionContext || {}\n const {\n setFieldError: setFieldErrorBoundary,\n setVisibleError: setVisibleErrorBoundary,\n showBoundaryErrors,\n } = fieldBoundaryContext || {}\n\n const hasPath = Boolean(pathProp)\n const hasItemPath = Boolean(itemPath)\n const { path, identifier, makeIteratePath, joinPath, cleanPath } =\n usePath({\n id,\n path: pathProp,\n itemPath,\n })\n\n const defaultValueRef = useRef(defaultValue)\n useLayoutEffect(() => {\n // To support React.StrictMode, we also need to add it from inside a useEffect\n defaultValueRef.current = defaultValue\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n const externalValue =\n transformers.current.transformIn(\n useExternalValue<Value>({\n path,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue,\n })\n ) ?? defaultValueRef.current\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>()\n const hasFocusRef = useRef<boolean>()\n\n const required = useMemo(() => {\n if (typeof requiredProp !== 'undefined') {\n return requiredProp\n }\n\n if (schema || dataContext?.schema) {\n const paths = identifier.split('/')\n if (paths.length > 0) {\n const requiredInSchema = [schema?.['required']]\n\n // - Handle context schema\n if (paths.length > 1) {\n const schema = dataContext.schema\n const pathWithoutLast = paths.slice(0, -1).join('/properties/')\n const schemaPart = pointer.has(schema, pathWithoutLast)\n ? pointer.get(schema, pathWithoutLast)\n : schema\n\n const requiredSchemaList = schemaPart?.['required']\n if (Array.isArray(requiredSchemaList)) {\n const rootPath = pathWithoutLast.replace(/properties\\//g, '')\n const requiredList = requiredSchemaList.map((path) => {\n path = cleanPath('/' + path)\n return sectionPath && path.startsWith(sectionPath)\n ? path\n : joinPath([sectionPath || rootPath, path])\n })\n requiredInSchema.push(requiredList)\n }\n }\n\n const collected = requiredInSchema\n .flatMap((value) => value)\n .filter(Boolean)\n\n if (\n collected.filter(Boolean).some((path) => {\n path = cleanPath('/' + path)\n return identifier === path || sectionPath === path\n })\n ) {\n return true\n }\n }\n }\n }, [\n cleanPath,\n dataContext.schema,\n identifier,\n joinPath,\n requiredProp,\n schema,\n sectionPath,\n ])\n\n // Error handling\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const revealErrorRef = useRef<boolean>(\n validateInitially ?? Boolean(errorProp)\n )\n\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 localErrorInitiatorRef = useRef<ErrorInitiator>()\n\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const dataContextError = useMemo(() => {\n return path ? dataContextErrors?.[identifier] : undefined\n }, [dataContextErrors, identifier, path])\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const onChangeValidatorRef = useRef(validator)\n useUpdateEffect(() => {\n onChangeValidatorRef.current = validator\n }, [validator])\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>()\n if (!schemaValidatorRef.current && schema) {\n schemaValidatorRef.current = dataContext.ajvInstance?.compile(schema)\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 revealError = useCallback(() => {\n // To support \"validateInitially={false}\" prop, we need to make sure that the error is not shown initially\n if (revealErrorRef.current === false && validateInitially === false) {\n revealErrorRef.current = undefined\n return // stop here\n }\n\n if (!revealErrorRef.current) {\n revealErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n setVisibleErrorBoundary?.(identifier, !!localErrorRef.current)\n setVisibleErrorDataContext?.(identifier, !!localErrorRef.current)\n }\n }, [\n identifier,\n setVisibleErrorDataContext,\n setVisibleErrorBoundary,\n showFieldErrorFieldBlock,\n validateInitially,\n ])\n\n const hideError = useCallback(() => {\n if (revealErrorRef.current) {\n revealErrorRef.current = undefined\n showFieldErrorFieldBlock?.(identifier, false)\n setVisibleErrorBoundary?.(identifier, false)\n setVisibleErrorDataContext?.(identifier, false)\n }\n }, [\n identifier,\n setVisibleErrorBoundary,\n setVisibleErrorDataContext,\n showFieldErrorFieldBlock,\n ])\n\n const getErrorMessages = useCallback(() => {\n const messages = {\n ...contextErrorMessages,\n ...contextErrorMessages?.[identifier],\n ...errorMessages,\n }\n\n return extendErrorMessagesWithTranslationMessages(\n overwriteErrorMessagesWithGivenAjvKeys(messages),\n translationRef.current\n )\n }, [contextErrorMessages, errorMessages, 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 const prepare = (error: FormError) => {\n let message = error.message\n const errorMessages = getErrorMessages()\n\n const { ajvKeyword } = error\n if (typeof ajvKeyword === 'string') {\n const ajvMessage = errorMessages?.[ajvKeyword]\n if (ajvMessage) {\n message = ajvMessage\n }\n }\n\n /** @deprecated – can be removed in v11 */\n const { validationRule } = error\n if (typeof validationRule === 'string') {\n const ajvMessage = errorMessages?.[validationRule]\n if (ajvMessage) {\n message = ajvMessage\n }\n }\n\n if (errorMessages[message]) {\n // - For when the message is e.g. Field.errorRequired or Custom.key, but delivered in the `errorMessages` object\n message = errorMessages[message]\n\n if (error.messageValues) {\n message = Object.entries(error.messageValues || {}).reduce(\n (msg, [key, value]) => {\n return msg.replace(`{${key}}`, value)\n },\n message\n )\n }\n } else if (message.includes('.')) {\n // - For when the message is e.g. Field.errorRequired\n message = formatMessage(message, error.messageValues)\n }\n\n error.message = message\n\n return error\n }\n\n if (Array.isArray(error.errors)) {\n error.errors = error.errors.map(prepare)\n return error\n }\n\n return prepare(error)\n }\n\n return error\n },\n [getErrorMessages, formatMessage]\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 // If the error is a type error, we want to show it even if the field as not been used\n if (localErrorRef.current?.['ajvKeyword'] === 'type') {\n revealErrorRef.current = true\n }\n\n const error = revealErrorRef.current\n ? prepareError(errorProp) ??\n localErrorRef.current ??\n contextErrorRef.current\n : undefined\n\n const hasVisibleError =\n Boolean(error) || (inFieldBlock && fieldBlockContext.hasErrorProp)\n const hasError = useCallback(() => {\n return Boolean(\n errorProp ?? localErrorRef.current ?? contextErrorRef.current\n )\n }, [errorProp])\n\n const connectWithPathListenerRef = useRef(async () => {\n if (\n localErrorRef.current ||\n validateUnchanged ||\n continuousValidation\n ) {\n if (onChangeValidatorRef.current) {\n runOnChangeValidator()\n }\n }\n\n if (localErrorRef.current && onBlurValidatorRef.current) {\n runOnBlurValidator()\n }\n })\n\n const { getValueByPath } = useDataValue()\n const exportValidatorsRef = useRef(exportValidators)\n exportValidatorsRef.current = exportValidators\n const additionalArgs = useMemo(() => {\n const errorMessages = getErrorMessages()\n\n const args: ValidatorAdditionalArgs<Value> = {\n /** @deprecated – can be removed in v11 */\n ...errorMessages,\n\n errorMessages,\n validators: exportValidatorsRef.current,\n connectWithPath: (path) => {\n setFieldEventListener?.(\n path,\n 'onPathChange',\n connectWithPathListenerRef.current\n )\n\n return {\n getValue: () => getValueByPath(path),\n }\n },\n }\n\n return args\n }, [getErrorMessages, getValueByPath, setFieldEventListener])\n\n const callStackRef = useRef<Array<Validator<Value>>>([])\n const hasBeenCalledRef = useCallback((validator: Validator<Value>) => {\n const result = callStackRef.current.includes(validator)\n callStackRef.current.push(validator)\n return result\n }, [])\n\n const callValidatorFnAsync = useCallback(\n async (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): Promise<ReturnType<Validator<Value>>> => {\n if (typeof validator !== 'function') {\n return\n }\n\n const result = await validator(value, additionalArgs)\n\n if (Array.isArray(result)) {\n for (const validator of result) {\n if (!hasBeenCalledRef(validator)) {\n const result = await callValidatorFnAsync(validator, value)\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n callStackRef.current = []\n } else {\n return result\n }\n },\n [additionalArgs, hasBeenCalledRef]\n )\n\n const callValidatorFnSync = useCallback(\n (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): ReturnType<Validator<Value>> => {\n if (typeof validator !== 'function') {\n return // stop here\n }\n\n const result = validator(value, additionalArgs)\n\n if (Array.isArray(result)) {\n const hasAsyncValidator = result.some((validator) =>\n isAsync(validator)\n )\n if (hasAsyncValidator) {\n return new Promise((resolve) => {\n callValidatorFnAsync(validator, value).then((result) => {\n resolve(result)\n })\n })\n }\n\n for (const validator of result) {\n if (!hasBeenCalledRef(validator)) {\n const result = callValidatorFnSync(validator, value)\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n callStackRef.current = []\n } else {\n return result\n }\n },\n [additionalArgs, callValidatorFnAsync, hasBeenCalledRef]\n )\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n initiator: ErrorInitiator,\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 (initiator !== 'dataContextError') {\n localErrorInitiatorRef.current = initiator\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 setFieldErrorBoundary?.(identifier, error)\n\n // Set the visual states\n setFieldStateFieldBlock?.({\n stateId,\n identifier,\n type: 'error',\n content: error,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n\n forceUpdate()\n },\n [\n identifier,\n inFieldBlock,\n prepareError,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n validateInitially,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe', undefined)\n localErrorInitiatorRef.current = undefined\n if (Array.isArray(schemaValidatorRef.current?.errors)) {\n schemaValidatorRef.current.errors = []\n }\n }, [persistErrorState])\n\n const removeError = useCallback(() => {\n changedRef.current = false\n hideError()\n clearErrorState()\n }, [clearErrorState, hideError])\n\n const validatorCacheRef = useRef({\n onChangeValidator: null,\n onBlurValidator: null,\n })\n\n const revealOnChangeValidatorResult = useCallback(\n ({ result, unchangedValue }) => {\n const runAsync = isAsync(onChangeValidatorRef.current)\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState(\n 'gracefully',\n 'onChangeValidator',\n result as Error\n )\n\n if (\n (validateInitially && !changedRef.current) ||\n validateUnchanged ||\n continuousValidation ||\n runAsync // Because it's a better UX to show the error when the validation is async/delayed\n ) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n revealError()\n forceUpdate()\n })\n }\n }\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n\n if (unchangedValue) {\n setFieldState(result instanceof Error ? 'error' : 'complete')\n } else {\n setFieldState('pending')\n }\n }\n },\n [\n continuousValidation,\n defineAsyncProcess,\n persistErrorState,\n revealError,\n setFieldState,\n validateInitially,\n validateUnchanged,\n ]\n )\n\n const callOnChangeValidator = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return {}\n }\n\n const tmpValue = valueRef.current\n\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n\n const unchangedValue = tmpValue === valueRef.current\n return { result, unchangedValue }\n }, [callValidatorFnAsync, callValidatorFnSync])\n\n const startOnChangeValidatorValidation = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return\n }\n\n if (isAsync(onChangeValidatorRef.current)) {\n defineAsyncProcess('validator')\n setFieldState('validating')\n hideError()\n }\n\n // Ideally, we should rather call \"callOnChangeValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n const tmpValue = valueRef.current\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n const unchangedValue = tmpValue === valueRef.current\n\n revealOnChangeValidatorResult({ result, unchangedValue })\n\n return { result }\n }, [\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n hideError,\n revealOnChangeValidatorResult,\n setFieldState,\n ])\n\n const runOnChangeValidator = useCallback(async () => {\n if (!onChangeValidatorRef.current) {\n return // stop here\n }\n\n const { result, unchangedValue } = await callOnChangeValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onChangeValidator)\n ) {\n if (result) {\n revealOnChangeValidatorResult({ result, unchangedValue })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onChangeValidator = result || null\n }, [\n callOnChangeValidator,\n clearErrorState,\n hideError,\n revealOnChangeValidatorResult,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return {}\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n return { result }\n },\n [callValidatorFnAsync, callValidatorFnSync]\n )\n\n const revealOnBlurValidatorResult = useCallback(\n ({ result }) => {\n persistErrorState('gracefully', 'onBlurValidator', result as Error)\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n revealError()\n },\n [defineAsyncProcess, persistErrorState, revealError, setFieldState]\n )\n\n const startOnBlurValidatorProcess = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return // stop here\n }\n\n if (\n (localErrorInitiatorRef.current === 'required' ||\n localErrorInitiatorRef.current === 'schema') &&\n !asyncBehaviorIsEnabled && // Has async \"onChange\" event\n !isAsync(onChangeValidatorRef.current)\n ) {\n return // stop here\n }\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n // Ideally, we should rather call \"callOnBlurValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n revealOnBlurValidatorResult({ result })\n },\n [\n asyncBehaviorIsEnabled,\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n revealOnBlurValidatorResult,\n setFieldState,\n ]\n )\n\n const runOnBlurValidator = useCallback(async () => {\n if (!onBlurValidatorRef.current) {\n return // stop here\n }\n\n const { result } = await callOnBlurValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onBlurValidator) &&\n revealErrorRef.current\n ) {\n if (result) {\n revealOnBlurValidatorResult({ result })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onBlurValidator = result || null\n }, [\n callOnBlurValidator,\n clearErrorState,\n hideError,\n revealOnBlurValidatorResult,\n ])\n\n const prioritizeContextSchema = useMemo(() => {\n if (errorPrioritization) {\n const schemaPath = identifier.split('/').join('/properties/')\n const hasContextSchema = pointer.has(\n dataContext?.schema || {},\n schemaPath\n )\n return (\n hasContextSchema &&\n errorPrioritization?.indexOf('contextSchema') === 0\n )\n }\n }, [dataContext?.schema, errorPrioritization, identifier])\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n if (disabled) {\n if (isProcessActive()) {\n clearErrorState()\n }\n hideError()\n setFieldState(undefined)\n return // stop here\n }\n\n const value = valueRef.current\n changeEventResultRef.current = null\n validatedValue.current = null\n let initiator: ErrorInitiator = 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('Field.errorRequired'),\n })\n if (requiredError instanceof Error) {\n initiator = 'required'\n throw requiredError\n }\n\n // Validate by provided JSON Schema for this value\n if (\n value !== undefined &&\n !prioritizeContextSchema &&\n typeof schemaValidatorRef.current === 'function'\n ) {\n if (!schemaValidatorRef.current(value)) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors,\n value\n )\n initiator = 'schema'\n throw error\n }\n }\n\n // Validate by provided derivative validator\n if (\n onChangeValidatorRef.current &&\n (changedRef.current || validateInitially || validateUnchanged)\n ) {\n const { result } = await startOnChangeValidatorValidation()\n\n if (result instanceof Error) {\n initiator = 'onChangeValidator'\n throw result\n }\n }\n\n // Only for when \"validateInitially\" is set to true\n if (\n onBlurValidatorRef.current &&\n validateInitially &&\n !changedRef.current\n ) {\n const { result } = await callOnBlurValidator()\n\n if (result instanceof Error) {\n initiator = 'onBlurValidator'\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValue.current = value\n } catch (error) {\n if (isProcessActive()) {\n persistErrorState('weak', initiator, error)\n }\n }\n }, [\n callOnBlurValidator,\n clearErrorState,\n disabled,\n emptyValue,\n hideError,\n persistErrorState,\n prioritizeContextSchema,\n required,\n requiredProp,\n setFieldState,\n startOnChangeValidatorValidation,\n startProcess,\n validateInitially,\n validateUnchanged,\n ])\n\n const handleError = useCallback(() => {\n if (\n continuousValidation ||\n (continuousValidation !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with continuousValidation set to false).\n revealError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [continuousValidation, hideError, revealError])\n\n const getEventArgs = useCallback(\n ({\n eventName,\n additionalArgs,\n overrideValue = undefined,\n }): [Value] | [Value, AdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n eventName\n )\n const args = transformers.current.provideAdditionalArgs(\n value,\n additionalArgs\n )\n const transformedValue = transformers.current.transformOut(\n value,\n args\n ) as Value\n\n if (typeof args !== 'undefined') {\n return [transformedValue, args]\n }\n\n return [transformedValue]\n },\n []\n )\n\n const setHasFocus = useCallback(\n async (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => {\n const args = getEventArgs({\n eventName: hasFocus ? 'onFocus' : 'onBlur',\n overrideValue,\n additionalArgs,\n })\n\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n onFocus?.apply(this, args)\n setMountedFieldStateDataContext(identifier, {\n isFocused: true,\n })\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 onBlur?.apply(this, args)\n setMountedFieldStateDataContext(identifier, {\n isFocused: false,\n })\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n addToPool(\n 'onBlurValidator',\n async () => await startOnBlurValidatorProcess({ overrideValue }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n revealError()\n forceUpdate()\n })\n }\n },\n [\n getEventArgs,\n onFocus,\n setMountedFieldStateDataContext,\n identifier,\n onBlur,\n validateUnchanged,\n addToPool,\n runPool,\n startOnBlurValidatorProcess,\n revealError,\n ]\n )\n\n // Await an async operation to run after criteria are fulfilled\n const yieldAsyncProcess = useCallback(\n async ({\n name,\n waitFor,\n }: {\n name: 'onChangeLocal' | 'onChangeContext' | 'onSubmitContext'\n waitFor: Array<{\n processName?: AsyncProcesses\n withStates: Array<SubmitStateWithValidating>\n hasValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, hasValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n hasValue === validatedValue.current\n\n const result =\n (typeof hasValue === 'undefined'\n ? false\n : !hasMatchingValue) ||\n ((processName\n ? processName === asyncProcessRef.current\n : true) &&\n withStates?.some((state) => {\n return state === fieldStateRef.current\n }))\n\n return result\n }\n )\n\n return result\n }\n\n if (validateProcesses() === true) {\n asyncBufferRef.current[name] = { resolve, validateProcesses }\n } else {\n resolve()\n setFieldState('pending')\n }\n })\n },\n [setFieldState]\n )\n\n const handleChangeEventResult = useCallback(async () => {\n const result: EventStateObjectWithSuccess =\n changeEventResultRef.current\n\n if (typeof result?.error !== 'undefined') {\n if (result?.error === null) {\n removeError()\n } else {\n persistErrorState('gracefully', 'onChangeValidator', result.error)\n revealError()\n }\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 forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n removeError,\n persistErrorState,\n revealError,\n yieldAsyncProcess,\n setFieldState,\n ])\n\n const setEventResult = useCallback(\n async (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 await handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled && !executeOnChangeRegardlessOfError) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n ],\n })\n }\n\n if (hasPath) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError() || executeOnChangeRegardlessOfError) {\n await setEventResult(\n (await handlePathChangeDataContext?.(\n identifier\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n await setEventResult(null)\n }\n } else {\n setEventResult(\n handlePathChangeDataContext?.(\n identifier\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n executeOnChangeRegardlessOfError,\n hasPath,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n hasError,\n setEventResult,\n handlePathChangeDataContext,\n identifier,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n const currentValue = valueRef.current\n if (newValue === 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 =\n transformers.current.transformValue(newValue, currentValue) ??\n (emptyValue as unknown as Value)\n const contextValue = transformers.current.transformOut(\n transformedValue,\n transformers.current.provideAdditionalArgs(\n transformedValue,\n additionalArgs\n )\n )\n\n valueRef.current = transformedValue\n\n if (hasPath) {\n handlePathChangeUnvalidatedDataContext(identifier, contextValue)\n }\n\n if (itemPath) {\n handleChangeIterateContext?.(\n makeIteratePath(itemPath, ''),\n contextValue\n )\n }\n\n addToPool(\n 'validator',\n validateValue,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n emptyValue,\n additionalArgs,\n hasPath,\n itemPath,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handlePathChangeUnvalidatedDataContext,\n identifier,\n handleChangeIterateContext,\n makeIteratePath,\n handleError,\n ]\n )\n\n const setChanged = (state: boolean) => {\n changedRef.current = state\n }\n\n const setDisplayValue = useCallback(\n (path: Identifier, content: React.ReactNode) => {\n if (!path || !fieldDisplayValueRef?.current) {\n return // stop here\n }\n fieldDisplayValueRef.current[path] =\n valueRef.current === (emptyValue as unknown as Value)\n ? undefined\n : content\n },\n [emptyValue, fieldDisplayValueRef]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value | unknown,\n additionalArgs: AdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n const fromInput = transformers.current.fromInput(argFromInput)\n\n if (fromInput === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n // Must be set before validation\n changedRef.current = true\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(fromInput)\n } else {\n updateValue(fromInput)\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getEventArgs({\n eventName: 'onChange',\n additionalArgs,\n })\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n hasValue: args[0],\n },\n ],\n })\n\n defineAsyncProcess('onChangeLocal')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n // If the value has changed during the async process, we don't want to call the onChange anymore\n await setEventResult(await onChange?.apply(this, args))\n } else {\n await setEventResult(null)\n }\n },\n true\n )\n } else {\n const args = getEventArgs({\n eventName: 'onChange',\n additionalArgs,\n })\n setEventResult(onChange?.apply(this, args))\n }\n\n await runPool()\n },\n [\n asyncBehaviorIsEnabled,\n onChange,\n runPool,\n hideError,\n updateValue,\n addToPool,\n getEventArgs,\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 setFieldPropsDataContext?.(identifier, props)\n\n const { activeIndex, activeIndexRef } = wizardContext || {}\n const activeIndexTmpRef = useRef(activeIndex)\n useEffect(() => {\n activeIndexTmpRef.current = activeIndex\n }, [activeIndex]) // We want to watch for step changes\n\n useMemo(() => {\n setMountedFieldStateDataContext(identifier, {\n isPreMounted: true,\n })\n\n if (typeof isVisible === 'boolean') {\n setMountedFieldStateDataContext(identifier, { isVisible })\n }\n }, [setMountedFieldStateDataContext, identifier, isVisible])\n\n useEffect(() => {\n if (typeof activeIndexRef?.current === 'number') {\n setMountedFieldStateDataContext(identifier, {\n wasStepChange: false,\n })\n\n return () => {\n const wasStepChange =\n typeof activeIndex === 'number' &&\n // eslint-disable-next-line react-hooks/exhaustive-deps\n activeIndexRef.current !== activeIndexTmpRef.current\n\n setMountedFieldStateDataContext(identifier, {\n wasStepChange,\n })\n }\n }\n }, [\n activeIndex,\n activeIndexRef,\n identifier,\n setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\n // Mount procedure.\n setMountedFieldStateDataContext(identifier, {\n isMounted: true,\n isPreMounted: true,\n })\n setMountedFieldSnapshot?.(identifier, { isMounted: true })\n\n // Unmount procedure.\n return () => {\n setMountedFieldStateDataContext(identifier, {\n isMounted: false,\n isPreMounted: false,\n })\n setMountedFieldSnapshot?.(identifier, { isMounted: false })\n }\n }, [\n identifier,\n setMountedFieldSnapshot,\n setMountedFieldStateDataContext,\n ])\n\n // - Warn when a field path is used multiple times\n useEffect(() => {\n if (\n !omitMultiplePathWarning &&\n process.env.NODE_ENV !== 'production' &&\n (hasPath || hasItemPath) &&\n (hasPath ? !iterateItemContext : true) &&\n existingFieldsRef?.current\n ) {\n const existingFields = existingFieldsRef.current\n if (existingFields.has(identifier)) {\n warn('Path declared multiple times:', identifier)\n } else {\n existingFields.set(identifier, true)\n return () => {\n existingFields.delete(identifier)\n }\n }\n }\n }, [\n existingFieldsRef,\n hasItemPath,\n hasPath,\n identifier,\n iterateItemContext,\n omitMultiplePathWarning,\n ])\n\n useEffect(() => {\n return () => {\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldErrorBoundary?.(identifier, undefined)\n localErrorRef.current = undefined\n }\n }, [\n identifier,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\n validateValue()\n }, [validateValue])\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema])\n\n // Use \"useLayoutEffect\" and \"externalValueDidChangeRef\"\n // to cooperate with the the data context \"updateDataValueDataContext\" routine further down,\n // which also uses useLayoutEffect.\n const externalValueDidChangeRef = useRef(false)\n useLayoutEffect(() => {\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n externalValueDidChangeRef.current = true\n }\n }, [externalValue, hasItemPath])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (externalValueDidChangeRef.current) {\n externalValueDidChangeRef.current = false\n validateValue()\n forceUpdate()\n }\n }, [externalValue]) // Keep \"externalValue\" in the dependency list, so it will be updated when it changes\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 (!localErrorInitiatorRef.current) {\n const error = prepareError(dataContextError)\n if (error) {\n persistErrorState('weak', 'dataContextError', 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 // Use \"useLayoutEffect\" to avoid flickering when value/defaultValue gets set, and other fields dependent on it.\n // Form.Visibility is an example of a logic, where a field value/defaultValue can be used to set the set state of a path,\n // where again other fields depend on it.\n const tmpTransValueRef = useRef<Record<Identifier, unknown>>({})\n const setContextData = useCallback(\n ({ preventUpdate = undefined } = {}) => {\n if (!hasPath && !hasItemPath) {\n return // stop here\n }\n\n let valueToStore: Value | unknown = valueProp ?? emptyValue\n\n const data = wizardContext?.prerenderFieldProps\n ? dataContext.data\n : dataContext.internalDataRef?.current\n\n // First, look for existing data in the context\n const hasValue = pointer.has(data, identifier) || identifier === '/'\n const existingValue = transformers.current.transformIn(\n identifier === '/'\n ? data\n : hasValue\n ? pointer.get(data, identifier)\n : undefined\n )\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 valueToStore === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, identifier)\n if (hasValue) {\n const sharedValue = transformers.current.transformIn(\n pointer.get(sharedState.data, identifier)\n )\n if (sharedValue) {\n valueToStore = sharedValue as Value\n }\n }\n }\n\n const hasDefaultValue =\n typeof defaultValueRef.current !== 'undefined' &&\n typeof valueToStore === 'undefined'\n\n if (hasDefaultValue) {\n valueToStore = defaultValueRef.current\n defaultValueRef.current = undefined\n }\n\n let skipEqualCheck = false\n\n if (hasItemPath) {\n if (existingValue === valueToStore) {\n return // stop here, don't store the same value again\n }\n\n if (\n typeof valueToStore === 'undefined' &&\n typeof existingValue !== 'undefined'\n ) {\n // On the rerender (after defaultValue was set) and the data context was given, but as \"undefined\",\n // then we want to use the current value (the defaultValue from the previous render),\n // because else the comparison \"valueRef.current !== existingValue\" is true and we will set undefined as the new data context value.\n valueToStore = existingValue\n }\n\n if (itemPath === '/') {\n // The push container uses an object as the default value for the array.\n // But when a root slash is used, we want to make sure the field don't gets the object.\n if (existingValue === clearedData) {\n valueRef.current = undefined\n }\n\n if (hasDefaultValue && Array.isArray(existingValue)) {\n // Ensures support to have a field with a defaultValue and a itemPath of \"/\"\n // This way, we ensure the defaultValue is actually set in the data context.\n skipEqualCheck = true\n }\n }\n }\n\n // Used by e.g. Iterate.Array\n if (updateContextDataInSync) {\n // When an array is given (iterate), we don't want to overwrite the existing array\n if (hasDefaultValue && hasValue) {\n return // stop here, we don't want to overwrite the existing array\n }\n\n // React.StrictMode will come with \"undefined\" on the second render,\n // because \"defaultValueRef.current\" was removed.\n // But because we run \"useMemo\" on the first render when updateContextDataInSync is true,\n // we have still a valid value/array.\n if (!Array.isArray(valueToStore)) {\n return // stop here, never use a non-array value when in \"updateContextDataInSync\"\n }\n\n if (Array.isArray(existingValue)) {\n if (valueToStore.length !== existingValue.length) {\n skipEqualCheck = true // in order to update the items\n }\n\n // Keep Iterate.Array in sync with the data context\n valueRef.current = existingValue\n }\n }\n\n if (\n !skipEqualCheck &&\n hasValue &&\n (valueToStore === existingValue ||\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current === existingValue)\n ) {\n return // stop here, we don't want to set same value twice\n }\n\n if (\n identifier in tmpTransValueRef.current &&\n tmpTransValueRef.current[identifier] === valueToStore\n ) {\n return // stop here, avoid infinite loop\n }\n\n const transformedValue = transformers.current.transformOut(\n valueToStore as Value,\n transformers.current.provideAdditionalArgs(valueToStore as Value)\n )\n if (transformedValue !== valueToStore) {\n // When the value got transformed, we want to update the internal value, and avoid an infinite loop\n tmpTransValueRef.current[identifier] = valueToStore\n valueToStore = transformedValue\n }\n\n // When an itemPath is given, we don't want to rerender the context on every iteration because of performance reasons.\n // We know when the last item is reached, so we can prevent rerenders during the iteration.\n if (hasItemPath && iterateIndex < iterateArrayValue?.length - 1) {\n preventUpdate = true\n }\n\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(identifier, valueToStore, {\n preventUpdate,\n })\n\n if (!preventUpdate) {\n validateDataDataContext?.()\n }\n },\n [\n dataContext.data,\n dataContext.id,\n dataContext.internalDataRef,\n emptyValue,\n hasItemPath,\n hasPath,\n identifier,\n itemPath,\n iterateArrayValue?.length,\n iterateIndex,\n updateContextDataInSync,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n wizardContext?.prerenderFieldProps,\n ]\n )\n\n const isEmptyData = useCallback(\n () => {\n return (\n dataContext.isEmptyDataRef?.current ||\n dataContext.internalDataRef?.current ===\n (dataContext.props?.emptyData ?? clearedData)\n )\n },\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n dataContext.internalDataRef,\n dataContext.props?.emptyData,\n externalValue, // ensure to include \"externalValue\" in order to properly remove errors\n ]\n )\n\n // Use \"useLayoutEffect\" to be in sync with the data context \"updateDataValueDataContext\".\n useLayoutEffect(() => {\n if (isEmptyData()) {\n defaultValueRef.current = defaultValue\n changedRef.current = false\n hideError()\n clearErrorState()\n }\n }, [clearErrorState, defaultValue, hideError, isEmptyData])\n\n useMemo(() => {\n if (updateContextDataInSync && !isEmptyData()) {\n setContextData({ preventUpdate: true })\n }\n }, [isEmptyData, updateContextDataInSync, setContextData])\n\n useLayoutEffect(() => {\n if (!updateContextDataInSync && !isEmptyData()) {\n setContextData()\n }\n\n // In order to render Iterate.Array with \"countPath\" immediately\n if (forceUpdateWhenContextDataIsSet) {\n forceUpdate()\n }\n }, [\n forceUpdateWhenContextDataIsSet,\n isEmptyData,\n setContextData,\n updateContextDataInSync,\n ])\n\n useEffect(() => {\n if (isEmptyData()) {\n setContextData()\n validateValue()\n }\n }, [isEmptyData, setContextData, validateValue])\n\n useEffect(() => {\n if (showAllErrors || showBoundaryErrors) {\n // In case of async validation, we don't want to show existing errors before the validation has been completed\n if (fieldStateRef.current !== 'validating') {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n revealError()\n }\n } else if (showBoundaryErrors === false) {\n hideError()\n }\n }, [hideError, revealError, showAllErrors, showBoundaryErrors])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (onChangeValidatorRef.current || onBlurValidatorRef.current)\n ) {\n hideError()\n forceUpdate()\n }\n }, [dataContext.formState, hideError])\n\n const onSubmitHandler = useCallback(async () => {\n if (hasError()) {\n return // stop here\n }\n\n addToPool(\n 'validator',\n startOnChangeValidatorValidation,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onBlurValidator',\n startOnBlurValidatorProcess,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [\n addToPool,\n startOnBlurValidatorProcess,\n hasError,\n runPool,\n startOnChangeValidatorValidation,\n ])\n\n // Validate/call validator functions during submit of the form\n useEffect(() => {\n setFieldEventListener?.(identifier, 'onSubmit', onSubmitHandler)\n }, [identifier, onSubmitHandler, setFieldEventListener])\n\n // Set the error in the field block context if this field is inside a field block\n useEffect(() => {\n if (inFieldBlock) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n\n return () => {\n // Unmount procedure\n if (mountedFieldsRefFieldBlock) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n }\n }\n }, [\n errorProp,\n identifier,\n inFieldBlock,\n info,\n mountedFieldsRefFieldBlock,\n setFieldStateFieldBlock,\n warning,\n ])\n\n const infoRef = useRef<React.ReactNode>(info)\n const warningRef = useRef<React.ReactNode>(warning)\n useUpdateEffect(() => {\n infoRef.current = info\n warningRef.current = warning\n forceUpdate()\n }, [info, warning])\n\n const connections = useMemo(() => {\n return {\n setEventResult,\n }\n }, [setEventResult])\n setFieldConnectionDataContext?.(identifier, connections)\n\n // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>(\n (acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n },\n { ...props.htmlAttributes }\n )\n }, [props])\n\n if (error) {\n htmlAttributes['aria-invalid'] = error ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = 'true'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n\n // Check if there are any state IDs to be added to the aria-describedby attribute\n const stateIds = fieldBlockContext.fieldStateIdsRef?.current\n\n if (stateIds) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n [\n error && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (error || errorProp) && `${id}-form-status--error`,\n warning && `${id}-form-status--warning`,\n info && `${id}-form-status--info`,\n ].filter(Boolean)\n\n if (ids.length) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n ids\n )\n }\n }\n\n const fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? error : undefined,\n required,\n label: props.label,\n labelDescription: props.labelDescription,\n labelSuffix: props.labelSuffix,\n layout: props.layout,\n layoutOptions: props.layoutOptions,\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 labelHeight:\n typeof props['size'] === 'string' ? props['size'] : undefined, // component/field size\n }\n\n const sharedData = useSharedState('field-block-props-' + id)\n sharedData.set(fieldBlockProps)\n\n useEffect(() => {\n isInternalRerenderRef.current = undefined\n })\n\n return {\n ...props,\n ...fieldBlockProps,\n\n /** HTML Attributes */\n name: props.name || props.path?.replace('/', '') || id,\n autoComplete:\n props.autoComplete ??\n (typeof dataContext.autoComplete === 'boolean'\n ? dataContext.autoComplete\n ? 'on'\n : 'off'\n : undefined),\n\n /** Documented APIs */\n id,\n value: transformers.current.toInput(valueRef.current),\n hasError: hasVisibleError,\n isChanged: Boolean(changedRef.current),\n props,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setChanged,\n setDisplayValue,\n forceUpdate,\n\n /** Internal */\n dataContext,\n }\n}\n\nexport interface ReturnAdditional<Value> {\n /** Documented APIs */\n value: Value\n isChanged: boolean\n htmlAttributes: AriaAttributes | DataAttributes\n setHasFocus: (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value | unknown,\n additionalArgs?: AdditionalEventArgs\n ) => void\n updateValue: (value: Value) => void\n setChanged: (state: boolean) => void\n setDisplayValue: (path: Identifier, value: React.ReactNode) => 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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"}
|