@dnb/eufemia 10.51.2 → 10.52.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 +44 -0
- package/cjs/components/autocomplete/Autocomplete.js +4 -0
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
- package/cjs/components/dialog/style/themes/dnb-dialog-theme-sbanken.css +6 -0
- package/cjs/components/dialog/style/themes/dnb-dialog-theme-sbanken.min.css +1 -1
- package/cjs/components/dialog/style/themes/dnb-dialog-theme-sbanken.scss +7 -0
- package/cjs/components/form-status/FormStatus.d.ts +5 -0
- package/cjs/components/icon/Icon.d.ts +2 -1
- package/cjs/components/icon/Icon.js.map +1 -1
- package/cjs/components/logo/Logo.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.d.ts +14 -0
- package/cjs/components/number-format/NumberUtils.js +7 -8
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/skeleton/style/dnb-skeleton.css +3 -1
- package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/cjs/components/skeleton/style/dnb-skeleton.scss +4 -2
- package/cjs/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +21 -2
- package/cjs/extensions/forms/DataContext/Context.d.ts +5 -0
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +12 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +86 -77
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +6 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +112 -23
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +5 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +3 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +28 -16
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +25 -0
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -3
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +4 -0
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +26 -0
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +5 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.d.ts +12 -0
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.js +45 -0
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -0
- package/cjs/extensions/forms/Form/Snapshot/SnapshotContext.d.ts +12 -0
- package/cjs/extensions/forms/Form/Snapshot/SnapshotContext.js +12 -0
- package/cjs/extensions/forms/Form/Snapshot/SnapshotContext.js.map +1 -0
- package/cjs/extensions/forms/Form/Snapshot/SnapshotDocs.d.ts +3 -0
- package/cjs/extensions/forms/Form/Snapshot/SnapshotDocs.js +17 -0
- package/cjs/extensions/forms/Form/Snapshot/SnapshotDocs.js.map +1 -0
- package/cjs/extensions/forms/Form/Snapshot/index.d.ts +2 -0
- package/cjs/extensions/forms/Form/Snapshot/index.js +27 -0
- package/cjs/extensions/forms/Form/Snapshot/index.js.map +1 -0
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +10 -2
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +10 -10
- package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js +26 -14
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/clearData.js +2 -5
- package/cjs/extensions/forms/Form/data-context/clearData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +3 -2
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/cjs/extensions/forms/Form/index.d.ts +2 -0
- package/cjs/extensions/forms/Form/index.js +14 -0
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js +3 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js +30 -17
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +5 -6
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ItemNo/ItemNo.d.ts +9 -0
- package/cjs/extensions/forms/Iterate/ItemNo/ItemNo.js +33 -0
- package/cjs/extensions/forms/Iterate/ItemNo/ItemNo.js.map +1 -0
- package/cjs/extensions/forms/Iterate/ItemNo/index.d.ts +2 -0
- package/cjs/extensions/forms/Iterate/ItemNo/index.js +27 -0
- package/cjs/extensions/forms/Iterate/ItemNo/index.js.map +1 -0
- package/cjs/extensions/forms/Iterate/IterateItemContext.d.ts +1 -0
- package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +18 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +44 -18
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +24 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +5 -6
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/index.d.ts +1 -0
- package/cjs/extensions/forms/Iterate/index.js +7 -0
- package/cjs/extensions/forms/Iterate/index.js.map +1 -1
- package/cjs/extensions/forms/Tools/Log.d.ts +7 -2
- package/cjs/extensions/forms/Tools/Log.js +36 -4
- package/cjs/extensions/forms/Tools/Log.js.map +1 -1
- package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -2
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +3 -1
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
- package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/ValueDocs.js +5 -0
- package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +78 -31
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +1 -2
- package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +0 -7
- package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/useStepAnimation.d.ts +2 -1
- package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js +11 -6
- package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +14 -3
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js +4 -4
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js +4 -4
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +6 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js +9 -4
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +6 -1
- package/cjs/extensions/forms/constants/locales/en-US.js +2 -1
- package/cjs/extensions/forms/constants/locales/en-US.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/index.d.ts +12 -2
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +6 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js +9 -4
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataContext.d.ts +6 -0
- package/cjs/extensions/forms/hooks/useDataContext.js +31 -0
- package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -0
- package/cjs/extensions/forms/hooks/useExternalValue.js +12 -6
- package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +82 -43
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/useSnapshot.d.ts +9 -0
- package/cjs/extensions/forms/hooks/useSnapshot.js +87 -0
- package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -0
- package/cjs/extensions/forms/hooks/useValueProps.js +6 -1
- package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/cjs/extensions/forms/types.d.ts +4 -0
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/payment-card/style/dnb-payment-card.css +3 -2
- package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/component-helper.js +1 -1
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +3 -1
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +3 -2
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +3 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/properties.d.ts +1 -0
- package/cjs/style/themes/theme-eiendom/properties.js +3 -2
- package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/properties.d.ts +1 -0
- package/cjs/style/themes/theme-sbanken/properties.js +3 -2
- package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/properties.scss +9 -8
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +20 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +3 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +11 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +17 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +3 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/properties.d.ts +1 -0
- package/cjs/style/themes/theme-ui/properties.js +3 -2
- package/cjs/style/themes/theme-ui/properties.js.map +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +3 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/components/autocomplete/Autocomplete.js +4 -0
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
- package/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
- package/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
- package/components/dialog/style/themes/dnb-dialog-theme-sbanken.css +6 -0
- package/components/dialog/style/themes/dnb-dialog-theme-sbanken.min.css +1 -1
- package/components/dialog/style/themes/dnb-dialog-theme-sbanken.scss +7 -0
- package/components/form-status/FormStatus.d.ts +5 -0
- package/components/icon/Icon.d.ts +2 -1
- package/components/icon/Icon.js.map +1 -1
- package/components/logo/Logo.js.map +1 -1
- package/components/number-format/NumberUtils.d.ts +14 -0
- package/components/number-format/NumberUtils.js +7 -8
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/skeleton/style/dnb-skeleton.css +3 -1
- package/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/components/skeleton/style/dnb-skeleton.scss +4 -2
- package/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +21 -2
- package/es/components/autocomplete/Autocomplete.js +4 -0
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
- package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
- package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
- package/es/components/dialog/style/themes/dnb-dialog-theme-sbanken.css +6 -0
- package/es/components/dialog/style/themes/dnb-dialog-theme-sbanken.min.css +1 -1
- package/es/components/dialog/style/themes/dnb-dialog-theme-sbanken.scss +7 -0
- package/es/components/form-status/FormStatus.d.ts +5 -0
- package/es/components/icon/Icon.d.ts +2 -1
- package/es/components/icon/Icon.js.map +1 -1
- package/es/components/logo/Logo.js.map +1 -1
- package/es/components/number-format/NumberUtils.d.ts +14 -0
- package/es/components/number-format/NumberUtils.js +7 -8
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/skeleton/style/dnb-skeleton.css +3 -1
- package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/es/components/skeleton/style/dnb-skeleton.scss +4 -2
- package/es/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +21 -2
- package/es/extensions/forms/DataContext/Context.d.ts +5 -0
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +12 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +84 -75
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +6 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +109 -23
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +5 -0
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +3 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +28 -16
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.d.ts +2 -0
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +18 -0
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -0
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +4 -0
- package/es/extensions/forms/Form/Isolation/Isolation.js +28 -3
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js +5 -0
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/es/extensions/forms/Form/Snapshot/Snapshot.d.ts +12 -0
- package/es/extensions/forms/Form/Snapshot/Snapshot.js +36 -0
- package/es/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -0
- package/es/extensions/forms/Form/Snapshot/SnapshotContext.d.ts +12 -0
- package/es/extensions/forms/Form/Snapshot/SnapshotContext.js +6 -0
- package/es/extensions/forms/Form/Snapshot/SnapshotContext.js.map +1 -0
- package/es/extensions/forms/Form/Snapshot/SnapshotDocs.d.ts +3 -0
- package/es/extensions/forms/Form/Snapshot/SnapshotDocs.js +9 -0
- package/es/extensions/forms/Form/Snapshot/SnapshotDocs.js.map +1 -0
- package/es/extensions/forms/Form/Snapshot/index.d.ts +2 -0
- package/es/extensions/forms/Form/Snapshot/index.js +3 -0
- package/es/extensions/forms/Form/Snapshot/index.js.map +1 -0
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/Visibility.d.ts +10 -2
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +10 -10
- package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.js +26 -14
- package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/es/extensions/forms/Form/data-context/clearData.js +2 -5
- package/es/extensions/forms/Form/data-context/clearData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +1 -0
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/es/extensions/forms/Form/index.d.ts +2 -0
- package/es/extensions/forms/Form/index.js +2 -0
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js +3 -1
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +31 -18
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +5 -6
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/ItemNo/ItemNo.d.ts +9 -0
- package/es/extensions/forms/Iterate/ItemNo/ItemNo.js +22 -0
- package/es/extensions/forms/Iterate/ItemNo/ItemNo.js.map +1 -0
- package/es/extensions/forms/Iterate/ItemNo/index.d.ts +2 -0
- package/es/extensions/forms/Iterate/ItemNo/index.js +3 -0
- package/es/extensions/forms/Iterate/ItemNo/index.js.map +1 -0
- package/es/extensions/forms/Iterate/IterateItemContext.d.ts +1 -0
- package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +18 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +43 -16
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +24 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +5 -6
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/index.d.ts +1 -0
- package/es/extensions/forms/Iterate/index.js +1 -0
- package/es/extensions/forms/Iterate/index.js.map +1 -1
- package/es/extensions/forms/Tools/Log.d.ts +7 -2
- package/es/extensions/forms/Tools/Log.js +26 -3
- package/es/extensions/forms/Tools/Log.js.map +1 -1
- package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -2
- package/es/extensions/forms/Value/SummaryList/SummaryList.js +3 -1
- package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
- package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -0
- package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
- package/es/extensions/forms/Value/ValueDocs.js +5 -0
- package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +67 -23
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +1 -2
- package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +0 -6
- package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/useStepAnimation.d.ts +2 -1
- package/es/extensions/forms/Wizard/Container/useStepAnimation.js +12 -7
- package/es/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +14 -3
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.js +4 -4
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useStep.js +4 -4
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +6 -1
- package/es/extensions/forms/constants/locales/en-GB.js +9 -4
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +6 -1
- package/es/extensions/forms/constants/locales/en-US.js +2 -1
- package/es/extensions/forms/constants/locales/en-US.js.map +1 -1
- package/es/extensions/forms/constants/locales/index.d.ts +12 -2
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +6 -1
- package/es/extensions/forms/constants/locales/nb-NO.js +9 -4
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/useDataContext.d.ts +6 -0
- package/es/extensions/forms/hooks/useDataContext.js +24 -0
- package/es/extensions/forms/hooks/useDataContext.js.map +1 -0
- package/es/extensions/forms/hooks/useExternalValue.js +12 -6
- package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +83 -44
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/useSnapshot.d.ts +9 -0
- package/es/extensions/forms/hooks/useSnapshot.js +73 -0
- package/es/extensions/forms/hooks/useSnapshot.js.map +1 -0
- package/es/extensions/forms/hooks/useValueProps.js +6 -1
- package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/es/extensions/forms/types.d.ts +4 -0
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/payment-card/style/dnb-payment-card.css +3 -2
- package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/component-helper.js +1 -1
- package/es/shared/component-helper.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +3 -1
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +3 -2
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +3 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/properties.d.ts +1 -0
- package/es/style/themes/theme-eiendom/properties.js +3 -2
- package/es/style/themes/theme-eiendom/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/properties.d.ts +1 -0
- package/es/style/themes/theme-sbanken/properties.js +3 -2
- package/es/style/themes/theme-sbanken/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/properties.scss +9 -8
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +20 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +3 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +11 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +17 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +3 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/properties.d.ts +1 -0
- package/es/style/themes/theme-ui/properties.js +3 -2
- package/es/style/themes/theme-ui/properties.js.map +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +3 -1
- package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.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 +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +5 -0
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +12 -1
- package/extensions/forms/DataContext/Provider/Provider.js +86 -77
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +6 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +109 -23
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +5 -0
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +3 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +28 -16
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.d.ts +2 -0
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +18 -0
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -0
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -3
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.d.ts +4 -0
- package/extensions/forms/Form/Isolation/Isolation.js +29 -3
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationDocs.js +5 -0
- package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/extensions/forms/Form/Snapshot/Snapshot.d.ts +12 -0
- package/extensions/forms/Form/Snapshot/Snapshot.js +36 -0
- package/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -0
- package/extensions/forms/Form/Snapshot/SnapshotContext.d.ts +12 -0
- package/extensions/forms/Form/Snapshot/SnapshotContext.js +6 -0
- package/extensions/forms/Form/Snapshot/SnapshotContext.js.map +1 -0
- package/extensions/forms/Form/Snapshot/SnapshotDocs.d.ts +3 -0
- package/extensions/forms/Form/Snapshot/SnapshotDocs.js +9 -0
- package/extensions/forms/Form/Snapshot/SnapshotDocs.js.map +1 -0
- package/extensions/forms/Form/Snapshot/index.d.ts +2 -0
- package/extensions/forms/Form/Snapshot/index.js +3 -0
- package/extensions/forms/Form/Snapshot/index.js.map +1 -0
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/extensions/forms/Form/Visibility/Visibility.d.ts +10 -2
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/Form/Visibility/VisibilityDocs.js +10 -10
- package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.js +26 -14
- package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/extensions/forms/Form/data-context/clearData.js +2 -5
- package/extensions/forms/Form/data-context/clearData.js.map +1 -1
- package/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js +1 -0
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/extensions/forms/Form/index.d.ts +2 -0
- package/extensions/forms/Form/index.js +2 -0
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +3 -1
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayItemArea.js +31 -18
- package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.js +5 -6
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/ItemNo/ItemNo.d.ts +9 -0
- package/extensions/forms/Iterate/ItemNo/ItemNo.js +23 -0
- package/extensions/forms/Iterate/ItemNo/ItemNo.js.map +1 -0
- package/extensions/forms/Iterate/ItemNo/index.d.ts +2 -0
- package/extensions/forms/Iterate/ItemNo/index.js +3 -0
- package/extensions/forms/Iterate/ItemNo/index.js.map +1 -0
- package/extensions/forms/Iterate/IterateItemContext.d.ts +1 -0
- package/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +18 -2
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +44 -18
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +24 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +5 -6
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Iterate/index.d.ts +1 -0
- package/extensions/forms/Iterate/index.js +1 -0
- package/extensions/forms/Iterate/index.js.map +1 -1
- package/extensions/forms/Tools/Log.d.ts +7 -2
- package/extensions/forms/Tools/Log.js +30 -3
- package/extensions/forms/Tools/Log.js.map +1 -1
- package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -2
- package/extensions/forms/Value/SummaryList/SummaryList.js +3 -1
- package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
- package/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -0
- package/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
- package/extensions/forms/Value/ValueDocs.js +5 -0
- package/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +78 -31
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +1 -2
- package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +0 -6
- package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
- package/extensions/forms/Wizard/Container/useStepAnimation.d.ts +2 -1
- package/extensions/forms/Wizard/Container/useStepAnimation.js +12 -7
- package/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +14 -3
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.js +4 -4
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useStep.js +4 -4
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +6 -1
- package/extensions/forms/constants/locales/en-GB.js +9 -4
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +6 -1
- package/extensions/forms/constants/locales/en-US.js +2 -1
- package/extensions/forms/constants/locales/en-US.js.map +1 -1
- package/extensions/forms/constants/locales/index.d.ts +12 -2
- package/extensions/forms/constants/locales/nb-NO.d.ts +6 -1
- package/extensions/forms/constants/locales/nb-NO.js +9 -4
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/useDataContext.d.ts +6 -0
- package/extensions/forms/hooks/useDataContext.js +25 -0
- package/extensions/forms/hooks/useDataContext.js.map +1 -0
- package/extensions/forms/hooks/useExternalValue.js +12 -6
- package/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +83 -44
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/useSnapshot.d.ts +9 -0
- package/extensions/forms/hooks/useSnapshot.js +81 -0
- package/extensions/forms/hooks/useSnapshot.js.map +1 -0
- package/extensions/forms/hooks/useValueProps.js +6 -1
- package/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/extensions/forms/types.d.ts +4 -0
- package/extensions/forms/types.js.map +1 -1
- package/extensions/payment-card/style/dnb-payment-card.css +3 -2
- package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- 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/shared/component-helper.js +1 -1
- package/shared/component-helper.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +3 -1
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +3 -2
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +3 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/properties.d.ts +1 -0
- package/style/themes/theme-eiendom/properties.js +3 -2
- package/style/themes/theme-eiendom/properties.js.map +1 -1
- package/style/themes/theme-sbanken/properties.d.ts +1 -0
- package/style/themes/theme-sbanken/properties.js +3 -2
- package/style/themes/theme-sbanken/properties.js.map +1 -1
- package/style/themes/theme-sbanken/properties.scss +9 -8
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +20 -4
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +3 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +11 -3
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +17 -2
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +3 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/properties.d.ts +1 -0
- package/style/themes/theme-ui/properties.js +3 -2
- package/style/themes/theme-ui/properties.js.map +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +3 -1
- package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +3 -2
- package/style/themes/theme-ui/ui-theme-extensions.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 +2 -2
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_helpers","_Provider","_useUpdateEffect","_isAsync","_useSharedState","_useTranslation","_Context","_structuredClone","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useLayoutEffect","window","React","useEffect","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_sharedData$data3","forceUpdate","useReducer","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","contextErrorMessages","isolate","children","rest","Error","hasContext","useContext","Context","formElementRef","useRef","translation","useTranslation","Field","ajvRef","makeAjvInstance","mountedFieldsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","setVisibleError","path","hasError","submitStateRef","setSubmitState","state","formStateRef","keepPending","setFormState","formState","options","fieldErrorRef","fieldStateRef","initialData","useMemo","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","ajvErrorsToFormErrors","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","remove","mutate","result","structuredClone","pointer","entries","fieldPropsRef","_ref","exists","_fieldErrorRef$curren","internal","runFilter","_ref2","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","wildcardPaths","_ref3","includes","parts","split","traverse","subData","subPath","idx","list","Array","isArray","_","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldProps","valuePropsRef","setValueProps","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","_sharedData$data","clearForm","clear","clearedData","_sharedData$data2","storeInSession","debounce","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","assign","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","clearData","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitOptions","reduceToVisibleFields","formElement","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","setFieldEventListener","_ref4","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasVisibleError","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze","exports"],"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} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n 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 { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport interface Props<Data extends JsonObject>\n extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * 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?: CustomErrorMessagesWithPaths\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: contextErrorMessages,\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(Context) || {}\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 translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\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 showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\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\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 = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, filter: FilterData | TransformData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof filter === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current?.[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(filter).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, 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 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 fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data & { clearForm?: () => void }>(id)\n const sharedAttachments = useSharedState<{\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 fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n }>(id + '-attachments')\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n 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 // Reset the shared state, if clearForm is set\n if (sharedData.data?.clearForm) {\n const clear = (cacheRef.current.shared = clearedData as Data)\n setSharedData(clear)\n return clear\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, setSharedData])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n useEffect(() => {\n if (sharedData.data?.clearForm) {\n onClear?.()\n }\n }, [onClear, sharedData.data?.clearForm])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n fieldConnectionsRef,\n })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n visibleDataHandler,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n 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)\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 const clearData = useCallback(() => {\n internalDataRef.current = (emptyData ?? clearedData) as Data\n\n if (id) {\n setSharedData?.(internalDataRef.current)\n } else {\n forceUpdate()\n }\n onClear?.()\n }, [emptyData, id, onClear, setSharedData])\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 getSubmitOptions = 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 const formElement = formElementRef.current\n const options: OnSubmitParams = {\n filterData,\n reduceToVisibleFields,\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 options\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 = getSubmitOptions()\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 getSubmitOptions,\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 const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitOptions,\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:\n Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldConnectionsRef,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldsRef,\n formElementRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }}\n >\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </Context.Provider>\n )\n}\n\ntype 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","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_helpers","_Provider","_useUpdateEffect","_isAsync","_useSharedState","_useTranslation","_Context","_structuredClone","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useLayoutEffect","window","React","useEffect","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","useReducer","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","contextErrorMessages","isolate","children","rest","Error","hasContext","useContext","Context","formElementRef","useRef","translation","useTranslation","Field","ajvRef","makeAjvInstance","mountedFieldsRef","snapshotsRef","current","Map","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","setVisibleError","path","hasError","submitStateRef","setSubmitState","state","formStateRef","keepPending","setFormState","formState","options","fieldErrorRef","fieldStateRef","initialData","useMemo","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","ajvErrorsToFormErrors","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","remove","mutate","result","structuredClone","pointer","entries","fieldPropsRef","_ref","exists","_fieldErrorRef$curren","internal","runFilter","_ref2","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","wildcardPaths","_ref3","includes","parts","split","traverse","subData","subPath","idx","list","Array","isArray","_","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldProps","valuePropsRef","setValueProps","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref4","_requestAnimationFram","requestAnimationFrame","storeInSession","debounce","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","assign","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","getSubmitOptions","reduceToVisibleFields","formElement","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","setFieldEventListener","_ref5","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextValue","hasVisibleError","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze","exports"],"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} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n 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 { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\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 clearData?: () => void\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n}\n\nexport interface Props<Data extends JsonObject>\n extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * 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?: CustomErrorMessagesWithPaths\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: contextErrorMessages,\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(Context) || {}\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 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()\n if (!snapshotsRef.current) {\n snapshotsRef.current = 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 showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\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 = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, filter: FilterData | TransformData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof filter === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current?.[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(filter).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, 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 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 fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n id + '-attachments'\n )\n const sharedDataContext = useSharedState<ContextState>(\n 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 useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n fieldConnectionsRef,\n })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n visibleDataHandler,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n clearData,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n 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)\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 getSubmitOptions = 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 const formElement = formElementRef.current\n const options: OnSubmitParams = {\n filterData,\n reduceToVisibleFields,\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 options\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 = getSubmitOptions()\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 getSubmitOptions,\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 const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n\n 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 setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitOptions,\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 fieldConnectionsRef,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldsRef,\n snapshotsRef,\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 <Context.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </Context.Provider>\n )\n}\n\ntype 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,10 +1,15 @@
|
|
|
1
1
|
import { Props as StringFieldProps } from '../String';
|
|
2
|
-
|
|
2
|
+
import { FormError, Validator } from '../../types';
|
|
3
|
+
export type Props = Omit<StringFieldProps, 'onBlurValidator'> & {
|
|
3
4
|
omitMask?: boolean;
|
|
4
5
|
validate?: boolean;
|
|
6
|
+
onBlurValidator?: Validator<string> | false;
|
|
5
7
|
};
|
|
6
8
|
declare function NationalIdentityNumber(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
7
9
|
declare namespace NationalIdentityNumber {
|
|
8
10
|
var _supportsSpacingProps: boolean;
|
|
9
11
|
}
|
|
12
|
+
export declare function getAgeByBirthDate(birthDate: Date): number;
|
|
13
|
+
export declare function getBirthDateByFnrOrDnr(value: string): Date;
|
|
14
|
+
export declare function createMinimumAgeValidator(age: number): (value: string) => FormError;
|
|
10
15
|
export default NationalIdentityNumber;
|
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.createMinimumAgeValidator = createMinimumAgeValidator;
|
|
6
7
|
exports.default = void 0;
|
|
8
|
+
exports.getAgeByBirthDate = getAgeByBirthDate;
|
|
9
|
+
exports.getBirthDateByFnrOrDnr = getBirthDateByFnrOrDnr;
|
|
7
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
11
|
var _String = _interopRequireDefault(require("../String"));
|
|
9
12
|
var _fnrvalidator = require("@navikt/fnrvalidator");
|
|
13
|
+
var _types = require("../../types");
|
|
10
14
|
var _useErrorMessage = _interopRequireDefault(require("../../hooks/useErrorMessage"));
|
|
11
15
|
var _useTranslation = _interopRequireDefault(require("../../hooks/useTranslation"));
|
|
12
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -18,55 +22,140 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
18
22
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
19
23
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
20
24
|
function NationalIdentityNumber(props) {
|
|
21
|
-
var _props$label, _props$width;
|
|
22
|
-
const {
|
|
23
|
-
validate = true,
|
|
24
|
-
omitMask
|
|
25
|
-
} = props;
|
|
26
25
|
const translations = (0, _useTranslation.default)().NationalIdentityNumber;
|
|
27
26
|
const {
|
|
28
27
|
label,
|
|
29
28
|
errorRequired,
|
|
30
29
|
errorFnr,
|
|
31
|
-
|
|
30
|
+
errorFnrLength,
|
|
31
|
+
errorDnr,
|
|
32
|
+
errorDnrLength,
|
|
33
|
+
errorMinimumAgeValidator,
|
|
34
|
+
errorMinimumAgeValidatorLength
|
|
32
35
|
} = translations;
|
|
33
36
|
const errorMessages = (0, _useErrorMessage.default)(props.path, props.errorMessages, {
|
|
34
37
|
required: errorRequired,
|
|
35
|
-
pattern:
|
|
38
|
+
pattern: errorFnr,
|
|
36
39
|
errorFnr,
|
|
37
|
-
|
|
40
|
+
errorFnrLength,
|
|
41
|
+
errorDnr,
|
|
42
|
+
errorDnrLength,
|
|
43
|
+
errorMinimumAgeValidator,
|
|
44
|
+
errorMinimumAgeValidatorLength
|
|
38
45
|
});
|
|
39
|
-
const
|
|
40
|
-
|
|
46
|
+
const identificationNumberIsOfLength = (identificationNumber, length) => {
|
|
47
|
+
return (identificationNumber === null || identificationNumber === void 0 ? void 0 : identificationNumber.length) === length;
|
|
48
|
+
};
|
|
41
49
|
const fnrValidator = (0, _react.useCallback)(value => {
|
|
42
|
-
if (
|
|
43
|
-
|
|
50
|
+
if (value !== undefined) {
|
|
51
|
+
if (Number.parseInt(value.substring(0, 1)) > 3) {
|
|
52
|
+
return Error(errorFnr);
|
|
53
|
+
}
|
|
54
|
+
const fnrIs11Digits = identificationNumberIsOfLength(value, 11);
|
|
55
|
+
if (!fnrIs11Digits) {
|
|
56
|
+
return Error(errorFnrLength);
|
|
57
|
+
}
|
|
58
|
+
if (fnrIs11Digits && (0, _fnrvalidator.fnr)(value).status === 'invalid') {
|
|
59
|
+
return Error(errorFnr);
|
|
60
|
+
}
|
|
44
61
|
}
|
|
45
|
-
}, [errorFnr]);
|
|
62
|
+
}, [errorFnr, errorFnrLength]);
|
|
46
63
|
const dnrValidator = (0, _react.useCallback)(value => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
64
|
+
if (value !== undefined) {
|
|
65
|
+
if (Number.parseInt(value.substring(0, 1)) < 4) {
|
|
66
|
+
return Error(errorDnr);
|
|
67
|
+
}
|
|
68
|
+
const dnrIs11Digits = identificationNumberIsOfLength(value, 11);
|
|
69
|
+
if (!dnrIs11Digits) {
|
|
70
|
+
return Error(errorDnrLength);
|
|
71
|
+
}
|
|
72
|
+
if (dnrIs11Digits && (0, _fnrvalidator.dnr)(value).status === 'invalid') {
|
|
73
|
+
return Error(errorDnr);
|
|
74
|
+
}
|
|
50
75
|
}
|
|
51
|
-
}, [errorDnr]);
|
|
76
|
+
}, [errorDnr, errorDnrLength]);
|
|
52
77
|
const dnrAndFnrValidator = (0, _react.useCallback)(value => {
|
|
53
|
-
|
|
78
|
+
const dnrValidationPattern = '^[4-9].*';
|
|
79
|
+
if (new RegExp(dnrValidationPattern).test(value)) {
|
|
80
|
+
return dnrValidator(value);
|
|
81
|
+
}
|
|
82
|
+
return fnrValidator(value);
|
|
54
83
|
}, [dnrValidator, fnrValidator]);
|
|
84
|
+
const {
|
|
85
|
+
validate = true,
|
|
86
|
+
omitMask,
|
|
87
|
+
onBlurValidator = dnrAndFnrValidator,
|
|
88
|
+
validator,
|
|
89
|
+
width,
|
|
90
|
+
label: labelProp
|
|
91
|
+
} = props;
|
|
92
|
+
const mask = (0, _react.useMemo)(() => omitMask ? Array(11).fill(/\d/) : [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, /\d/], [omitMask]);
|
|
93
|
+
const onBlurValidatorToUse = onBlurValidator === false ? undefined : onBlurValidator;
|
|
55
94
|
const StringFieldProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
56
|
-
|
|
57
|
-
label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : label,
|
|
95
|
+
label: labelProp !== null && labelProp !== void 0 ? labelProp : label,
|
|
58
96
|
errorMessages,
|
|
59
97
|
mask,
|
|
60
|
-
width:
|
|
98
|
+
width: width !== null && width !== void 0 ? width : 'medium',
|
|
61
99
|
inputMode: 'numeric',
|
|
62
|
-
validator: validate ?
|
|
100
|
+
validator: validate ? validator : undefined,
|
|
101
|
+
onBlurValidator: validate ? onBlurValidatorToUse : undefined,
|
|
63
102
|
exportValidators: {
|
|
64
103
|
dnrValidator,
|
|
65
|
-
fnrValidator
|
|
104
|
+
fnrValidator,
|
|
105
|
+
dnrAndFnrValidator
|
|
66
106
|
}
|
|
67
107
|
});
|
|
68
108
|
return _react.default.createElement(_String.default, StringFieldProps);
|
|
69
109
|
}
|
|
110
|
+
function getAgeByBirthDate(birthDate) {
|
|
111
|
+
const today = new Date();
|
|
112
|
+
const age = today.getFullYear() - birthDate.getFullYear();
|
|
113
|
+
const month = today.getMonth() - birthDate.getMonth();
|
|
114
|
+
const day = today.getDate() - birthDate.getDate();
|
|
115
|
+
if (month < 0 || month === 0 && day < 0) {
|
|
116
|
+
return age - 1;
|
|
117
|
+
}
|
|
118
|
+
return age;
|
|
119
|
+
}
|
|
120
|
+
function getBirthDateByFnrOrDnr(value) {
|
|
121
|
+
if (value === undefined) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const yearPart = value.substring(4, 6);
|
|
125
|
+
const centuryNumber = Number.parseInt(value.substring(6, 7));
|
|
126
|
+
const isBornIn20XX = centuryNumber >= 5;
|
|
127
|
+
const year = isBornIn20XX ? `20${yearPart}` : `19${yearPart}`;
|
|
128
|
+
const month = Number.parseInt(value.substring(2, 4));
|
|
129
|
+
const differentiatorValue = value.length > 0 ? Number.parseInt(value.substring(0, 1)) : undefined;
|
|
130
|
+
const isDnr = differentiatorValue && differentiatorValue > 3;
|
|
131
|
+
const day = isDnr ? Number.parseInt(value.substring(0, 2)) - 40 : Number.parseInt(value.substring(0, 2));
|
|
132
|
+
return new Date(Number.parseInt(year), month - 1, day);
|
|
133
|
+
}
|
|
134
|
+
function createMinimumAgeValidator(age) {
|
|
135
|
+
return value => {
|
|
136
|
+
if (typeof value !== 'string') {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const identificationNumberIs7DigitsOrMore = (value === null || value === void 0 ? void 0 : value.length) >= 7;
|
|
140
|
+
if (!identificationNumberIs7DigitsOrMore) {
|
|
141
|
+
return new _types.FormError('NationalIdentityNumber.errorMinimumAgeValidatorLength', {
|
|
142
|
+
validationRule: 'errorMinimumAgeValidatorLength'
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
if (identificationNumberIs7DigitsOrMore) {
|
|
146
|
+
const date = getBirthDateByFnrOrDnr(value);
|
|
147
|
+
if (getAgeByBirthDate(date) >= age) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return new _types.FormError('NationalIdentityNumber.errorMinimumAgeValidator', {
|
|
152
|
+
validationRule: 'errorMinimumAgeValidator',
|
|
153
|
+
messageValues: {
|
|
154
|
+
age: String(age)
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
}
|
|
70
159
|
NationalIdentityNumber._supportsSpacingProps = true;
|
|
71
160
|
var _default = NationalIdentityNumber;
|
|
72
161
|
exports.default = _default;
|