@dnb/eufemia 10.51.1 → 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 +54 -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/badge/Badge.js +44 -37
- package/cjs/components/badge/Badge.js.map +1 -1
- 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/Field/Selection/Selection.js +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.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 +12 -4
- 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 +103 -61
- 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 +6 -2
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/ajv.js +1 -1
- package/cjs/extensions/forms/utils/ajv.js.map +1 -1
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/cjs/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/shared/locales/en-GB.js +1 -1
- package/cjs/shared/locales/en-GB.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/badge/Badge.js +44 -37
- package/components/badge/Badge.js.map +1 -1
- 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/badge/Badge.js +43 -36
- package/es/components/badge/Badge.js.map +1 -1
- 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/Field/Selection/Selection.js +1 -1
- package/es/extensions/forms/Field/Selection/Selection.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 +12 -4
- 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 +103 -61
- 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 +6 -2
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/ajv.js +1 -1
- package/es/extensions/forms/utils/ajv.js.map +1 -1
- package/es/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
- package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/es/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/shared/locales/en-GB.js +1 -1
- package/es/shared/locales/en-GB.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/Field/Selection/Selection.js +1 -1
- package/extensions/forms/Field/Selection/Selection.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 +12 -4
- 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 +103 -61
- 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 +6 -2
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/ajv.js +1 -1
- package/extensions/forms/utils/ajv.js.map +1 -1
- package/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
- package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/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/shared/locales/en-GB.js +1 -1
- package/shared/locales/en-GB.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 +3 -3
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","pointer","extendDeep","isAsync","useDataValue","Context","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","data","defaultData","forceUpdate","internalDataRef","localDataRef","dataContextRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","moveValueToPath","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","getMountedData","mounterData","_dataContextRef$curre","mountedFieldsRef","field","isMounted","localData","Object","assign","additionalArgs","_props$path","mountedData","outerData","isolatedData","stop","preventCommit","commitData","result","Array","isArray","providerProps","_objectSpread","isolate","createElement","Consumer","dataContext","handleSubmit","CommitButton","_supportsSpacingProps","undefined"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useDataValue from '../../hooks/useDataValue'\nimport { Context, ContextState, Provider } from '../../DataContext'\nimport SectionContext from '../Section/SectionContext'\nimport IsolationCommitButton from './IsolationCommitButton'\nimport {\n clearedData,\n type Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport type { OnCommit, Path } from '../../types'\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\nexport type IsolationProviderProps<Data> = {\n /**\n * Form.Isolation: Will be called when the isolated context is committed.\n */\n onCommit?: OnCommit<Data>\n /**\n * Form.Isolation: Will be called when the form is cleared via Form.clearData\n */\n onClear?: () => void\n /**\n * Form.Isolation: A function that will be called when the isolated context is committed.\n * It will receive the data from the isolated context and the data from the outer context.\n * You can use this to transform the data before it is committed.\n */\n transformOnCommit?: (\n isolatedData: JsonObject,\n handlerData: JsonObject\n ) => unknown\n /**\n * Used internally by the Form.Isolation component\n */\n path?: Path\n /**\n * Used internally by the Form.Isolation component\n */\n isolate?: boolean\n}\n\nexport type IsolationProps<Data> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const {\n children,\n onPathChange,\n onCommit: onCommitProp,\n onClear: onClearProp,\n transformOnCommit: transformOnCommitProp,\n commitHandleRef,\n data,\n defaultData,\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const internalDataRef = useRef<Data>()\n const localDataRef = useRef<Partial<Data>>({})\n const dataContextRef = useRef<ContextState>(null)\n const outerContext = useContext(Context)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\n const { moveValueToPath } = useDataValue()\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: unknown) => {\n if (localDataRef.current === clearedData) {\n localDataRef.current = {}\n }\n\n pointer.set(localDataRef.current, path, value)\n\n if (pathSection) {\n path = path.replace(pathSection, '')\n }\n\n return await onPathChange?.(path, value)\n },\n [onPathChange, pathSection]\n )\n\n const removeSectionPath = useCallback(\n (data: Data) => {\n return pathSection && pointer.has(data, pathSection)\n ? pointer.get(data, pathSection)\n : data\n },\n [pathSection]\n )\n\n const getMountedData = useCallback((data: Data) => {\n const mounterData = {} as Data\n for (const path in dataContextRef.current?.mountedFieldsRef.current) {\n const field = dataContextRef.current.mountedFieldsRef.current[path]\n if (field.isMounted && pointer.has(data, path)) {\n pointer.set(mounterData, path, pointer.get(data, path))\n }\n }\n return mounterData\n }, [])\n\n useEffect(() => {\n localDataRef.current = getMountedData(internalDataRef.current)\n }, [getMountedData])\n\n // Update the isolated data with the outside context data\n useMemo(() => {\n if (localDataRef.current === clearedData) {\n return // stop here\n }\n\n let localData = data ?? defaultData\n\n if (\n localData &&\n pathSection &&\n !pointer.has(localDataRef.current, pathSection)\n ) {\n localData = moveValueToPath<Data>(pathSection, localData)\n }\n\n internalDataRef.current = Object.assign(\n {},\n localData || dataOuter || {},\n localDataRef.current\n )\n }, [data, defaultData, pathSection, dataOuter, moveValueToPath])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (data: Data, additionalArgs) => {\n const mountedData = getMountedData(data)\n const path = props.path ?? '/'\n const outerData =\n props.path && pointer.has(dataOuter, path)\n ? pointer.get(dataOuter, path)\n : dataOuter\n\n localDataRef.current = mountedData\n let isolatedData = structuredClone(mountedData)\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n let stop = false\n additionalArgs.preventCommit = () => (stop = true)\n\n const commitData = removeSectionPath(isolatedData)\n const result = isAsync(onCommitProp)\n ? await onCommitProp?.(commitData, additionalArgs)\n : onCommitProp?.(commitData, additionalArgs)\n\n if (stop) {\n return // stop here\n }\n\n // Commit the internal data to the nested context data\n await handlePathChangeOuter?.(\n path,\n Array.isArray(isolatedData)\n ? isolatedData\n : extendDeep({}, outerData, isolatedData)\n )\n\n return result\n },\n [\n getMountedData,\n props.path,\n dataOuter,\n transformOnCommitProp,\n handlePathChangeOuter,\n onCommitProp,\n removeSectionPath,\n ]\n )\n\n const onClear = useCallback(() => {\n localDataRef.current = clearedData\n internalDataRef.current = clearedData as Data\n forceUpdate()\n onClearProp?.()\n }, [onClearProp])\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n [defaultData ? 'defaultData' : 'data']: internalDataRef.current,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <Context.Consumer>\n {(dataContext) => {\n dataContextRef.current = dataContext\n\n if (commitHandleRef) {\n commitHandleRef.current = dataContext?.handleSubmit\n }\n\n return children\n }}\n </Context.Consumer>\n </Provider>\n )\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","pointer","extendDeep","isAsync","useId","useDataValue","Context","DataContext","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","bubbleValidation","data","defaultData","forceUpdate","internalDataRef","localDataRef","dataContextRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","moveValueToPath","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","getMountedData","mounterData","_dataContextRef$curre","mountedFieldsRef","field","isMounted","localData","Object","assign","additionalArgs","_props$path","mountedData","outerData","isolatedData","stop","preventCommit","commitData","result","Array","isArray","providerProps","_objectSpread","isolate","createElement","Consumer","dataContext","handleSubmit","BubbleValidation","_ref","setMountedFieldState","setFieldError","id","errors","hasErrors","Error","undefined","CommitButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport useDataValue from '../../hooks/useDataValue'\nimport {\n Context as DataContext,\n ContextState,\n Provider,\n} from '../../DataContext'\nimport SectionContext from '../Section/SectionContext'\nimport IsolationCommitButton from './IsolationCommitButton'\nimport {\n clearedData,\n type Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport type { OnCommit, Path } from '../../types'\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\nexport type IsolationProviderProps<Data> = {\n /**\n * Form.Isolation: Will be called when the isolated context is committed.\n */\n onCommit?: OnCommit<Data>\n /**\n * Form.Isolation: Will be called when the form is cleared via Form.clearData\n */\n onClear?: () => void\n /**\n * Form.Isolation: A function that will be called when the isolated context is committed.\n * It will receive the data from the isolated context and the data from the outer context.\n * You can use this to transform the data before it is committed.\n */\n transformOnCommit?: (\n isolatedData: JsonObject,\n handlerData: JsonObject\n ) => unknown\n /**\n * Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.\n */\n bubbleValidation?: boolean\n /**\n * Used internally by the Form.Isolation component\n */\n path?: Path\n /**\n * Used internally by the Form.Isolation component\n */\n isolate?: boolean\n}\n\nexport type IsolationProps<Data> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const {\n children,\n onPathChange,\n onCommit: onCommitProp,\n onClear: onClearProp,\n transformOnCommit: transformOnCommitProp,\n commitHandleRef,\n bubbleValidation,\n data,\n defaultData,\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const internalDataRef = useRef<Data>()\n const localDataRef = useRef<Partial<Data>>({})\n const dataContextRef = useRef<ContextState>(null)\n const outerContext = useContext(DataContext)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\n const { moveValueToPath } = useDataValue()\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: unknown) => {\n if (localDataRef.current === clearedData) {\n localDataRef.current = {}\n }\n\n pointer.set(localDataRef.current, path, value)\n\n if (pathSection) {\n path = path.replace(pathSection, '')\n }\n\n return await onPathChange?.(path, value)\n },\n [onPathChange, pathSection]\n )\n\n const removeSectionPath = useCallback(\n (data: Data) => {\n return pathSection && pointer.has(data, pathSection)\n ? pointer.get(data, pathSection)\n : data\n },\n [pathSection]\n )\n\n const getMountedData = useCallback((data: Data) => {\n const mounterData = {} as Data\n for (const path in dataContextRef.current?.mountedFieldsRef.current) {\n const field = dataContextRef.current.mountedFieldsRef.current[path]\n if (field.isMounted && pointer.has(data, path)) {\n pointer.set(mounterData, path, pointer.get(data, path))\n }\n }\n return mounterData\n }, [])\n\n useEffect(() => {\n localDataRef.current = getMountedData(internalDataRef.current)\n }, [getMountedData])\n\n // Update the isolated data with the outside context data\n useMemo(() => {\n if (localDataRef.current === clearedData) {\n return // stop here\n }\n\n let localData = data ?? defaultData\n\n if (\n localData &&\n pathSection &&\n !pointer.has(localDataRef.current, pathSection)\n ) {\n localData = moveValueToPath<Data>(pathSection, localData)\n }\n\n internalDataRef.current = Object.assign(\n {},\n localData || dataOuter || {},\n localDataRef.current\n )\n }, [data, defaultData, pathSection, dataOuter, moveValueToPath])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (data: Data, additionalArgs) => {\n const mountedData = getMountedData(data)\n const path = props.path ?? '/'\n const outerData =\n props.path && pointer.has(dataOuter, path)\n ? pointer.get(dataOuter, path)\n : dataOuter\n\n localDataRef.current = mountedData\n let isolatedData = structuredClone(mountedData)\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n let stop = false\n additionalArgs.preventCommit = () => (stop = true)\n\n const commitData = removeSectionPath(isolatedData)\n const result = isAsync(onCommitProp)\n ? await onCommitProp?.(commitData, additionalArgs)\n : onCommitProp?.(commitData, additionalArgs)\n\n if (stop) {\n return // stop here\n }\n\n // Commit the internal data to the nested context data\n await handlePathChangeOuter?.(\n path,\n Array.isArray(isolatedData)\n ? isolatedData\n : extendDeep({}, outerData, isolatedData)\n )\n\n return result\n },\n [\n getMountedData,\n props.path,\n dataOuter,\n transformOnCommitProp,\n handlePathChangeOuter,\n onCommitProp,\n removeSectionPath,\n ]\n )\n\n const onClear = useCallback(() => {\n localDataRef.current = clearedData\n internalDataRef.current = clearedData as Data\n forceUpdate()\n onClearProp?.()\n }, [onClearProp])\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n [defaultData ? 'defaultData' : 'data']: internalDataRef.current,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <DataContext.Consumer>\n {(dataContext) => {\n dataContextRef.current = dataContext\n\n if (commitHandleRef) {\n commitHandleRef.current = dataContext?.handleSubmit\n }\n\n return children\n }}\n </DataContext.Consumer>\n\n {bubbleValidation && (\n <BubbleValidation outerContext={outerContext} />\n )}\n </Provider>\n )\n}\n\nfunction BubbleValidation({ outerContext }) {\n const { setMountedFieldState, setFieldError } = outerContext || {}\n const dataContext = useContext(DataContext)\n\n const id = useId()\n useEffect(() => {\n const path = `/${id}`\n const errors = dataContext.hasErrors()\n if (errors) {\n setMountedFieldState?.(path, {\n isMounted: true,\n })\n }\n setFieldError?.(path, errors ? new Error('Form.Isolation') : undefined)\n }, [dataContext, id, setFieldError, setMountedFieldState])\n\n return null\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":"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"}
|
|
@@ -17,6 +17,11 @@ export const IsolationProperties = _objectSpread(_objectSpread({
|
|
|
17
17
|
doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',
|
|
18
18
|
type: 'React.Ref',
|
|
19
19
|
status: 'optional'
|
|
20
|
+
},
|
|
21
|
+
bubbleValidation: {
|
|
22
|
+
doc: 'Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.',
|
|
23
|
+
type: 'boolean',
|
|
24
|
+
status: 'optional'
|
|
20
25
|
}
|
|
21
26
|
}, ProviderProperties), {}, {
|
|
22
27
|
minimumAsyncBehaviorTime: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","path","doc","type","status","transformOnCommit","commitHandleRef","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","globalStatusId","IsolationEvents","onCommit","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const IsolationProperties: PropertiesTableProps = {\n path: {\n doc: 'JSON Pointer to define the object key for all the generated nested field data.',\n type: 'string',\n status: 'optional',\n },\n transformOnCommit: {\n doc: 'Transform the data before it gets committed to the form. The first parameter is the isolated data object. The second parameter is the outer context data object (Form.Handler).',\n type: 'function',\n status: 'optional',\n },\n commitHandleRef: {\n doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',\n type: 'React.Ref',\n status: 'optional',\n },\n ...ProviderProperties,\n minimumAsyncBehaviorTime: undefined,\n asyncSubmitTimeout: undefined,\n scrollTopOnSubmit: undefined,\n sessionStorageId: undefined,\n globalStatusId: undefined,\n}\n\nexport const IsolationEvents: PropertiesTableProps = {\n onCommit: {\n doc: 'Will be called on a nested form context commit – if validation has passed. The first parameter is the committed data object. The second parameter is an object containing a method to clear the internal data `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n ...ProviderEvents,\n onSubmit: undefined,\n onSubmitRequest: undefined,\n onSubmitComplete: undefined,\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,mBAAyC,GAAAC,aAAA,CAAAA,aAAA;EACpDC,IAAI,EAAE;IACJC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV;AAAC,GACEN,kBAAkB;
|
|
1
|
+
{"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","path","doc","type","status","transformOnCommit","commitHandleRef","bubbleValidation","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","globalStatusId","IsolationEvents","onCommit","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const IsolationProperties: PropertiesTableProps = {\n path: {\n doc: 'JSON Pointer to define the object key for all the generated nested field data.',\n type: 'string',\n status: 'optional',\n },\n transformOnCommit: {\n doc: 'Transform the data before it gets committed to the form. The first parameter is the isolated data object. The second parameter is the outer context data object (Form.Handler).',\n type: 'function',\n status: 'optional',\n },\n commitHandleRef: {\n doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',\n type: 'React.Ref',\n status: 'optional',\n },\n bubbleValidation: {\n doc: 'Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.',\n type: 'boolean',\n status: 'optional',\n },\n ...ProviderProperties,\n minimumAsyncBehaviorTime: undefined,\n asyncSubmitTimeout: undefined,\n scrollTopOnSubmit: undefined,\n sessionStorageId: undefined,\n globalStatusId: undefined,\n}\n\nexport const IsolationEvents: PropertiesTableProps = {\n onCommit: {\n doc: 'Will be called on a nested form context commit – if validation has passed. The first parameter is the committed data object. The second parameter is an object containing a method to clear the internal data `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n ...ProviderEvents,\n onSubmit: undefined,\n onSubmitRequest: undefined,\n onSubmitComplete: undefined,\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,mBAAyC,GAAAC,aAAA,CAAAA,aAAA;EACpDC,IAAI,EAAE;IACJC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV,CAAC;EACDG,gBAAgB,EAAE;IAChBL,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AAAC,GACEN,kBAAkB;EACrBU,wBAAwB,EAAEC,SAAS;EACnCC,kBAAkB,EAAED,SAAS;EAC7BE,iBAAiB,EAAEF,SAAS;EAC5BG,gBAAgB,EAAEH,SAAS;EAC3BI,cAAc,EAAEJ;AAAS,EAC1B;AAED,OAAO,MAAMK,eAAqC,GAAAd,aAAA,CAAAA,aAAA;EAChDe,QAAQ,EAAE;IACRb,GAAG,EAAE,gOAAgO;IACrOC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,GACEP,cAAc;EACjBmB,QAAQ,EAAEP,SAAS;EACnBQ,eAAe,EAAER,SAAS;EAC1BS,gBAAgB,EAAET;AAAS,EAC5B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type SnapshotId = string | number;
|
|
3
|
+
export type SnapshotName = string;
|
|
4
|
+
export type SnapshotProps = {
|
|
5
|
+
name: SnapshotName;
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
};
|
|
8
|
+
declare function SnapshotProvider(props: SnapshotProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare namespace SnapshotProvider {
|
|
10
|
+
var _supportsSpacingProps: any;
|
|
11
|
+
}
|
|
12
|
+
export default SnapshotProvider;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback, useContext, useEffect, useRef } from 'react';
|
|
4
|
+
import SnapshotContext from './SnapshotContext';
|
|
5
|
+
import DataContext from '../../DataContext/Context';
|
|
6
|
+
function SnapshotProvider(props) {
|
|
7
|
+
const {
|
|
8
|
+
name,
|
|
9
|
+
children
|
|
10
|
+
} = props;
|
|
11
|
+
const {
|
|
12
|
+
snapshotsRef
|
|
13
|
+
} = useContext(DataContext) || {};
|
|
14
|
+
const mountedFieldsRef = useRef();
|
|
15
|
+
if (!mountedFieldsRef.current) {
|
|
16
|
+
mountedFieldsRef.current = new Map();
|
|
17
|
+
}
|
|
18
|
+
const setMountedField = useCallback((path, state) => {
|
|
19
|
+
mountedFieldsRef.current.set(path, state);
|
|
20
|
+
}, []);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (snapshotsRef) {
|
|
23
|
+
snapshotsRef.current.set(name, mountedFieldsRef.current);
|
|
24
|
+
}
|
|
25
|
+
}, [snapshotsRef, name]);
|
|
26
|
+
const contextValue = {
|
|
27
|
+
name,
|
|
28
|
+
setMountedField
|
|
29
|
+
};
|
|
30
|
+
return React.createElement(SnapshotContext.Provider, {
|
|
31
|
+
value: contextValue
|
|
32
|
+
}, children);
|
|
33
|
+
}
|
|
34
|
+
SnapshotProvider._supportsSpacingProps = undefined;
|
|
35
|
+
export default SnapshotProvider;
|
|
36
|
+
//# sourceMappingURL=Snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Snapshot.js","names":["React","useCallback","useContext","useEffect","useRef","SnapshotContext","DataContext","SnapshotProvider","props","name","children","snapshotsRef","mountedFieldsRef","current","Map","setMountedField","path","state","set","contextValue","createElement","Provider","value","_supportsSpacingProps","undefined"],"sources":["../../../../../../src/extensions/forms/Form/Snapshot/Snapshot.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport SnapshotContext, {\n SnapshotContextState,\n SnapshotMap,\n} from './SnapshotContext'\nimport DataContext from '../../DataContext/Context'\n\nexport type SnapshotId = string | number\nexport type SnapshotName = string\n\nexport type SnapshotProps = {\n name: SnapshotName\n children: React.ReactNode\n}\n\nfunction SnapshotProvider(props: SnapshotProps) {\n const { name, children } = props\n\n const { snapshotsRef } = useContext(DataContext) || {}\n const mountedFieldsRef: SnapshotMap = useRef()\n if (!mountedFieldsRef.current) {\n mountedFieldsRef.current = new Map()\n }\n\n const setMountedField: SnapshotContextState['setMountedField'] =\n useCallback((path, state) => {\n mountedFieldsRef.current.set(path, state)\n }, [])\n\n useEffect(() => {\n if (snapshotsRef) {\n snapshotsRef.current.set(name, mountedFieldsRef.current)\n }\n }, [snapshotsRef, name])\n\n const contextValue = { name, setMountedField }\n\n return (\n <SnapshotContext.Provider value={contextValue}>\n {children}\n </SnapshotContext.Provider>\n )\n}\n\nSnapshotProvider._supportsSpacingProps = undefined\n\nexport default SnapshotProvider\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzE,OAAOC,eAAe,MAGf,mBAAmB;AAC1B,OAAOC,WAAW,MAAM,2BAA2B;AAUnD,SAASC,gBAAgBA,CAACC,KAAoB,EAAE;EAC9C,MAAM;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGF,KAAK;EAEhC,MAAM;IAAEG;EAAa,CAAC,GAAGT,UAAU,CAACI,WAAW,CAAC,IAAI,CAAC,CAAC;EACtD,MAAMM,gBAA6B,GAAGR,MAAM,CAAC,CAAC;EAC9C,IAAI,CAACQ,gBAAgB,CAACC,OAAO,EAAE;IAC7BD,gBAAgB,CAACC,OAAO,GAAG,IAAIC,GAAG,CAAC,CAAC;EACtC;EAEA,MAAMC,eAAwD,GAC5Dd,WAAW,CAAC,CAACe,IAAI,EAAEC,KAAK,KAAK;IAC3BL,gBAAgB,CAACC,OAAO,CAACK,GAAG,CAACF,IAAI,EAAEC,KAAK,CAAC;EAC3C,CAAC,EAAE,EAAE,CAAC;EAERd,SAAS,CAAC,MAAM;IACd,IAAIQ,YAAY,EAAE;MAChBA,YAAY,CAACE,OAAO,CAACK,GAAG,CAACT,IAAI,EAAEG,gBAAgB,CAACC,OAAO,CAAC;IAC1D;EACF,CAAC,EAAE,CAACF,YAAY,EAAEF,IAAI,CAAC,CAAC;EAExB,MAAMU,YAAY,GAAG;IAAEV,IAAI;IAAEM;EAAgB,CAAC;EAE9C,OACEf,KAAA,CAAAoB,aAAA,CAACf,eAAe,CAACgB,QAAQ;IAACC,KAAK,EAAEH;EAAa,GAC3CT,QACuB,CAAC;AAE/B;AAEAH,gBAAgB,CAACgB,qBAAqB,GAAGC,SAAS;AAElD,eAAejB,gBAAgB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Path } from '../../types';
|
|
3
|
+
import { SnapshotName } from './Snapshot';
|
|
4
|
+
export type SnapshotMap = React.MutableRefObject<Map<Path, unknown>>;
|
|
5
|
+
export type SnapshotContextState = {
|
|
6
|
+
name: SnapshotName;
|
|
7
|
+
setMountedField: (path: Path, { isMounted }: {
|
|
8
|
+
isMounted: boolean;
|
|
9
|
+
}) => void;
|
|
10
|
+
};
|
|
11
|
+
declare const SnapshotContext: import("react").Context<SnapshotContextState>;
|
|
12
|
+
export default SnapshotContext;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SnapshotContext.js","names":["createContext","SnapshotContext"],"sources":["../../../../../../src/extensions/forms/Form/Snapshot/SnapshotContext.tsx"],"sourcesContent":["import { createContext } from 'react'\nimport { Path } from '../../types'\nimport { SnapshotName } from './Snapshot'\n\nexport type SnapshotMap = React.MutableRefObject<Map<Path, unknown>>\n\nexport type SnapshotContextState = {\n name: SnapshotName\n setMountedField: (\n path: Path,\n { isMounted }: { isMounted: boolean }\n ) => void\n}\n\nconst SnapshotContext = createContext<SnapshotContextState>(null)\n\nexport default SnapshotContext\n"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,OAAO;AAcrC,MAAMC,eAAe,GAAGD,aAAa,CAAuB,IAAI,CAAC;AAEjE,eAAeC,eAAe"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SnapshotDocs.js","names":["SnapshotProperties","name","doc","type","status","SnapshotEvents"],"sources":["../../../../../../src/extensions/forms/Form/Snapshot/SnapshotDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const SnapshotProperties: PropertiesTableProps = {\n name: {\n doc: 'A unique name for the sliced snapshot area.',\n type: 'string',\n status: 'optional',\n },\n}\n\nexport const SnapshotEvents: PropertiesTableProps = {}\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,IAAI,EAAE;IACJC,GAAG,EAAE,6CAA6C;IAClDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMC,cAAoC,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Form/Snapshot/index.ts"],"sourcesContent":["export { default } from './Snapshot'\nexport * from './Snapshot'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AACpC,cAAc,YAAY"}
|
|
@@ -89,7 +89,7 @@ function SubmitConfirmation(props) {
|
|
|
89
89
|
};
|
|
90
90
|
});
|
|
91
91
|
useMemo(() => {
|
|
92
|
-
if (Object.keys(removeUndefinedProps(submitState)).length > 0) {
|
|
92
|
+
if (Object.keys(removeUndefinedProps(submitState) || {}).length > 0) {
|
|
93
93
|
submitStateRef.current = _objectSpread({}, submitState);
|
|
94
94
|
onSubmitResult === null || onSubmitResult === void 0 ? void 0 : onSubmitResult(getParamsRef.current());
|
|
95
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubmitConfirmation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","DataContext","SharedProvider","HeightAnimation","removeUndefinedProps","SubmitConfirmation","props","forceUpdate","preventSubmitWhen","onStateChange","onSubmitResult","renderWithState","children","setFormState","setHandleSubmit","handleSubmit","handleFinalSubmit","submitState","formElementRef","internalDataRef","confirmationStateRef","submitStateRef","preventSubmitRef","undefined","validatePreventSubmit","current","getParamsRef","setConfirmationState","state","window","requestAnimationFrame","keepPending","confirmationState","connectWithDialog","openState","onConfirm","submitHandler","onDecline","cancelHandler","onClose","_ref","triggeredBy","data","Object","keys","length","_objectSpread","setFocusOnButton","form","element","querySelector","focus","e","_ref2","preventSubmit","remove","sharedProviderParams","formElement","disabled","createElement","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport DataContext from '../../DataContext/Context'\nimport SharedProvider from '../../../../shared/Provider'\nimport { ContextProps } from '../../../../shared/Context'\nimport { HeightAnimation } from '../../../../components'\nimport {\n DialogContentProps,\n DialogProps,\n} from '../../../../components/dialog/types'\nimport { EventStateObject } from '../../types'\nimport { removeUndefinedProps } from '../../../../shared/component-helper'\n\nexport type ConfirmationState =\n | 'idle'\n | 'readyToBeSubmitted'\n | 'submitInProgress'\n | 'submissionComplete'\n\nexport type ConfirmParams = {\n data: unknown\n confirmationState: ConfirmationState\n submitState: EventStateObject | undefined\n connectWithDialog: Pick<\n DialogProps & DialogContentProps,\n 'openState' | 'onConfirm' | 'onDecline' | 'onClose'\n >\n setConfirmationState: (state: ConfirmationState) => void\n submitHandler: () => void | Promise<void>\n cancelHandler: () => void | Promise<void>\n}\n\nexport type ConfirmProps = {\n preventSubmitWhen?: (params: ConfirmParams) => boolean\n onStateChange?: (params: ConfirmParams) => void | Promise<void>\n onSubmitResult?: (params: ConfirmParams) => void\n renderWithState?: (params: ConfirmParams) => React.ReactNode\n children?: React.ReactNode\n}\n\nfunction SubmitConfirmation(props: ConfirmProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n preventSubmitWhen,\n onStateChange,\n onSubmitResult,\n renderWithState,\n children,\n } = props\n\n const {\n setFormState,\n setHandleSubmit,\n handleSubmit: handleFinalSubmit,\n submitState,\n formElementRef,\n internalDataRef,\n } = useContext(DataContext)\n\n const confirmationStateRef = useRef<ConfirmationState>('idle')\n const submitStateRef = useRef<EventStateObject>()\n const preventSubmitRef = useRef<boolean>(undefined)\n\n const validatePreventSubmit = useCallback(() => {\n return (preventSubmitRef.current = preventSubmitWhen?.(\n getParamsRef.current()\n ))\n }, [preventSubmitWhen])\n\n const setConfirmationState = useCallback(\n async (state: ConfirmationState) => {\n confirmationStateRef.current = state\n await onStateChange?.(getParamsRef.current())\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(() => {\n switch (state) {\n case 'idle':\n setFormState('complete', { keepPending: false })\n break\n case 'readyToBeSubmitted':\n setFormState('pending', { keepPending: true })\n break\n case 'submitInProgress':\n setFormState('pending', { keepPending: true })\n break\n case 'submissionComplete':\n setFormState('complete', { keepPending: false })\n break\n default:\n forceUpdate()\n }\n })\n }\n },\n [onStateChange, setFormState]\n )\n\n const getParamsRef = useRef(() => {\n const confirmationState = confirmationStateRef.current\n\n const connectWithDialog = {\n openState: confirmationState === 'readyToBeSubmitted',\n onConfirm: submitHandler,\n onDecline: cancelHandler,\n onClose: ({ triggeredBy }) => {\n if (triggeredBy === 'keyboard') {\n cancelHandler()\n }\n },\n }\n\n return {\n data: internalDataRef.current,\n confirmationState,\n setConfirmationState,\n submitHandler,\n cancelHandler,\n connectWithDialog,\n submitState: submitStateRef.current,\n } satisfies ConfirmParams\n })\n\n useMemo(() => {\n if (Object.keys(removeUndefinedProps(submitState)).length > 0) {\n submitStateRef.current = {\n ...submitState,\n } as EventStateObject\n onSubmitResult?.(getParamsRef.current())\n }\n }, [submitState, onSubmitResult])\n\n const setFocusOnButton = useCallback(() => {\n try {\n const form = formElementRef.current\n const element = (form.querySelector('.dnb-forms-submit-button') ||\n form) as HTMLElement\n element.focus()\n } catch (e) {\n //\n }\n }, [formElementRef])\n\n const cancelHandler = useCallback(async () => {\n await setConfirmationState('idle')\n setFocusOnButton()\n }, [setFocusOnButton, setConfirmationState])\n\n const handleSubmit = useCallback(\n async ({ preventSubmit }) => {\n if (confirmationStateRef.current === 'submitInProgress') {\n return // stop here\n }\n\n if (validatePreventSubmit() !== true) {\n await setConfirmationState('submitInProgress')\n return // stop here\n }\n\n submitStateRef.current = undefined\n\n // Prevent the form form from being submitted\n preventSubmit()\n\n await setConfirmationState('readyToBeSubmitted')\n },\n [setConfirmationState, validatePreventSubmit]\n )\n setHandleSubmit?.(handleSubmit)\n\n const submitHandler = useCallback(async () => {\n setHandleSubmit?.(handleSubmit, { remove: true })\n\n await setConfirmationState('submitInProgress')\n await handleFinalSubmit()\n await setConfirmationState('submissionComplete')\n\n setFocusOnButton()\n }, [\n handleFinalSubmit,\n handleSubmit,\n setFocusOnButton,\n setHandleSubmit,\n setConfirmationState,\n ])\n\n const sharedProviderParams: ContextProps = {\n formElement: {\n disabled: false,\n },\n }\n\n return (\n <>\n {children}\n\n <SharedProvider {...sharedProviderParams}>\n <HeightAnimation>\n {renderWithState?.(getParamsRef.current())}\n </HeightAnimation>\n </SharedProvider>\n </>\n )\n}\n\nSubmitConfirmation._supportsSpacingProps = 'children'\nexport default SubmitConfirmation\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SubmitConfirmation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","DataContext","SharedProvider","HeightAnimation","removeUndefinedProps","SubmitConfirmation","props","forceUpdate","preventSubmitWhen","onStateChange","onSubmitResult","renderWithState","children","setFormState","setHandleSubmit","handleSubmit","handleFinalSubmit","submitState","formElementRef","internalDataRef","confirmationStateRef","submitStateRef","preventSubmitRef","undefined","validatePreventSubmit","current","getParamsRef","setConfirmationState","state","window","requestAnimationFrame","keepPending","confirmationState","connectWithDialog","openState","onConfirm","submitHandler","onDecline","cancelHandler","onClose","_ref","triggeredBy","data","Object","keys","length","_objectSpread","setFocusOnButton","form","element","querySelector","focus","e","_ref2","preventSubmit","remove","sharedProviderParams","formElement","disabled","createElement","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport DataContext from '../../DataContext/Context'\nimport SharedProvider from '../../../../shared/Provider'\nimport { ContextProps } from '../../../../shared/Context'\nimport { HeightAnimation } from '../../../../components'\nimport {\n DialogContentProps,\n DialogProps,\n} from '../../../../components/dialog/types'\nimport { EventStateObject } from '../../types'\nimport { removeUndefinedProps } from '../../../../shared/component-helper'\n\nexport type ConfirmationState =\n | 'idle'\n | 'readyToBeSubmitted'\n | 'submitInProgress'\n | 'submissionComplete'\n\nexport type ConfirmParams = {\n data: unknown\n confirmationState: ConfirmationState\n submitState: EventStateObject | undefined\n connectWithDialog: Pick<\n DialogProps & DialogContentProps,\n 'openState' | 'onConfirm' | 'onDecline' | 'onClose'\n >\n setConfirmationState: (state: ConfirmationState) => void\n submitHandler: () => void | Promise<void>\n cancelHandler: () => void | Promise<void>\n}\n\nexport type ConfirmProps = {\n preventSubmitWhen?: (params: ConfirmParams) => boolean\n onStateChange?: (params: ConfirmParams) => void | Promise<void>\n onSubmitResult?: (params: ConfirmParams) => void\n renderWithState?: (params: ConfirmParams) => React.ReactNode\n children?: React.ReactNode\n}\n\nfunction SubmitConfirmation(props: ConfirmProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n preventSubmitWhen,\n onStateChange,\n onSubmitResult,\n renderWithState,\n children,\n } = props\n\n const {\n setFormState,\n setHandleSubmit,\n handleSubmit: handleFinalSubmit,\n submitState,\n formElementRef,\n internalDataRef,\n } = useContext(DataContext)\n\n const confirmationStateRef = useRef<ConfirmationState>('idle')\n const submitStateRef = useRef<EventStateObject>()\n const preventSubmitRef = useRef<boolean>(undefined)\n\n const validatePreventSubmit = useCallback(() => {\n return (preventSubmitRef.current = preventSubmitWhen?.(\n getParamsRef.current()\n ))\n }, [preventSubmitWhen])\n\n const setConfirmationState = useCallback(\n async (state: ConfirmationState) => {\n confirmationStateRef.current = state\n await onStateChange?.(getParamsRef.current())\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(() => {\n switch (state) {\n case 'idle':\n setFormState('complete', { keepPending: false })\n break\n case 'readyToBeSubmitted':\n setFormState('pending', { keepPending: true })\n break\n case 'submitInProgress':\n setFormState('pending', { keepPending: true })\n break\n case 'submissionComplete':\n setFormState('complete', { keepPending: false })\n break\n default:\n forceUpdate()\n }\n })\n }\n },\n [onStateChange, setFormState]\n )\n\n const getParamsRef = useRef(() => {\n const confirmationState = confirmationStateRef.current\n\n const connectWithDialog = {\n openState: confirmationState === 'readyToBeSubmitted',\n onConfirm: submitHandler,\n onDecline: cancelHandler,\n onClose: ({ triggeredBy }) => {\n if (triggeredBy === 'keyboard') {\n cancelHandler()\n }\n },\n }\n\n return {\n data: internalDataRef.current,\n confirmationState,\n setConfirmationState,\n submitHandler,\n cancelHandler,\n connectWithDialog,\n submitState: submitStateRef.current,\n } satisfies ConfirmParams\n })\n\n useMemo(() => {\n if (Object.keys(removeUndefinedProps(submitState) || {}).length > 0) {\n submitStateRef.current = {\n ...submitState,\n } as EventStateObject\n onSubmitResult?.(getParamsRef.current())\n }\n }, [submitState, onSubmitResult])\n\n const setFocusOnButton = useCallback(() => {\n try {\n const form = formElementRef.current\n const element = (form.querySelector('.dnb-forms-submit-button') ||\n form) as HTMLElement\n element.focus()\n } catch (e) {\n //\n }\n }, [formElementRef])\n\n const cancelHandler = useCallback(async () => {\n await setConfirmationState('idle')\n setFocusOnButton()\n }, [setFocusOnButton, setConfirmationState])\n\n const handleSubmit = useCallback(\n async ({ preventSubmit }) => {\n if (confirmationStateRef.current === 'submitInProgress') {\n return // stop here\n }\n\n if (validatePreventSubmit() !== true) {\n await setConfirmationState('submitInProgress')\n return // stop here\n }\n\n submitStateRef.current = undefined\n\n // Prevent the form form from being submitted\n preventSubmit()\n\n await setConfirmationState('readyToBeSubmitted')\n },\n [setConfirmationState, validatePreventSubmit]\n )\n setHandleSubmit?.(handleSubmit)\n\n const submitHandler = useCallback(async () => {\n setHandleSubmit?.(handleSubmit, { remove: true })\n\n await setConfirmationState('submitInProgress')\n await handleFinalSubmit()\n await setConfirmationState('submissionComplete')\n\n setFocusOnButton()\n }, [\n handleFinalSubmit,\n handleSubmit,\n setFocusOnButton,\n setHandleSubmit,\n setConfirmationState,\n ])\n\n const sharedProviderParams: ContextProps = {\n formElement: {\n disabled: false,\n },\n }\n\n return (\n <>\n {children}\n\n <SharedProvider {...sharedProviderParams}>\n <HeightAnimation>\n {renderWithState?.(getParamsRef.current())}\n </HeightAnimation>\n </SharedProvider>\n </>\n )\n}\n\nSubmitConfirmation._supportsSpacingProps = 'children'\nexport default SubmitConfirmation\n"],"mappings":"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"}
|
|
@@ -5,13 +5,21 @@ import type { DataAttributes } from '../../hooks/useFieldProps';
|
|
|
5
5
|
import { FilterData } from '../../DataContext';
|
|
6
6
|
export type VisibleWhen = {
|
|
7
7
|
path: Path;
|
|
8
|
-
hasValue: unknown;
|
|
8
|
+
hasValue: unknown | ((value: unknown) => boolean);
|
|
9
9
|
} | {
|
|
10
10
|
itemPath: Path;
|
|
11
|
-
hasValue: unknown;
|
|
11
|
+
hasValue: unknown | ((value: unknown) => boolean);
|
|
12
|
+
} | {
|
|
13
|
+
path: Path;
|
|
14
|
+
isValid: boolean;
|
|
15
|
+
continuousValidation?: boolean;
|
|
16
|
+
} | {
|
|
17
|
+
itemPath: Path;
|
|
18
|
+
isValid: boolean;
|
|
19
|
+
continuousValidation?: boolean;
|
|
12
20
|
}
|
|
13
21
|
/**
|
|
14
|
-
* @deprecated Will be
|
|
22
|
+
* @deprecated Will be removed in v11!
|
|
15
23
|
*/
|
|
16
24
|
| {
|
|
17
25
|
path: Path;
|
|
@@ -19,7 +27,7 @@ export type VisibleWhen = {
|
|
|
19
27
|
withValue: (value: unknown) => boolean;
|
|
20
28
|
}
|
|
21
29
|
/**
|
|
22
|
-
* @deprecated Will be
|
|
30
|
+
* @deprecated Will be removed in v11!
|
|
23
31
|
*/
|
|
24
32
|
| {
|
|
25
33
|
itemPath: Path;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Visibility.js","names":["React","warn","useMountEffect","HeightAnimation","FieldProvider","useVisibility","VisibilityContext","Visibility","_ref","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","animate","keepInDOM","compensateForGap","fieldPropsWhenHidden","children","rest","_objectWithoutProperties","_excluded","check","open","content","createElement","Provider","value","isVisible","props","_extends","Boolean","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes } from 'react'\n\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport HeightAnimation, {\n HeightAnimationProps,\n} from '../../../../components/HeightAnimation'\nimport FieldProvider from '../../Field/Provider'\nimport useVisibility from './useVisibility'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\nimport VisibilityContext from './VisibilityContext'\n\nexport type VisibleWhen =\n | {\n path: Path\n hasValue: unknown\n }\n | {\n itemPath: Path\n hasValue: unknown\n }\n /**\n * @deprecated Will be
|
|
1
|
+
{"version":3,"file":"Visibility.js","names":["React","warn","useMountEffect","HeightAnimation","FieldProvider","useVisibility","VisibilityContext","Visibility","_ref","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","animate","keepInDOM","compensateForGap","fieldPropsWhenHidden","children","rest","_objectWithoutProperties","_excluded","check","open","content","createElement","Provider","value","isVisible","props","_extends","Boolean","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes } from 'react'\n\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport HeightAnimation, {\n HeightAnimationProps,\n} from '../../../../components/HeightAnimation'\nimport FieldProvider from '../../Field/Provider'\nimport useVisibility from './useVisibility'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\nimport VisibilityContext from './VisibilityContext'\n\nexport type VisibleWhen =\n | {\n path: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n itemPath: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n path: Path\n isValid: boolean\n continuousValidation?: boolean\n }\n | {\n itemPath: Path\n isValid: boolean\n continuousValidation?: boolean\n }\n\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n path: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n itemPath: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: Path\n /** Given data context path must be undefined to show children */\n pathUndefined?: Path\n /** Given data context path must be truthy to show children */\n pathTruthy?: Path\n /** Given data context path must be falsy to show children */\n pathFalsy?: Path\n /** Given data context path must be true to show children */\n pathTrue?: Path\n /** Given data context path must be false to show children */\n pathFalse?: Path\n /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. */\n visibleWhen?: VisibleWhen\n /** Same as `visibleWhen`, but with inverted logic. */\n visibleWhenNot?: VisibleWhen\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */\n filterData?: FilterData\n /** Animate the visibility change */\n animate?: boolean\n /** Keep the content in the DOM, even if it's not visible */\n keepInDOM?: boolean\n /** To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`. */\n compensateForGap?: HeightAnimationProps['compensateForGap']\n /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */\n fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes\n element?: HeightAnimationProps['element']\n children: React.ReactNode\n\n /** @deprecated Use `visibleWhen` instead */\n pathValue?: string\n /** @deprecated Use `visibleWhen` instead */\n whenValue?: unknown\n}\n\nfunction Visibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n animate,\n keepInDOM,\n compensateForGap,\n fieldPropsWhenHidden,\n children,\n ...rest\n}: Props) {\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const { check } = useVisibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n })\n const open = check()\n const content = (\n <VisibilityContext.Provider\n value={{\n isVisible: open,\n }}\n >\n {children}\n </VisibilityContext.Provider>\n )\n\n if (animate) {\n const props = !open ? fieldPropsWhenHidden : null\n\n return (\n <HeightAnimation\n open={open}\n keepInDOM={Boolean(keepInDOM)}\n className=\"dnb-forms-visibility\"\n compensateForGap={compensateForGap}\n {...rest}\n >\n <FieldProvider {...props}>{content}</FieldProvider>\n </HeightAnimation>\n )\n }\n\n if (keepInDOM) {\n const props = !open ? fieldPropsWhenHidden : null\n return (\n <span className=\"dnb-forms-visibility\" hidden={!open}>\n <FieldProvider {...props}>{content}</FieldProvider>\n </span>\n )\n }\n\n return <>{open ? content : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAA0B,OAAO;AAE7C,SAASC,IAAI,QAAQ,4BAA4B;AACjD,OAAOC,cAAc,MAAM,2CAA2C;AACtE,OAAOC,eAAe,MAEf,wCAAwC;AAC/C,OAAOC,aAAa,MAAM,sBAAsB;AAChD,OAAOC,aAAa,MAAM,iBAAiB;AAK3C,OAAOC,iBAAiB,MAAM,qBAAqB;AA8EnD,SAASC,UAAUA,CAAAC,IAAA,EAoBT;EAAA,IApBU;MAClBC,OAAO;MACPC,WAAW;MACXC,aAAa;MACbC,UAAU;MACVC,SAAS;MACTC,QAAQ;MACRC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC,WAAW;MACXC,cAAc;MACdC,SAAS;MACTC,UAAU;MACVC,OAAO;MACPC,SAAS;MACTC,gBAAgB;MAChBC,oBAAoB;MACpBC;IAEK,CAAC,GAAAlB,IAAA;IADHmB,IAAI,GAAAC,wBAAA,CAAApB,IAAA,EAAAqB,SAAA;EAEP3B,cAAc,CAAC,MAAM;IACnB,IAAIuB,oBAAoB,IAAI,CAACF,SAAS,EAAE;MACtCtB,IAAI,CAAC,+DAA+D,CAAC;IACvE;EACF,CAAC,CAAC;EAEF,MAAM;IAAE6B;EAAM,CAAC,GAAGzB,aAAa,CAAC;IAC9BI,OAAO;IACPC,WAAW;IACXC,aAAa;IACbC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACRC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,WAAW;IACXC,cAAc;IACdC,SAAS;IACTC;EACF,CAAC,CAAC;EACF,MAAMU,IAAI,GAAGD,KAAK,CAAC,CAAC;EACpB,MAAME,OAAO,GACXhC,KAAA,CAAAiC,aAAA,CAAC3B,iBAAiB,CAAC4B,QAAQ;IACzBC,KAAK,EAAE;MACLC,SAAS,EAAEL;IACb;EAAE,GAEDL,QACyB,CAC7B;EAED,IAAIJ,OAAO,EAAE;IACX,MAAMe,KAAK,GAAG,CAACN,IAAI,GAAGN,oBAAoB,GAAG,IAAI;IAEjD,OACEzB,KAAA,CAAAiC,aAAA,CAAC9B,eAAe,EAAAmC,QAAA;MACdP,IAAI,EAAEA,IAAK;MACXR,SAAS,EAAEgB,OAAO,CAAChB,SAAS,CAAE;MAC9BiB,SAAS,EAAC,sBAAsB;MAChChB,gBAAgB,EAAEA;IAAiB,GAC/BG,IAAI,GAER3B,KAAA,CAAAiC,aAAA,CAAC7B,aAAa,EAAKiC,KAAK,EAAGL,OAAuB,CACnC,CAAC;EAEtB;EAEA,IAAIT,SAAS,EAAE;IACb,MAAMc,KAAK,GAAG,CAACN,IAAI,GAAGN,oBAAoB,GAAG,IAAI;IACjD,OACEzB,KAAA,CAAAiC,aAAA;MAAMO,SAAS,EAAC,sBAAsB;MAACC,MAAM,EAAE,CAACV;IAAK,GACnD/B,KAAA,CAAAiC,aAAA,CAAC7B,aAAa,EAAKiC,KAAK,EAAGL,OAAuB,CAC9C,CAAC;EAEX;EAEA,OAAOhC,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAA0C,QAAA,QAAGX,IAAI,GAAGC,OAAO,GAAG,IAAO,CAAC;AACrC;AAEAzB,UAAU,CAACoC,qBAAqB,GAAG,UAAU;AAC7C,eAAepC,UAAU"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
export const VisibilityProperties = {
|
|
2
|
+
visibleWhen: {
|
|
3
|
+
doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. You can also use `isValid` instead of `hasValue` to only show the children when the field has no errors and has lost focus (blurred). You can change that behavior by using the `continuousValidation` property.',
|
|
4
|
+
type: 'object',
|
|
5
|
+
status: 'optional'
|
|
6
|
+
},
|
|
7
|
+
visibleWhenNot: {
|
|
8
|
+
doc: 'Same as `visibleWhen`, but with inverted logic.',
|
|
9
|
+
type: 'object',
|
|
10
|
+
status: 'optional'
|
|
11
|
+
},
|
|
2
12
|
pathDefined: {
|
|
3
13
|
doc: 'Given data context path must be defined to show children.',
|
|
4
14
|
type: 'string',
|
|
@@ -29,16 +39,6 @@ export const VisibilityProperties = {
|
|
|
29
39
|
type: 'string',
|
|
30
40
|
status: 'optional'
|
|
31
41
|
},
|
|
32
|
-
visibleWhen: {
|
|
33
|
-
doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path.',
|
|
34
|
-
type: 'object',
|
|
35
|
-
status: 'optional'
|
|
36
|
-
},
|
|
37
|
-
visibleWhenNot: {
|
|
38
|
-
doc: 'Same as `visibleWhen`, but with inverted logic.',
|
|
39
|
-
type: 'object',
|
|
40
|
-
status: 'optional'
|
|
41
|
-
},
|
|
42
42
|
inferData: {
|
|
43
43
|
doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',
|
|
44
44
|
type: 'function',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisibilityDocs.js","names":["VisibilityProperties","
|
|
1
|
+
{"version":3,"file":"VisibilityDocs.js","names":["VisibilityProperties","visibleWhen","doc","type","status","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","inferData","visible","animate","keepInDOM","compensateForGap","filterData","fieldPropsWhenHidden","element","children"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const VisibilityProperties: PropertiesTableProps = {\n visibleWhen: {\n doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. You can also use `isValid` instead of `hasValue` to only show the children when the field has no errors and has lost focus (blurred). You can change that behavior by using the `continuousValidation` property.',\n type: 'object',\n status: 'optional',\n },\n visibleWhenNot: {\n doc: 'Same as `visibleWhen`, but with inverted logic.',\n type: 'object',\n status: 'optional',\n },\n pathDefined: {\n doc: 'Given data context path must be defined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathUndefined: {\n doc: 'Given data context path must be undefined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTruthy: {\n doc: 'Given data context path must be truthy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalsy: {\n doc: 'Given data context path must be falsy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTrue: {\n doc: 'Given data context path must be true to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalse: {\n doc: 'Given data context path must be false to show children.',\n type: 'string',\n status: 'optional',\n },\n inferData: {\n doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',\n type: 'function',\n status: 'optional',\n },\n visible: {\n doc: 'Control visibility directly using the `visible` prop. When used alongside other conditions, the `visible` prop takes precedence.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Define if the content should animate during show/hide.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: \"Keep the content in the DOM, even if it's not visible. Can be used to let fields run validation.\",\n type: 'boolean',\n status: 'optional',\n },\n compensateForGap: {\n doc: 'To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',\n type: ['object', 'function'],\n status: 'optional',\n },\n fieldPropsWhenHidden: {\n doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',\n type: 'various',\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element. Defaults to `div`. Only for when `animate` is true.',\n type: 'string or React.Element',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAA0C,GAAG;EACxDC,WAAW,EAAE;IACXC,GAAG,EAAE,+XAA+X;IACpYC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,cAAc,EAAE;IACdH,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,UAAU,EAAE;IACVN,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,+FAA+F;IACpGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,SAAS,EAAE;IACTb,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,gBAAgB,EAAE;IAChBd,GAAG,EAAE,gJAAgJ;IACrJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,UAAU,EAAE;IACVf,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDc,oBAAoB,EAAE;IACpBhB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDe,OAAO,EAAE;IACPjB,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACV,CAAC;EACDgB,QAAQ,EAAE;IACRlB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -6,7 +6,9 @@ import DataContext from '../../DataContext/Context';
|
|
|
6
6
|
import usePath from '../../hooks/usePath';
|
|
7
7
|
export default function useVisibility(props) {
|
|
8
8
|
const {
|
|
9
|
+
hasFieldError,
|
|
9
10
|
filterDataHandler,
|
|
11
|
+
mountedFieldsRef,
|
|
10
12
|
data: originalData
|
|
11
13
|
} = useContext(DataContext);
|
|
12
14
|
const {
|
|
@@ -40,24 +42,34 @@ export default function useVisibility(props) {
|
|
|
40
42
|
visibleWhen = visibleWhenNot;
|
|
41
43
|
}
|
|
42
44
|
const path = 'itemPath' in visibleWhen ? makeIteratePath(visibleWhen.itemPath) : makePath(visibleWhen.path);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if ((_visibleWhen = visibleWhen) !== null && _visibleWhen !== void 0 && _visibleWhen['withValue']) {
|
|
48
|
-
console.warn('VisibleWhen: "withValue" is deprecated, use "hasValue" instead');
|
|
45
|
+
if ('isValid' in visibleWhen) {
|
|
46
|
+
const item = mountedFieldsRef.current[path];
|
|
47
|
+
if (!item || item.isMounted !== true) {
|
|
48
|
+
return visibleWhenNot ? true : false;
|
|
49
49
|
}
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
const result = (visibleWhen.continuousValidation ? true : item.isFocused !== true) && hasFieldError(path) === false;
|
|
51
|
+
return visibleWhenNot ? !result : result;
|
|
52
|
+
}
|
|
53
|
+
if ('hasValue' in visibleWhen || 'withValue' in visibleWhen) {
|
|
54
|
+
const hasPath = pointer.has(data, path);
|
|
55
|
+
if (hasPath) {
|
|
56
|
+
var _visibleWhen, _visibleWhen$hasValue, _visibleWhen2, _visibleWhen3;
|
|
57
|
+
const value = pointer.get(data, path);
|
|
58
|
+
if ((_visibleWhen = visibleWhen) !== null && _visibleWhen !== void 0 && _visibleWhen['withValue']) {
|
|
59
|
+
console.warn('VisibleWhen: "withValue" is deprecated, use "hasValue" instead');
|
|
60
|
+
}
|
|
61
|
+
const hasValue = (_visibleWhen$hasValue = (_visibleWhen2 = visibleWhen) === null || _visibleWhen2 === void 0 ? void 0 : _visibleWhen2['hasValue']) !== null && _visibleWhen$hasValue !== void 0 ? _visibleWhen$hasValue : (_visibleWhen3 = visibleWhen) === null || _visibleWhen3 === void 0 ? void 0 : _visibleWhen3['withValue'];
|
|
62
|
+
const result = typeof hasValue === 'function' ? hasValue(value) === false : hasValue !== value;
|
|
63
|
+
if (visibleWhenNot) {
|
|
64
|
+
if (!result) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
} else if (result) {
|
|
54
68
|
return false;
|
|
55
69
|
}
|
|
56
|
-
} else
|
|
70
|
+
} else {
|
|
57
71
|
return false;
|
|
58
72
|
}
|
|
59
|
-
} else {
|
|
60
|
-
return false;
|
|
61
73
|
}
|
|
62
74
|
}
|
|
63
75
|
if (pathDefined && !pointer.has(data, makePath(pathDefined))) {
|
|
@@ -90,7 +102,7 @@ export default function useVisibility(props) {
|
|
|
90
102
|
return false;
|
|
91
103
|
}
|
|
92
104
|
return true;
|
|
93
|
-
}, [filterDataHandler, originalData, makePath, makeIteratePath]);
|
|
105
|
+
}, [filterDataHandler, originalData, makePath, makeIteratePath, mountedFieldsRef, hasFieldError]);
|
|
94
106
|
return {
|
|
95
107
|
check
|
|
96
108
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVisibility.js","names":["useCallback","useContext","useRef","pointer","DataContext","usePath","useVisibility","props","filterDataHandler","data","originalData","makePath","makeIteratePath","propsRef","current","check","visible","visibleWhen","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","filterData","arguments","length","undefined","path","itemPath","hasPath","has","_visibleWhen","_visibleWhen$hasValue","_visibleWhen2","_visibleWhen3","value","get","console","warn","hasValue","
|
|
1
|
+
{"version":3,"file":"useVisibility.js","names":["useCallback","useContext","useRef","pointer","DataContext","usePath","useVisibility","props","hasFieldError","filterDataHandler","mountedFieldsRef","data","originalData","makePath","makeIteratePath","propsRef","current","check","visible","visibleWhen","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","filterData","arguments","length","undefined","path","itemPath","item","isMounted","result","continuousValidation","isFocused","hasPath","has","_visibleWhen","_visibleWhen$hasValue","_visibleWhen2","_visibleWhen3","value","get","console","warn","hasValue","getValue","Boolean"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/useVisibility.tsx"],"sourcesContent":["import { useCallback, useContext, useRef } from 'react'\nimport pointer from '../../utils/json-pointer'\nimport DataContext from '../../DataContext/Context'\nimport usePath from '../../hooks/usePath'\nimport { Path } from '../../types'\nimport { Props } from './Visibility'\n\nexport type { Props }\n\nexport default function useVisibility(props?: Partial<Props>) {\n const {\n hasFieldError,\n filterDataHandler,\n mountedFieldsRef,\n data: originalData,\n } = useContext(DataContext)\n\n const { makePath, makeIteratePath } = usePath()\n\n // Forward props to the \"check\" method with ref to avoid infinite loop\n const propsRef = useRef(props)\n propsRef.current = props\n\n const check = useCallback(\n (\n {\n visible,\n visibleWhen,\n visibleWhenNot,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n inferData,\n filterData,\n }: Partial<Props> = propsRef.current\n ) => {\n if (typeof visible === 'boolean') {\n return visible\n }\n\n const data =\n (filterData && filterDataHandler?.(originalData, filterData)) ||\n originalData\n\n if (visibleWhen || visibleWhenNot) {\n if (visibleWhenNot) {\n visibleWhen = visibleWhenNot\n }\n\n const path =\n 'itemPath' in visibleWhen\n ? makeIteratePath(visibleWhen.itemPath)\n : makePath(visibleWhen.path)\n\n if ('isValid' in visibleWhen) {\n const item = mountedFieldsRef.current[path]\n if (!item || item.isMounted !== true) {\n return visibleWhenNot ? true : false\n }\n const result =\n (visibleWhen.continuousValidation\n ? true\n : item.isFocused !== true) && hasFieldError(path) === false\n return visibleWhenNot ? !result : result\n }\n\n if ('hasValue' in visibleWhen || 'withValue' in visibleWhen) {\n const hasPath = pointer.has(data, path)\n\n if (hasPath) {\n const value = pointer.get(data, path)\n\n if (visibleWhen?.['withValue']) {\n console.warn(\n 'VisibleWhen: \"withValue\" is deprecated, use \"hasValue\" instead'\n )\n }\n\n const hasValue =\n visibleWhen?.['hasValue'] ?? visibleWhen?.['withValue']\n const result =\n typeof hasValue === 'function'\n ? hasValue(value) === false\n : hasValue !== value\n\n if (visibleWhenNot) {\n if (!result) {\n return false\n }\n } else if (result) {\n return false\n }\n } else {\n return false\n }\n }\n }\n\n if (pathDefined && !pointer.has(data, makePath(pathDefined))) {\n return false\n }\n if (pathUndefined && pointer.has(data, makePath(pathUndefined))) {\n return false\n }\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n }\n\n if (pathTrue && getValue(makePath(pathTrue)) !== true) {\n return false\n }\n if (pathFalse && getValue(makePath(pathFalse)) !== false) {\n return false\n }\n if (\n pathTruthy &&\n Boolean(getValue(makePath(pathTruthy))) === false\n ) {\n return false\n }\n if (pathFalsy && Boolean(getValue(makePath(pathFalsy))) === true) {\n return false\n }\n if (inferData && !inferData(data)) {\n return false\n }\n\n // Deprecated can be removed in v11\n if (pathValue && getValue(makePath(pathValue)) !== whenValue) {\n return false\n }\n\n return true\n },\n [\n filterDataHandler,\n originalData,\n makePath,\n makeIteratePath,\n mountedFieldsRef,\n hasFieldError,\n ]\n )\n\n return { check }\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AACvD,OAAOC,OAAO,MAAM,0BAA0B;AAC9C,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,OAAO,MAAM,qBAAqB;AAMzC,eAAe,SAASC,aAAaA,CAACC,KAAsB,EAAE;EAC5D,MAAM;IACJC,aAAa;IACbC,iBAAiB;IACjBC,gBAAgB;IAChBC,IAAI,EAAEC;EACR,CAAC,GAAGX,UAAU,CAACG,WAAW,CAAC;EAE3B,MAAM;IAAES,QAAQ;IAAEC;EAAgB,CAAC,GAAGT,OAAO,CAAC,CAAC;EAG/C,MAAMU,QAAQ,GAAGb,MAAM,CAACK,KAAK,CAAC;EAC9BQ,QAAQ,CAACC,OAAO,GAAGT,KAAK;EAExB,MAAMU,KAAK,GAAGjB,WAAW,CACvB,YAgBK;IAAA,IAfH;MACEkB,OAAO;MACPC,WAAW;MACXC,cAAc;MACdC,WAAW;MACXC,aAAa;MACbC,UAAU;MACVC,SAAS;MACTC,QAAQ;MACRC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC;IACc,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGhB,QAAQ,CAACC,OAAO;IAEpC,IAAI,OAAOE,OAAO,KAAK,SAAS,EAAE;MAChC,OAAOA,OAAO;IAChB;IAEA,MAAMP,IAAI,GACPmB,UAAU,KAAIrB,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAGG,YAAY,EAAEkB,UAAU,CAAC,KAC5DlB,YAAY;IAEd,IAAIO,WAAW,IAAIC,cAAc,EAAE;MACjC,IAAIA,cAAc,EAAE;QAClBD,WAAW,GAAGC,cAAc;MAC9B;MAEA,MAAMc,IAAI,GACR,UAAU,IAAIf,WAAW,GACrBL,eAAe,CAACK,WAAW,CAACgB,QAAQ,CAAC,GACrCtB,QAAQ,CAACM,WAAW,CAACe,IAAI,CAAC;MAEhC,IAAI,SAAS,IAAIf,WAAW,EAAE;QAC5B,MAAMiB,IAAI,GAAG1B,gBAAgB,CAACM,OAAO,CAACkB,IAAI,CAAC;QAC3C,IAAI,CAACE,IAAI,IAAIA,IAAI,CAACC,SAAS,KAAK,IAAI,EAAE;UACpC,OAAOjB,cAAc,GAAG,IAAI,GAAG,KAAK;QACtC;QACA,MAAMkB,MAAM,GACV,CAACnB,WAAW,CAACoB,oBAAoB,GAC7B,IAAI,GACJH,IAAI,CAACI,SAAS,KAAK,IAAI,KAAKhC,aAAa,CAAC0B,IAAI,CAAC,KAAK,KAAK;QAC/D,OAAOd,cAAc,GAAG,CAACkB,MAAM,GAAGA,MAAM;MAC1C;MAEA,IAAI,UAAU,IAAInB,WAAW,IAAI,WAAW,IAAIA,WAAW,EAAE;QAC3D,MAAMsB,OAAO,GAAGtC,OAAO,CAACuC,GAAG,CAAC/B,IAAI,EAAEuB,IAAI,CAAC;QAEvC,IAAIO,OAAO,EAAE;UAAA,IAAAE,YAAA,EAAAC,qBAAA,EAAAC,aAAA,EAAAC,aAAA;UACX,MAAMC,KAAK,GAAG5C,OAAO,CAAC6C,GAAG,CAACrC,IAAI,EAAEuB,IAAI,CAAC;UAErC,KAAAS,YAAA,GAAIxB,WAAW,cAAAwB,YAAA,eAAXA,YAAA,CAAc,WAAW,CAAC,EAAE;YAC9BM,OAAO,CAACC,IAAI,CACV,gEACF,CAAC;UACH;UAEA,MAAMC,QAAQ,IAAAP,qBAAA,IAAAC,aAAA,GACZ1B,WAAW,cAAA0B,aAAA,uBAAXA,aAAA,CAAc,UAAU,CAAC,cAAAD,qBAAA,cAAAA,qBAAA,IAAAE,aAAA,GAAI3B,WAAW,cAAA2B,aAAA,uBAAXA,aAAA,CAAc,WAAW,CAAC;UACzD,MAAMR,MAAM,GACV,OAAOa,QAAQ,KAAK,UAAU,GAC1BA,QAAQ,CAACJ,KAAK,CAAC,KAAK,KAAK,GACzBI,QAAQ,KAAKJ,KAAK;UAExB,IAAI3B,cAAc,EAAE;YAClB,IAAI,CAACkB,MAAM,EAAE;cACX,OAAO,KAAK;YACd;UACF,CAAC,MAAM,IAAIA,MAAM,EAAE;YACjB,OAAO,KAAK;UACd;QACF,CAAC,MAAM;UACL,OAAO,KAAK;QACd;MACF;IACF;IAEA,IAAIjB,WAAW,IAAI,CAAClB,OAAO,CAACuC,GAAG,CAAC/B,IAAI,EAAEE,QAAQ,CAACQ,WAAW,CAAC,CAAC,EAAE;MAC5D,OAAO,KAAK;IACd;IACA,IAAIC,aAAa,IAAInB,OAAO,CAACuC,GAAG,CAAC/B,IAAI,EAAEE,QAAQ,CAACS,aAAa,CAAC,CAAC,EAAE;MAC/D,OAAO,KAAK;IACd;IAEA,MAAM8B,QAAQ,GAAIlB,IAAU,IAAK;MAC/B,IAAI/B,OAAO,CAACuC,GAAG,CAAC/B,IAAI,EAAEuB,IAAI,CAAC,EAAE;QAC3B,OAAO/B,OAAO,CAAC6C,GAAG,CAACrC,IAAI,EAAEuB,IAAI,CAAC;MAChC;IACF,CAAC;IAED,IAAIT,QAAQ,IAAI2B,QAAQ,CAACvC,QAAQ,CAACY,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE;MACrD,OAAO,KAAK;IACd;IACA,IAAIC,SAAS,IAAI0B,QAAQ,CAACvC,QAAQ,CAACa,SAAS,CAAC,CAAC,KAAK,KAAK,EAAE;MACxD,OAAO,KAAK;IACd;IACA,IACEH,UAAU,IACV8B,OAAO,CAACD,QAAQ,CAACvC,QAAQ,CAACU,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,EACjD;MACA,OAAO,KAAK;IACd;IACA,IAAIC,SAAS,IAAI6B,OAAO,CAACD,QAAQ,CAACvC,QAAQ,CAACW,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;MAChE,OAAO,KAAK;IACd;IACA,IAAIK,SAAS,IAAI,CAACA,SAAS,CAAClB,IAAI,CAAC,EAAE;MACjC,OAAO,KAAK;IACd;IAGA,IAAIgB,SAAS,IAAIyB,QAAQ,CAACvC,QAAQ,CAACc,SAAS,CAAC,CAAC,KAAKC,SAAS,EAAE;MAC5D,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb,CAAC,EACD,CACEnB,iBAAiB,EACjBG,YAAY,EACZC,QAAQ,EACRC,eAAe,EACfJ,gBAAgB,EAChBF,aAAa,CAEjB,CAAC;EAED,OAAO;IAAES;EAAM,CAAC;AAClB"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { createSharedState } from '../../../../shared/helpers/useSharedState';
|
|
2
2
|
export default function clearData(id) {
|
|
3
|
+
var _sharedAttachments$da, _sharedAttachments$da2;
|
|
3
4
|
const sharedAttachments = createSharedState(id + '-attachments');
|
|
4
|
-
sharedAttachments.
|
|
5
|
-
const sharedData = createSharedState(id);
|
|
6
|
-
sharedData.update({
|
|
7
|
-
clearForm: true
|
|
8
|
-
});
|
|
5
|
+
(_sharedAttachments$da = (_sharedAttachments$da2 = sharedAttachments.data).clearData) === null || _sharedAttachments$da === void 0 ? void 0 : _sharedAttachments$da.call(_sharedAttachments$da2);
|
|
9
6
|
}
|
|
10
7
|
//# sourceMappingURL=clearData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearData.js","names":["createSharedState","clearData","id","
|
|
1
|
+
{"version":3,"file":"clearData.js","names":["createSharedState","clearData","id","_sharedAttachments$da","_sharedAttachments$da2","sharedAttachments","data","call"],"sources":["../../../../../../src/extensions/forms/Form/data-context/clearData.ts"],"sourcesContent":["import { createSharedState } from '../../../../shared/helpers/useSharedState'\nimport { SharedAttachments } from '../../DataContext/Provider'\n\nexport default function clearData(id: string) {\n const sharedAttachments = createSharedState<SharedAttachments<unknown>>(\n id + '-attachments'\n )\n sharedAttachments.data.clearData?.()\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,2CAA2C;AAG7E,eAAe,SAASC,SAASA,CAACC,EAAU,EAAE;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EAC5C,MAAMC,iBAAiB,GAAGL,iBAAiB,CACzCE,EAAE,GAAG,cACP,CAAC;EACD,CAAAC,qBAAA,IAAAC,sBAAA,GAAAC,iBAAiB,CAACC,IAAI,EAACL,SAAS,cAAAE,qBAAA,uBAAhCA,qBAAA,CAAAI,IAAA,CAAAH,sBAAmC,CAAC;AACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getData.js","names":["pointer","createSharedState","getData","id","sharedState","sharedAttachments","data","get","filterData","filter","_sharedAttachments$da","_sharedAttachments$da2","filterDataHandler","call","reduceToVisibleFields","options","_sharedAttachments$da3","_sharedAttachments$da4","visibleDataHandler","getValue","path","has","undefined"],"sources":["../../../../../../src/extensions/forms/Form/data-context/getData.tsx"],"sourcesContent":["import pointer from '../../utils/json-pointer'\nimport {\n SharedStateId,\n createSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport
|
|
1
|
+
{"version":3,"file":"getData.js","names":["pointer","createSharedState","getData","id","sharedState","sharedAttachments","data","get","filterData","filter","_sharedAttachments$da","_sharedAttachments$da2","filterDataHandler","call","reduceToVisibleFields","options","_sharedAttachments$da3","_sharedAttachments$da4","visibleDataHandler","getValue","path","has","undefined"],"sources":["../../../../../../src/extensions/forms/Form/data-context/getData.tsx"],"sourcesContent":["import pointer from '../../utils/json-pointer'\nimport {\n SharedStateId,\n createSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport { SharedAttachments } from '../../DataContext/Provider'\nimport type { Path } from '../../types'\nimport type {\n UseDataReturnGetValue,\n UseDataReturnFilterData,\n UseDataReturnVisibleData,\n} from './useData'\n\ntype SetDataReturn<Data> = {\n data: Data\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n reduceToVisibleFields: UseDataReturnVisibleData<Data>\n}\n\nexport default function getData<Data>(\n id: SharedStateId\n): SetDataReturn<Data> {\n const sharedState = createSharedState(id)\n const sharedAttachments = createSharedState<SharedAttachments<Data>>(\n id + '-attachments'\n )\n\n const data = sharedState.get() as Data\n\n const filterData: SetDataReturn<Data>['filterData'] = (filter) =>\n sharedAttachments.data?.filterDataHandler?.(data, filter)\n\n const reduceToVisibleFields: SetDataReturn<Data>['reduceToVisibleFields'] =\n (data, options) =>\n sharedAttachments.data?.visibleDataHandler?.(data, options)\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n\n return undefined\n }\n\n return {\n data,\n getValue,\n filterData,\n reduceToVisibleFields,\n }\n}\n"],"mappings":"AAAA,OAAOA,OAAO,MAAM,0BAA0B;AAC9C,SAEEC,iBAAiB,QACZ,2CAA2C;AAgBlD,eAAe,SAASC,OAAOA,CAC7BC,EAAiB,EACI;EACrB,MAAMC,WAAW,GAAGH,iBAAiB,CAACE,EAAE,CAAC;EACzC,MAAME,iBAAiB,GAAGJ,iBAAiB,CACzCE,EAAE,GAAG,cACP,CAAC;EAED,MAAMG,IAAI,GAAGF,WAAW,CAACG,GAAG,CAAC,CAAS;EAEtC,MAAMC,UAA6C,GAAIC,MAAM;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IAAA,QAAAD,qBAAA,GAC3DL,iBAAiB,CAACC,IAAI,cAAAI,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBE,iBAAiB,cAAAD,sBAAA,uBAAzCA,sBAAA,CAAAE,IAAA,CAAAH,qBAAA,EAA4CJ,IAAI,EAAEG,MAAM,CAAC;EAAA;EAE3D,MAAMK,qBAAmE,GACvEA,CAACR,IAAI,EAAES,OAAO;IAAA,IAAAC,sBAAA,EAAAC,sBAAA;IAAA,QAAAD,sBAAA,GACZX,iBAAiB,CAACC,IAAI,cAAAU,sBAAA,wBAAAC,sBAAA,GAAtBD,sBAAA,CAAwBE,kBAAkB,cAAAD,sBAAA,uBAA1CA,sBAAA,CAAAJ,IAAA,CAAAG,sBAAA,EAA6CV,IAAI,EAAES,OAAO,CAAC;EAAA;EAE/D,MAAMI,QAAQ,GAAIC,IAAU,IAAK;IAC/B,IAAIpB,OAAO,CAACqB,GAAG,CAACf,IAAI,EAAEc,IAAI,CAAC,EAAE;MAC3B,OAAOpB,OAAO,CAACO,GAAG,CAACD,IAAI,EAAEc,IAAI,CAAC;IAChC;IAEA,OAAOE,SAAS;EAClB,CAAC;EAED,OAAO;IACLhB,IAAI;IACJa,QAAQ;IACRX,UAAU;IACVM;EACF,CAAC;AACH"}
|