@dnb/eufemia 10.63.3 → 10.64.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 +50 -0
- package/assets/icons/dnb/calendar_add.svg +1 -0
- package/assets/icons/dnb/calendar_add_medium.svg +1 -0
- package/assets/icons/dnb/cog_medium.svg +1 -1
- package/assets/icons/dnb/digipass_corporate.svg +1 -1
- package/assets/icons/dnb/digipass_corporate_medium.svg +1 -1
- package/assets/icons/dnb/digipass_private.svg +1 -1
- package/assets/icons/dnb/digipass_private_medium.svg +1 -1
- package/assets/icons/dnb/digitpass_private_corporate.svg +1 -0
- package/assets/icons/dnb/digitpass_private_corporate_medium.svg +1 -0
- package/assets/icons/dnb/eufemia-icons-xml-categorized.tgz +0 -0
- package/assets/icons/dnb/eufemia-icons-xml.tgz +0 -0
- package/assets/icons/dnb/goal.svg +1 -0
- package/assets/icons/dnb/goal_medium.svg +1 -0
- package/assets/icons/dnb/information.svg +1 -1
- package/assets/icons/dnb/investor.svg +1 -0
- package/assets/icons/dnb/investor_medium.svg +1 -0
- package/assets/icons/dnb/layout_grid.svg +1 -0
- package/assets/icons/dnb/layout_grid_medium.svg +1 -0
- package/assets/icons/dnb/question.svg +1 -1
- package/assets/icons/dnb/question_circled.svg +1 -1
- package/assets/icons/dnb/question_medium.svg +1 -1
- package/assets/icons/dnb/return_1_medium.svg +1 -1
- package/assets/icons/dnb/show_pin.svg +1 -0
- package/assets/icons/dnb/show_pin_medium.svg +1 -0
- package/assets/icons/dnb/table.svg +1 -0
- package/assets/icons/dnb/table_medium.svg +1 -0
- package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
- package/cjs/components/date-picker/DatePickerCalc.js +1 -1
- package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
- package/cjs/components/drawer/style/dnb-drawer.css +4 -4
- package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
- package/cjs/components/drawer/style/dnb-drawer.scss +4 -4
- package/cjs/components/dropdown/Dropdown.d.ts +1 -1
- package/cjs/components/form-status/FormStatus.js +3 -2
- package/cjs/components/form-status/FormStatus.js.map +1 -1
- package/cjs/components/heading/HeadingCounter.js +4 -4
- package/cjs/components/heading/HeadingCounter.js.map +1 -1
- package/cjs/components/input/Input.js +1 -1
- package/cjs/components/input/Input.js.map +1 -1
- package/cjs/components/radio/Radio.d.ts +1 -1
- package/cjs/components/radio/RadioGroup.d.ts +1 -1
- package/cjs/components/section/Section.d.ts +1 -1
- package/cjs/components/section/Section.js.map +1 -1
- package/cjs/components/section/SectionDocs.js +1 -1
- package/cjs/components/section/SectionDocs.js.map +1 -1
- package/cjs/components/textarea/Textarea.js +8 -1
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/elements/lists/style/lists-mixins.scss +1 -1
- package/cjs/extensions/forms/Connectors/Bring/index.d.ts +1 -0
- package/cjs/extensions/forms/Connectors/Bring/index.js +11 -0
- package/cjs/extensions/forms/Connectors/Bring/index.js.map +1 -0
- package/cjs/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
- package/cjs/extensions/forms/Connectors/Bring/postalCode.js +164 -0
- package/cjs/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
- package/cjs/extensions/forms/Connectors/createContext.d.ts +58 -0
- package/cjs/extensions/forms/Connectors/createContext.js +130 -0
- package/cjs/extensions/forms/Connectors/createContext.js.map +1 -0
- package/cjs/extensions/forms/Connectors/index.d.ts +2 -0
- package/cjs/extensions/forms/Connectors/index.js +26 -0
- package/cjs/extensions/forms/Connectors/index.js.map +1 -0
- package/cjs/extensions/forms/DataContext/Context.d.ts +4 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +30 -16
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/Address/Address.d.ts +9 -0
- package/cjs/extensions/forms/Field/Address/Address.js +63 -0
- package/cjs/extensions/forms/Field/Address/Address.js.map +1 -0
- package/cjs/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Address/AddressDocs.js +15 -0
- package/cjs/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Address/index.d.ts +2 -0
- package/cjs/extensions/forms/Field/Address/index.js +27 -0
- package/cjs/extensions/forms/Field/Address/index.js.map +1 -0
- package/cjs/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Email/EmailDocs.js +15 -0
- package/cjs/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +83 -32
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/Name/Name.js +2 -2
- package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +10 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Password/PasswordDocs.js +30 -0
- package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
- package/cjs/extensions/forms/Field/index.d.ts +1 -0
- package/cjs/extensions/forms/Field/index.js +7 -0
- package/cjs/extensions/forms/Field/index.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +0 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
- package/cjs/extensions/forms/Iterate/Array/Array.js +7 -2
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -0
- package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/Address/Address.d.ts +9 -0
- package/cjs/extensions/forms/Value/Address/Address.js +41 -0
- package/cjs/extensions/forms/Value/Address/Address.js.map +1 -0
- package/cjs/extensions/forms/Value/Address/index.d.ts +2 -0
- package/cjs/extensions/forms/Value/Address/index.js +27 -0
- package/cjs/extensions/forms/Value/Address/index.js.map +1 -0
- package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
- package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- 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/Wizard/Step/Step.js +2 -2
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +13 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +20 -7
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +13 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +26 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +16 -3
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +8 -4
- package/cjs/extensions/forms/hooks/useFieldProps.js +39 -19
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/index.d.ts +1 -0
- package/cjs/extensions/forms/index.js +4 -1
- package/cjs/extensions/forms/index.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +4 -0
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +34 -10
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/cjs/icons/calendar_add.d.ts +3 -0
- package/cjs/icons/calendar_add.js +11 -0
- package/cjs/icons/calendar_add.js.map +1 -0
- package/cjs/icons/calendar_add_medium.d.ts +3 -0
- package/cjs/icons/calendar_add_medium.js +11 -0
- package/cjs/icons/calendar_add_medium.js.map +1 -0
- package/cjs/icons/digitpass_private_corporate.d.ts +3 -0
- package/cjs/icons/digitpass_private_corporate.js +11 -0
- package/cjs/icons/digitpass_private_corporate.js.map +1 -0
- package/cjs/icons/digitpass_private_corporate_medium.d.ts +3 -0
- package/cjs/icons/digitpass_private_corporate_medium.js +11 -0
- package/cjs/icons/digitpass_private_corporate_medium.js.map +1 -0
- package/cjs/icons/dnb/calendar_add.d.ts +3 -0
- package/cjs/icons/dnb/calendar_add.js +31 -0
- package/cjs/icons/dnb/calendar_add.js.map +1 -0
- package/cjs/icons/dnb/calendar_add_medium.d.ts +3 -0
- package/cjs/icons/dnb/calendar_add_medium.js +25 -0
- package/cjs/icons/dnb/calendar_add_medium.js.map +1 -0
- package/cjs/icons/dnb/cog_medium.js +1 -1
- package/cjs/icons/dnb/cog_medium.js.map +1 -1
- package/cjs/icons/dnb/digipass_corporate.js +3 -3
- package/cjs/icons/dnb/digipass_corporate.js.map +1 -1
- package/cjs/icons/dnb/digipass_corporate_medium.js +3 -3
- package/cjs/icons/dnb/digipass_corporate_medium.js.map +1 -1
- package/cjs/icons/dnb/digipass_private.js +3 -3
- package/cjs/icons/dnb/digipass_private.js.map +1 -1
- package/cjs/icons/dnb/digipass_private_medium.js +3 -3
- package/cjs/icons/dnb/digipass_private_medium.js.map +1 -1
- package/cjs/icons/dnb/digitpass_private_corporate.d.ts +3 -0
- package/cjs/icons/dnb/digitpass_private_corporate.js +25 -0
- package/cjs/icons/dnb/digitpass_private_corporate.js.map +1 -0
- package/cjs/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
- package/cjs/icons/dnb/digitpass_private_corporate_medium.js +25 -0
- package/cjs/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
- package/cjs/icons/dnb/goal.d.ts +3 -0
- package/cjs/icons/dnb/goal.js +26 -0
- package/cjs/icons/dnb/goal.js.map +1 -0
- package/cjs/icons/dnb/goal_medium.d.ts +3 -0
- package/cjs/icons/dnb/goal_medium.js +26 -0
- package/cjs/icons/dnb/goal_medium.js.map +1 -0
- package/cjs/icons/dnb/icons-meta.json +132 -4
- package/cjs/icons/dnb/icons-svg.lock +1278 -1096
- package/cjs/icons/dnb/index.d.ts +15 -1
- package/cjs/icons/dnb/index.js +98 -0
- package/cjs/icons/dnb/index.js.map +1 -1
- package/cjs/icons/dnb/information.js +1 -1
- package/cjs/icons/dnb/information.js.map +1 -1
- package/cjs/icons/dnb/investor.d.ts +3 -0
- package/cjs/icons/dnb/investor.js +33 -0
- package/cjs/icons/dnb/investor.js.map +1 -0
- package/cjs/icons/dnb/investor_medium.d.ts +3 -0
- package/cjs/icons/dnb/investor_medium.js +33 -0
- package/cjs/icons/dnb/investor_medium.js.map +1 -0
- package/cjs/icons/dnb/layout_grid.d.ts +3 -0
- package/cjs/icons/dnb/layout_grid.js +34 -0
- package/cjs/icons/dnb/layout_grid.js.map +1 -0
- package/cjs/icons/dnb/layout_grid_medium.d.ts +3 -0
- package/cjs/icons/dnb/layout_grid_medium.js +34 -0
- package/cjs/icons/dnb/layout_grid_medium.js.map +1 -0
- package/cjs/icons/dnb/question.js +1 -1
- package/cjs/icons/dnb/question.js.map +1 -1
- package/cjs/icons/dnb/question_circled.js +1 -1
- package/cjs/icons/dnb/question_circled.js.map +1 -1
- package/cjs/icons/dnb/question_medium.js +1 -1
- package/cjs/icons/dnb/question_medium.js.map +1 -1
- package/cjs/icons/dnb/return_1_medium.js +1 -1
- package/cjs/icons/dnb/return_1_medium.js.map +1 -1
- package/cjs/icons/dnb/secondary_icons.d.ts +8 -1
- package/cjs/icons/dnb/secondary_icons.js +49 -0
- package/cjs/icons/dnb/secondary_icons.js.map +1 -1
- package/cjs/icons/dnb/secondary_icons_medium.d.ts +8 -1
- package/cjs/icons/dnb/secondary_icons_medium.js +49 -0
- package/cjs/icons/dnb/secondary_icons_medium.js.map +1 -1
- package/cjs/icons/dnb/show_pin.d.ts +3 -0
- package/cjs/icons/dnb/show_pin.js +23 -0
- package/cjs/icons/dnb/show_pin.js.map +1 -0
- package/cjs/icons/dnb/show_pin_medium.d.ts +3 -0
- package/cjs/icons/dnb/show_pin_medium.js +23 -0
- package/cjs/icons/dnb/show_pin_medium.js.map +1 -0
- package/cjs/icons/dnb/table.d.ts +3 -0
- package/cjs/icons/dnb/table.js +33 -0
- package/cjs/icons/dnb/table.js.map +1 -0
- package/cjs/icons/dnb/table_medium.d.ts +3 -0
- package/cjs/icons/dnb/table_medium.js +26 -0
- package/cjs/icons/dnb/table_medium.js.map +1 -0
- package/cjs/icons/goal.d.ts +3 -0
- package/cjs/icons/goal.js +11 -0
- package/cjs/icons/goal.js.map +1 -0
- package/cjs/icons/goal_medium.d.ts +3 -0
- package/cjs/icons/goal_medium.js +11 -0
- package/cjs/icons/goal_medium.js.map +1 -0
- package/cjs/icons/index.d.ts +15 -1
- package/cjs/icons/index.js +98 -0
- package/cjs/icons/index.js.map +1 -1
- package/cjs/icons/investor.d.ts +3 -0
- package/cjs/icons/investor.js +11 -0
- package/cjs/icons/investor.js.map +1 -0
- package/cjs/icons/investor_medium.d.ts +3 -0
- package/cjs/icons/investor_medium.js +11 -0
- package/cjs/icons/investor_medium.js.map +1 -0
- package/cjs/icons/layout_grid.d.ts +3 -0
- package/cjs/icons/layout_grid.js +11 -0
- package/cjs/icons/layout_grid.js.map +1 -0
- package/cjs/icons/layout_grid_medium.d.ts +3 -0
- package/cjs/icons/layout_grid_medium.js +11 -0
- package/cjs/icons/layout_grid_medium.js.map +1 -0
- package/cjs/icons/show_pin.d.ts +3 -0
- package/cjs/icons/show_pin.js +11 -0
- package/cjs/icons/show_pin.js.map +1 -0
- package/cjs/icons/show_pin_medium.d.ts +3 -0
- package/cjs/icons/show_pin_medium.js +11 -0
- package/cjs/icons/show_pin_medium.js.map +1 -0
- package/cjs/icons/table.d.ts +3 -0
- package/cjs/icons/table.js +11 -0
- package/cjs/icons/table.js.map +1 -0
- package/cjs/icons/table_medium.d.ts +3 -0
- package/cjs/icons/table_medium.js +11 -0
- package/cjs/icons/table_medium.js.map +1 -0
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/style/core/reset.scss +3 -9
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +4 -8
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +4 -8
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +8 -4
- package/cjs/style/dnb-ui-components.min.css +2 -2
- package/cjs/style/dnb-ui-core.css +4 -8
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +4 -0
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +4 -0
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +12 -4
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +4 -0
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +4 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
- package/components/date-picker/DatePickerCalc.js +1 -1
- package/components/date-picker/DatePickerCalc.js.map +1 -1
- package/components/drawer/style/dnb-drawer.css +4 -4
- package/components/drawer/style/dnb-drawer.min.css +1 -1
- package/components/drawer/style/dnb-drawer.scss +4 -4
- package/components/dropdown/Dropdown.d.ts +1 -1
- package/components/form-status/FormStatus.js +3 -2
- package/components/form-status/FormStatus.js.map +1 -1
- package/components/heading/HeadingCounter.js +4 -4
- package/components/heading/HeadingCounter.js.map +1 -1
- package/components/input/Input.js +1 -1
- package/components/input/Input.js.map +1 -1
- package/components/radio/Radio.d.ts +1 -1
- package/components/radio/RadioGroup.d.ts +1 -1
- package/components/section/Section.d.ts +1 -1
- package/components/section/Section.js.map +1 -1
- package/components/section/SectionDocs.js +1 -1
- package/components/section/SectionDocs.js.map +1 -1
- package/components/textarea/Textarea.js +8 -1
- package/components/textarea/Textarea.js.map +1 -1
- package/elements/lists/style/lists-mixins.scss +1 -1
- package/es/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
- package/es/components/date-picker/DatePickerCalc.js +1 -1
- package/es/components/date-picker/DatePickerCalc.js.map +1 -1
- package/es/components/drawer/style/dnb-drawer.css +4 -4
- package/es/components/drawer/style/dnb-drawer.min.css +1 -1
- package/es/components/drawer/style/dnb-drawer.scss +4 -4
- package/es/components/dropdown/Dropdown.d.ts +1 -1
- package/es/components/form-status/FormStatus.js +3 -2
- package/es/components/form-status/FormStatus.js.map +1 -1
- package/es/components/heading/HeadingCounter.js +4 -4
- package/es/components/heading/HeadingCounter.js.map +1 -1
- package/es/components/input/Input.js +1 -1
- package/es/components/input/Input.js.map +1 -1
- package/es/components/radio/Radio.d.ts +1 -1
- package/es/components/radio/RadioGroup.d.ts +1 -1
- package/es/components/section/Section.d.ts +1 -1
- package/es/components/section/Section.js.map +1 -1
- package/es/components/section/SectionDocs.js +1 -1
- package/es/components/section/SectionDocs.js.map +1 -1
- package/es/components/textarea/Textarea.js +8 -1
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/elements/lists/style/lists-mixins.scss +1 -1
- package/es/extensions/forms/Connectors/Bring/index.d.ts +1 -0
- package/es/extensions/forms/Connectors/Bring/index.js +1 -0
- package/es/extensions/forms/Connectors/Bring/index.js.map +1 -0
- package/es/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
- package/es/extensions/forms/Connectors/Bring/postalCode.js +150 -0
- package/es/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
- package/es/extensions/forms/Connectors/createContext.d.ts +58 -0
- package/es/extensions/forms/Connectors/createContext.js +116 -0
- package/es/extensions/forms/Connectors/createContext.js.map +1 -0
- package/es/extensions/forms/Connectors/index.d.ts +2 -0
- package/es/extensions/forms/Connectors/index.js +3 -0
- package/es/extensions/forms/Connectors/index.js.map +1 -0
- package/es/extensions/forms/DataContext/Context.d.ts +4 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +25 -14
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/Address/Address.d.ts +9 -0
- package/es/extensions/forms/Field/Address/Address.js +51 -0
- package/es/extensions/forms/Field/Address/Address.js.map +1 -0
- package/es/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Address/AddressDocs.js +8 -0
- package/es/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
- package/es/extensions/forms/Field/Address/index.d.ts +2 -0
- package/es/extensions/forms/Field/Address/index.js +3 -0
- package/es/extensions/forms/Field/Address/index.js.map +1 -0
- package/es/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Email/EmailDocs.js +8 -0
- package/es/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
- package/es/extensions/forms/Field/Expiry/Expiry.js +82 -31
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/Name/Name.js +2 -2
- package/es/extensions/forms/Field/Name/Name.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +9 -0
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Password/PasswordDocs.js +23 -0
- package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
- package/es/extensions/forms/Field/index.d.ts +1 -0
- package/es/extensions/forms/Field/index.js +1 -0
- package/es/extensions/forms/Field/index.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +0 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
- package/es/extensions/forms/Iterate/Array/Array.js +7 -2
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/types.d.ts +1 -0
- package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/Value/Address/Address.d.ts +9 -0
- package/es/extensions/forms/Value/Address/Address.js +31 -0
- package/es/extensions/forms/Value/Address/Address.js.map +1 -0
- package/es/extensions/forms/Value/Address/index.d.ts +2 -0
- package/es/extensions/forms/Value/Address/index.js +3 -0
- package/es/extensions/forms/Value/Address/index.js.map +1 -0
- package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
- package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- 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/Wizard/Step/Step.js +2 -2
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +13 -0
- package/es/extensions/forms/constants/locales/en-GB.js +20 -7
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +13 -0
- package/es/extensions/forms/constants/locales/index.d.ts +26 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +16 -3
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.d.ts +8 -4
- package/es/extensions/forms/hooks/useFieldProps.js +39 -18
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/index.d.ts +1 -0
- package/es/extensions/forms/index.js +1 -0
- package/es/extensions/forms/index.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +4 -0
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +34 -10
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
- package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/es/icons/calendar_add.d.ts +3 -0
- package/es/icons/calendar_add.js +3 -0
- package/es/icons/calendar_add.js.map +1 -0
- package/es/icons/calendar_add_medium.d.ts +3 -0
- package/es/icons/calendar_add_medium.js +3 -0
- package/es/icons/calendar_add_medium.js.map +1 -0
- package/es/icons/digitpass_private_corporate.d.ts +3 -0
- package/es/icons/digitpass_private_corporate.js +3 -0
- package/es/icons/digitpass_private_corporate.js.map +1 -0
- package/es/icons/digitpass_private_corporate_medium.d.ts +3 -0
- package/es/icons/digitpass_private_corporate_medium.js +3 -0
- package/es/icons/digitpass_private_corporate_medium.js.map +1 -0
- package/es/icons/dnb/calendar_add.d.ts +3 -0
- package/es/icons/dnb/calendar_add.js +23 -0
- package/es/icons/dnb/calendar_add.js.map +1 -0
- package/es/icons/dnb/calendar_add_medium.d.ts +3 -0
- package/es/icons/dnb/calendar_add_medium.js +17 -0
- package/es/icons/dnb/calendar_add_medium.js.map +1 -0
- package/es/icons/dnb/cog_medium.js +1 -1
- package/es/icons/dnb/cog_medium.js.map +1 -1
- package/es/icons/dnb/digipass_corporate.js +3 -3
- package/es/icons/dnb/digipass_corporate.js.map +1 -1
- package/es/icons/dnb/digipass_corporate_medium.js +3 -3
- package/es/icons/dnb/digipass_corporate_medium.js.map +1 -1
- package/es/icons/dnb/digipass_private.js +3 -3
- package/es/icons/dnb/digipass_private.js.map +1 -1
- package/es/icons/dnb/digipass_private_medium.js +3 -3
- package/es/icons/dnb/digipass_private_medium.js.map +1 -1
- package/es/icons/dnb/digitpass_private_corporate.d.ts +3 -0
- package/es/icons/dnb/digitpass_private_corporate.js +17 -0
- package/es/icons/dnb/digitpass_private_corporate.js.map +1 -0
- package/es/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
- package/es/icons/dnb/digitpass_private_corporate_medium.js +17 -0
- package/es/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
- package/es/icons/dnb/goal.d.ts +3 -0
- package/es/icons/dnb/goal.js +18 -0
- package/es/icons/dnb/goal.js.map +1 -0
- package/es/icons/dnb/goal_medium.d.ts +3 -0
- package/es/icons/dnb/goal_medium.js +18 -0
- package/es/icons/dnb/goal_medium.js.map +1 -0
- package/es/icons/dnb/icons-meta.json +132 -4
- package/es/icons/dnb/icons-svg.lock +1278 -1096
- package/es/icons/dnb/index.d.ts +15 -1
- package/es/icons/dnb/index.js +15 -1
- package/es/icons/dnb/index.js.map +1 -1
- package/es/icons/dnb/information.js +1 -1
- package/es/icons/dnb/information.js.map +1 -1
- package/es/icons/dnb/investor.d.ts +3 -0
- package/es/icons/dnb/investor.js +25 -0
- package/es/icons/dnb/investor.js.map +1 -0
- package/es/icons/dnb/investor_medium.d.ts +3 -0
- package/es/icons/dnb/investor_medium.js +25 -0
- package/es/icons/dnb/investor_medium.js.map +1 -0
- package/es/icons/dnb/layout_grid.d.ts +3 -0
- package/es/icons/dnb/layout_grid.js +26 -0
- package/es/icons/dnb/layout_grid.js.map +1 -0
- package/es/icons/dnb/layout_grid_medium.d.ts +3 -0
- package/es/icons/dnb/layout_grid_medium.js +26 -0
- package/es/icons/dnb/layout_grid_medium.js.map +1 -0
- package/es/icons/dnb/question.js +1 -1
- package/es/icons/dnb/question.js.map +1 -1
- package/es/icons/dnb/question_circled.js +1 -1
- package/es/icons/dnb/question_circled.js.map +1 -1
- package/es/icons/dnb/question_medium.js +1 -1
- package/es/icons/dnb/question_medium.js.map +1 -1
- package/es/icons/dnb/return_1_medium.js +1 -1
- package/es/icons/dnb/return_1_medium.js.map +1 -1
- package/es/icons/dnb/secondary_icons.d.ts +8 -1
- package/es/icons/dnb/secondary_icons.js +8 -1
- package/es/icons/dnb/secondary_icons.js.map +1 -1
- package/es/icons/dnb/secondary_icons_medium.d.ts +8 -1
- package/es/icons/dnb/secondary_icons_medium.js +8 -1
- package/es/icons/dnb/secondary_icons_medium.js.map +1 -1
- package/es/icons/dnb/show_pin.d.ts +3 -0
- package/es/icons/dnb/show_pin.js +15 -0
- package/es/icons/dnb/show_pin.js.map +1 -0
- package/es/icons/dnb/show_pin_medium.d.ts +3 -0
- package/es/icons/dnb/show_pin_medium.js +15 -0
- package/es/icons/dnb/show_pin_medium.js.map +1 -0
- package/es/icons/dnb/table.d.ts +3 -0
- package/es/icons/dnb/table.js +25 -0
- package/es/icons/dnb/table.js.map +1 -0
- package/es/icons/dnb/table_medium.d.ts +3 -0
- package/es/icons/dnb/table_medium.js +18 -0
- package/es/icons/dnb/table_medium.js.map +1 -0
- package/es/icons/goal.d.ts +3 -0
- package/es/icons/goal.js +3 -0
- package/es/icons/goal.js.map +1 -0
- package/es/icons/goal_medium.d.ts +3 -0
- package/es/icons/goal_medium.js +3 -0
- package/es/icons/goal_medium.js.map +1 -0
- package/es/icons/index.d.ts +15 -1
- package/es/icons/index.js +15 -1
- package/es/icons/index.js.map +1 -1
- package/es/icons/investor.d.ts +3 -0
- package/es/icons/investor.js +3 -0
- package/es/icons/investor.js.map +1 -0
- package/es/icons/investor_medium.d.ts +3 -0
- package/es/icons/investor_medium.js +3 -0
- package/es/icons/investor_medium.js.map +1 -0
- package/es/icons/layout_grid.d.ts +3 -0
- package/es/icons/layout_grid.js +3 -0
- package/es/icons/layout_grid.js.map +1 -0
- package/es/icons/layout_grid_medium.d.ts +3 -0
- package/es/icons/layout_grid_medium.js +3 -0
- package/es/icons/layout_grid_medium.js.map +1 -0
- package/es/icons/show_pin.d.ts +3 -0
- package/es/icons/show_pin.js +3 -0
- package/es/icons/show_pin.js.map +1 -0
- package/es/icons/show_pin_medium.d.ts +3 -0
- package/es/icons/show_pin_medium.js +3 -0
- package/es/icons/show_pin_medium.js.map +1 -0
- package/es/icons/table.d.ts +3 -0
- package/es/icons/table.js +3 -0
- package/es/icons/table.js.map +1 -0
- package/es/icons/table_medium.d.ts +3 -0
- package/es/icons/table_medium.js +3 -0
- package/es/icons/table_medium.js.map +1 -0
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/style/core/reset.scss +3 -9
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +4 -8
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +4 -8
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +8 -4
- package/es/style/dnb-ui-components.min.css +2 -2
- package/es/style/dnb-ui-core.css +4 -8
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +4 -0
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +4 -0
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +12 -4
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.css +4 -0
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +4 -0
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-icons.min.mjs +1 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/Connectors/Bring/index.d.ts +1 -0
- package/extensions/forms/Connectors/Bring/index.js +3 -0
- package/extensions/forms/Connectors/Bring/index.js.map +1 -0
- package/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
- package/extensions/forms/Connectors/Bring/postalCode.js +151 -0
- package/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
- package/extensions/forms/Connectors/createContext.d.ts +58 -0
- package/extensions/forms/Connectors/createContext.js +119 -0
- package/extensions/forms/Connectors/createContext.js.map +1 -0
- package/extensions/forms/Connectors/index.d.ts +2 -0
- package/extensions/forms/Connectors/index.js +4 -0
- package/extensions/forms/Connectors/index.js.map +1 -0
- package/extensions/forms/DataContext/Context.d.ts +4 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +30 -16
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/Address/Address.d.ts +9 -0
- package/extensions/forms/Field/Address/Address.js +51 -0
- package/extensions/forms/Field/Address/Address.js.map +1 -0
- package/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
- package/extensions/forms/Field/Address/AddressDocs.js +8 -0
- package/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
- package/extensions/forms/Field/Address/index.d.ts +2 -0
- package/extensions/forms/Field/Address/index.js +3 -0
- package/extensions/forms/Field/Address/index.js.map +1 -0
- package/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
- package/extensions/forms/Field/Email/EmailDocs.js +8 -0
- package/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
- package/extensions/forms/Field/Expiry/Expiry.js +82 -31
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/Name/Name.js +2 -2
- package/extensions/forms/Field/Name/Name.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +9 -0
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
- package/extensions/forms/Field/Password/PasswordDocs.js +23 -0
- package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
- package/extensions/forms/Field/index.d.ts +1 -0
- package/extensions/forms/Field/index.js +1 -0
- package/extensions/forms/Field/index.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +0 -1
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
- package/extensions/forms/Iterate/Array/Array.js +7 -2
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
- package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/extensions/forms/Iterate/Array/types.d.ts +1 -0
- package/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/Value/Address/Address.d.ts +9 -0
- package/extensions/forms/Value/Address/Address.js +31 -0
- package/extensions/forms/Value/Address/Address.js.map +1 -0
- package/extensions/forms/Value/Address/index.d.ts +2 -0
- package/extensions/forms/Value/Address/index.js +3 -0
- package/extensions/forms/Value/Address/index.js.map +1 -0
- package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
- package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
- 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/Wizard/Step/Step.js +2 -2
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +13 -0
- package/extensions/forms/constants/locales/en-GB.js +20 -7
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +13 -0
- package/extensions/forms/constants/locales/index.d.ts +26 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
- package/extensions/forms/constants/locales/nb-NO.js +16 -3
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
- package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.d.ts +8 -4
- package/extensions/forms/hooks/useFieldProps.js +39 -19
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/index.d.ts +1 -0
- package/extensions/forms/index.js +2 -0
- package/extensions/forms/index.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +4 -0
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +34 -10
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
- package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/icons/calendar_add.d.ts +3 -0
- package/icons/calendar_add.js +3 -0
- package/icons/calendar_add.js.map +1 -0
- package/icons/calendar_add_medium.d.ts +3 -0
- package/icons/calendar_add_medium.js +3 -0
- package/icons/calendar_add_medium.js.map +1 -0
- package/icons/digitpass_private_corporate.d.ts +3 -0
- package/icons/digitpass_private_corporate.js +3 -0
- package/icons/digitpass_private_corporate.js.map +1 -0
- package/icons/digitpass_private_corporate_medium.d.ts +3 -0
- package/icons/digitpass_private_corporate_medium.js +3 -0
- package/icons/digitpass_private_corporate_medium.js.map +1 -0
- package/icons/dnb/calendar_add.d.ts +3 -0
- package/icons/dnb/calendar_add.js +23 -0
- package/icons/dnb/calendar_add.js.map +1 -0
- package/icons/dnb/calendar_add_medium.d.ts +3 -0
- package/icons/dnb/calendar_add_medium.js +17 -0
- package/icons/dnb/calendar_add_medium.js.map +1 -0
- package/icons/dnb/cog_medium.js +1 -1
- package/icons/dnb/cog_medium.js.map +1 -1
- package/icons/dnb/digipass_corporate.js +3 -3
- package/icons/dnb/digipass_corporate.js.map +1 -1
- package/icons/dnb/digipass_corporate_medium.js +3 -3
- package/icons/dnb/digipass_corporate_medium.js.map +1 -1
- package/icons/dnb/digipass_private.js +3 -3
- package/icons/dnb/digipass_private.js.map +1 -1
- package/icons/dnb/digipass_private_medium.js +3 -3
- package/icons/dnb/digipass_private_medium.js.map +1 -1
- package/icons/dnb/digitpass_private_corporate.d.ts +3 -0
- package/icons/dnb/digitpass_private_corporate.js +17 -0
- package/icons/dnb/digitpass_private_corporate.js.map +1 -0
- package/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
- package/icons/dnb/digitpass_private_corporate_medium.js +17 -0
- package/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
- package/icons/dnb/goal.d.ts +3 -0
- package/icons/dnb/goal.js +18 -0
- package/icons/dnb/goal.js.map +1 -0
- package/icons/dnb/goal_medium.d.ts +3 -0
- package/icons/dnb/goal_medium.js +18 -0
- package/icons/dnb/goal_medium.js.map +1 -0
- package/icons/dnb/icons-meta.json +132 -4
- package/icons/dnb/icons-svg.lock +1278 -1096
- package/icons/dnb/index.d.ts +15 -1
- package/icons/dnb/index.js +15 -1
- package/icons/dnb/index.js.map +1 -1
- package/icons/dnb/information.js +1 -1
- package/icons/dnb/information.js.map +1 -1
- package/icons/dnb/investor.d.ts +3 -0
- package/icons/dnb/investor.js +25 -0
- package/icons/dnb/investor.js.map +1 -0
- package/icons/dnb/investor_medium.d.ts +3 -0
- package/icons/dnb/investor_medium.js +25 -0
- package/icons/dnb/investor_medium.js.map +1 -0
- package/icons/dnb/layout_grid.d.ts +3 -0
- package/icons/dnb/layout_grid.js +26 -0
- package/icons/dnb/layout_grid.js.map +1 -0
- package/icons/dnb/layout_grid_medium.d.ts +3 -0
- package/icons/dnb/layout_grid_medium.js +26 -0
- package/icons/dnb/layout_grid_medium.js.map +1 -0
- package/icons/dnb/question.js +1 -1
- package/icons/dnb/question.js.map +1 -1
- package/icons/dnb/question_circled.js +1 -1
- package/icons/dnb/question_circled.js.map +1 -1
- package/icons/dnb/question_medium.js +1 -1
- package/icons/dnb/question_medium.js.map +1 -1
- package/icons/dnb/return_1_medium.js +1 -1
- package/icons/dnb/return_1_medium.js.map +1 -1
- package/icons/dnb/secondary_icons.d.ts +8 -1
- package/icons/dnb/secondary_icons.js +8 -1
- package/icons/dnb/secondary_icons.js.map +1 -1
- package/icons/dnb/secondary_icons_medium.d.ts +8 -1
- package/icons/dnb/secondary_icons_medium.js +8 -1
- package/icons/dnb/secondary_icons_medium.js.map +1 -1
- package/icons/dnb/show_pin.d.ts +3 -0
- package/icons/dnb/show_pin.js +15 -0
- package/icons/dnb/show_pin.js.map +1 -0
- package/icons/dnb/show_pin_medium.d.ts +3 -0
- package/icons/dnb/show_pin_medium.js +15 -0
- package/icons/dnb/show_pin_medium.js.map +1 -0
- package/icons/dnb/table.d.ts +3 -0
- package/icons/dnb/table.js +25 -0
- package/icons/dnb/table.js.map +1 -0
- package/icons/dnb/table_medium.d.ts +3 -0
- package/icons/dnb/table_medium.js +18 -0
- package/icons/dnb/table_medium.js.map +1 -0
- package/icons/goal.d.ts +3 -0
- package/icons/goal.js +3 -0
- package/icons/goal.js.map +1 -0
- package/icons/goal_medium.d.ts +3 -0
- package/icons/goal_medium.js +3 -0
- package/icons/goal_medium.js.map +1 -0
- package/icons/index.d.ts +15 -1
- package/icons/index.js +15 -1
- package/icons/index.js.map +1 -1
- package/icons/investor.d.ts +3 -0
- package/icons/investor.js +3 -0
- package/icons/investor.js.map +1 -0
- package/icons/investor_medium.d.ts +3 -0
- package/icons/investor_medium.js +3 -0
- package/icons/investor_medium.js.map +1 -0
- package/icons/layout_grid.d.ts +3 -0
- package/icons/layout_grid.js +3 -0
- package/icons/layout_grid.js.map +1 -0
- package/icons/layout_grid_medium.d.ts +3 -0
- package/icons/layout_grid_medium.js +3 -0
- package/icons/layout_grid_medium.js.map +1 -0
- package/icons/show_pin.d.ts +3 -0
- package/icons/show_pin.js +3 -0
- package/icons/show_pin.js.map +1 -0
- package/icons/show_pin_medium.d.ts +3 -0
- package/icons/show_pin_medium.js +3 -0
- package/icons/show_pin_medium.js.map +1 -0
- package/icons/table.d.ts +3 -0
- package/icons/table.js +3 -0
- package/icons/table.js.map +1 -0
- package/icons/table_medium.d.ts +3 -0
- package/icons/table_medium.js +3 -0
- package/icons/table_medium.js.map +1 -0
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/style/core/reset.scss +3 -9
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +4 -8
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +4 -8
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +8 -4
- package/style/dnb-ui-components.min.css +2 -2
- package/style/dnb-ui-core.css +4 -8
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +4 -0
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +4 -0
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +12 -4
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.css +4 -0
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +4 -0
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-icons.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","snapshotsRef","Map","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","Date","now","forEach","fn","setVisibleError","path","hasError","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","arguments","length","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","handler","remove","mutate","freshData","mutateEntry","result","set","Object","entries","fieldInternalsRef","_ref","exists","has","_fieldErrorRef$curren","value","get","displayValue","fieldDisplayValueRef","internal","label","runFilter","_ref2","condition","_fieldInternalsRef$cu","_fieldErrorRef$curren2","wildcardPaths","_ref3","includes","parts","split","traverse","subData","subPath","idx","push","list","Array","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref4","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","preventSyncOfSameInstance","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","keys","setFieldEventListener","_ref5","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","contextValue","hasVisibleError","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\n FieldInternalsRefProps,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n updateDataValue?: ContextState['updateDataValue']\n clearData?: () => void\n setData?: ContextState['setData']\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n internalDataRef?: ContextState['internalDataRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<number | boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors ? Date.now() : showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const setVisibleError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (item.isMounted && checkFieldStateFor(path, state)) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n for (const p in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n ) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.entries(fieldInternalsRef.current).forEach(\n ([path, { props }]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const displayValue = fieldDisplayValueRef.current[path]\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = handler({\n path,\n value,\n displayValue,\n label: props.label,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutateEntry(path, result)\n }\n }\n )\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldInternalsRef.current[path]?.props\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n }\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals = useCallback(\n (path: Path, props: FieldInternalsRefProps, id: string) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n { props, id }\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n },\n [setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n if (!mountedFieldsRef.current[path]) {\n mountedFieldsRef.current[path] = { ...state }\n } else {\n Object.assign(mountedFieldsRef.current[path], state)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldsRef.current[path]?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return result\n },\n [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback, { remove = false } = {}) => {\n const listeners = handleSubmitListenersRef.current\n if (remove) {\n handleSubmitListenersRef.current = listeners.filter(\n (item) => item !== callback\n )\n } else if (!listeners.includes(callback)) {\n listeners.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, { mutate: false })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n handleSubmitListeners,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n setData,\n updateDataValue,\n fieldConnectionsRef,\n internalDataRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n clearData,\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setData,\n setShowAllErrors,\n setSubmitState,\n updateDataValue,\n visibleDataHandler,\n ])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: Boolean(showAllErrorsRef.current),\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","snapshotsRef","Map","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","Date","now","forEach","fn","setVisibleError","path","hasError","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","arguments","length","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","handler","remove","mutate","fireHandlerWhen","freshData","mutateEntry","result","set","Object","entries","fieldInternalsRef","_ref","exists","has","_fieldErrorRef$curren","value","get","displayValue","type","fieldDisplayValueRef","internal","label","runFilter","_ref2","condition","_fieldInternalsRef$cu","_fieldErrorRef$curren2","wildcardPaths","_ref3","includes","parts","split","traverse","subData","subPath","idx","push","list","Array","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref4","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","preventSyncOfSameInstance","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","_ref5","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","keys","setFieldEventListener","_ref6","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","contextValue","hasVisibleError","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\n FieldInternalsRefProps,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n updateDataValue?: ContextState['updateDataValue']\n clearData?: () => void\n setData?: ContextState['setData']\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n internalDataRef?: ContextState['internalDataRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) cannot be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<number | boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors ? Date.now() : showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const setVisibleError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (item.isMounted && checkFieldStateFor(path, state)) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n for (const p in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n ) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true, fireHandlerWhen = null } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.entries(fieldInternalsRef.current).forEach(\n ([path, { props }]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const { value: displayValue, type } =\n fieldDisplayValueRef.current[path] || {}\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n if (fireHandlerWhen?.({ type }) !== false) {\n const result = handler({\n path,\n value,\n displayValue,\n label: props.label,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutateEntry(path, result)\n }\n }\n }\n )\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldInternalsRef.current[path]?.props\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n }\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals = useCallback(\n (path: Path, props: FieldInternalsRefProps, id: string) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n { props, id }\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n },\n [setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n if (!mountedFieldsRef.current[path]) {\n mountedFieldsRef.current[path] = { ...state }\n } else {\n Object.assign(mountedFieldsRef.current[path], state)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldsRef.current[path]?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return result\n },\n [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback, { remove = false } = {}) => {\n const listeners = handleSubmitListenersRef.current\n if (remove) {\n handleSubmitListenersRef.current = listeners.filter(\n (item) => item !== callback\n )\n } else if (!listeners.includes(callback)) {\n listeners.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, {\n mutate: false,\n fireHandlerWhen: ({ type }) => type === 'field',\n })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n handleSubmitListeners,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n setData,\n updateDataValue,\n fieldConnectionsRef,\n internalDataRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n clearData,\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setData,\n setShowAllErrors,\n setSubmitState,\n updateDataValue,\n visibleDataHandler,\n ])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: Boolean(showAllErrorsRef.current),\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Props as StringFieldProps } from '../String';
|
|
2
|
+
export type Props = StringFieldProps;
|
|
3
|
+
declare function Address(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare namespace Address {
|
|
5
|
+
var _supportsSpacingProps: boolean;
|
|
6
|
+
var Postal: (props: StringFieldProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
var Street: (props: StringFieldProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
}
|
|
9
|
+
export default Address;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
import React, { useMemo } from 'react';
|
|
5
|
+
import StringField from '../String';
|
|
6
|
+
import useTranslation from '../../hooks/useTranslation';
|
|
7
|
+
function Address(props) {
|
|
8
|
+
const stringFieldProps = _objectSpread({
|
|
9
|
+
autoComplete: 'street-address',
|
|
10
|
+
inputMode: 'text',
|
|
11
|
+
trim: true
|
|
12
|
+
}, props);
|
|
13
|
+
return React.createElement(StringField, stringFieldProps);
|
|
14
|
+
}
|
|
15
|
+
Address._supportsSpacingProps = true;
|
|
16
|
+
Address.Postal = function PostalAddress(props) {
|
|
17
|
+
const {
|
|
18
|
+
label,
|
|
19
|
+
errorRequired,
|
|
20
|
+
errorPattern
|
|
21
|
+
} = useTranslation().PostalAddress;
|
|
22
|
+
const errorMessages = useMemo(() => _objectSpread({
|
|
23
|
+
'Field.errorRequired': errorRequired,
|
|
24
|
+
'Field.errorPattern': errorPattern
|
|
25
|
+
}, props.errorMessages), [errorPattern, errorRequired, props.errorMessages]);
|
|
26
|
+
const postalAddressProps = _objectSpread({
|
|
27
|
+
label,
|
|
28
|
+
errorMessages
|
|
29
|
+
}, props);
|
|
30
|
+
return React.createElement(Address, postalAddressProps);
|
|
31
|
+
};
|
|
32
|
+
Address.Postal['_supportsSpacingProps'] = true;
|
|
33
|
+
Address.Street = function StreetAddress(props) {
|
|
34
|
+
const {
|
|
35
|
+
label,
|
|
36
|
+
errorRequired,
|
|
37
|
+
errorPattern
|
|
38
|
+
} = useTranslation().StreetAddress;
|
|
39
|
+
const errorMessages = useMemo(() => _objectSpread({
|
|
40
|
+
'Field.errorRequired': errorRequired,
|
|
41
|
+
'Field.errorPattern': errorPattern
|
|
42
|
+
}, props.errorMessages), [errorPattern, errorRequired, props.errorMessages]);
|
|
43
|
+
const streetAddressProps = _objectSpread({
|
|
44
|
+
label,
|
|
45
|
+
errorMessages
|
|
46
|
+
}, props);
|
|
47
|
+
return React.createElement(Address, streetAddressProps);
|
|
48
|
+
};
|
|
49
|
+
Address.Street['_supportsSpacingProps'] = true;
|
|
50
|
+
export default Address;
|
|
51
|
+
//# sourceMappingURL=Address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Address.js","names":["React","useMemo","StringField","useTranslation","Address","props","stringFieldProps","_objectSpread","autoComplete","inputMode","trim","createElement","_supportsSpacingProps","Postal","PostalAddress","label","errorRequired","errorPattern","errorMessages","postalAddressProps","Street","StreetAddress","streetAddressProps"],"sources":["../../../../../../src/extensions/forms/Field/Address/Address.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps\n\nfunction Address(props: Props) {\n const stringFieldProps: Props = {\n autoComplete: 'street-address',\n inputMode: 'text',\n trim: true,\n ...props,\n }\n\n return <StringField {...stringFieldProps} />\n}\nAddress._supportsSpacingProps = true\n\nAddress.Postal = function PostalAddress(props: Props) {\n const { label, errorRequired, errorPattern } =\n useTranslation().PostalAddress\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorPattern,\n ...props.errorMessages,\n }),\n [errorPattern, errorRequired, props.errorMessages]\n )\n\n const postalAddressProps: Props = {\n label,\n errorMessages,\n ...props,\n }\n\n return <Address {...postalAddressProps} />\n}\nAddress.Postal['_supportsSpacingProps'] = true\n\nAddress.Street = function StreetAddress(props: Props) {\n const { label, errorRequired, errorPattern } =\n useTranslation().StreetAddress\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorPattern,\n ...props.errorMessages,\n }),\n [errorPattern, errorRequired, props.errorMessages]\n )\n\n const streetAddressProps: Props = {\n label,\n errorMessages,\n ...props,\n }\n\n return <Address {...streetAddressProps} />\n}\nAddress.Street['_supportsSpacingProps'] = true\n\nexport default Address\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,cAAc,MAAM,4BAA4B;AAIvD,SAASC,OAAOA,CAACC,KAAY,EAAE;EAC7B,MAAMC,gBAAuB,GAAAC,aAAA;IAC3BC,YAAY,EAAE,gBAAgB;IAC9BC,SAAS,EAAE,MAAM;IACjBC,IAAI,EAAE;EAAI,GACPL,KAAK,CACT;EAED,OAAOL,KAAA,CAAAW,aAAA,CAACT,WAAW,EAAKI,gBAAmB,CAAC;AAC9C;AACAF,OAAO,CAACQ,qBAAqB,GAAG,IAAI;AAEpCR,OAAO,CAACS,MAAM,GAAG,SAASC,aAAaA,CAACT,KAAY,EAAE;EACpD,MAAM;IAAEU,KAAK;IAAEC,aAAa;IAAEC;EAAa,CAAC,GAC1Cd,cAAc,CAAC,CAAC,CAACW,aAAa;EAEhC,MAAMI,aAAa,GAAGjB,OAAO,CAC3B,MAAAM,aAAA;IACE,qBAAqB,EAAES,aAAa;IACpC,oBAAoB,EAAEC;EAAY,GAC/BZ,KAAK,CAACa,aAAa,CACtB,EACF,CAACD,YAAY,EAAED,aAAa,EAAEX,KAAK,CAACa,aAAa,CACnD,CAAC;EAED,MAAMC,kBAAyB,GAAAZ,aAAA;IAC7BQ,KAAK;IACLG;EAAa,GACVb,KAAK,CACT;EAED,OAAOL,KAAA,CAAAW,aAAA,CAACP,OAAO,EAAKe,kBAAqB,CAAC;AAC5C,CAAC;AACDf,OAAO,CAACS,MAAM,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE9CT,OAAO,CAACgB,MAAM,GAAG,SAASC,aAAaA,CAAChB,KAAY,EAAE;EACpD,MAAM;IAAEU,KAAK;IAAEC,aAAa;IAAEC;EAAa,CAAC,GAC1Cd,cAAc,CAAC,CAAC,CAACkB,aAAa;EAEhC,MAAMH,aAAa,GAAGjB,OAAO,CAC3B,MAAAM,aAAA;IACE,qBAAqB,EAAES,aAAa;IACpC,oBAAoB,EAAEC;EAAY,GAC/BZ,KAAK,CAACa,aAAa,CACtB,EACF,CAACD,YAAY,EAAED,aAAa,EAAEX,KAAK,CAACa,aAAa,CACnD,CAAC;EAED,MAAMI,kBAAyB,GAAAf,aAAA;IAC7BQ,KAAK;IACLG;EAAa,GACVb,KAAK,CACT;EAED,OAAOL,KAAA,CAAAW,aAAA,CAACP,OAAO,EAAKkB,kBAAqB,CAAC;AAC5C,CAAC;AACDlB,OAAO,CAACgB,MAAM,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE9C,eAAehB,OAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddressDocs.js","names":["AddressProperties","doc","type","status"],"sources":["../../../../../../src/extensions/forms/Field/Address/AddressDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const AddressProperties: PropertiesTableProps = {\n '[Input](/uilib/components/input/properties)': {\n doc: 'All `Input` properties are supported.',\n type: 'Various',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,iBAAuC,GAAG;EACrD,6CAA6C,EAAE;IAC7CC,GAAG,EAAE,uCAAuC;IAC5CC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Field/Address/index.ts"],"sourcesContent":["export { default } from './Address'\nexport * from './Address'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,WAAW;AACnC,cAAc,WAAW"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailDocs.js","names":["EmailProperties","doc","type","status"],"sources":["../../../../../../src/extensions/forms/Field/Email/EmailDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const EmailProperties: PropertiesTableProps = {\n '[Input](/uilib/components/input/properties)': {\n doc: 'All `Input` properties are supported.',\n type: 'Various',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,eAAqC,GAAG;EACnD,6CAA6C,EAAE;IAC7CC,GAAG,EAAE,uCAAuC;IAC5CC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC"}
|