@dnb/eufemia 10.43.0 → 10.44.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 +32 -0
- package/cjs/components/autocomplete/Autocomplete.d.ts +2 -2
- package/cjs/components/autocomplete/AutocompleteDocs.js +7 -7
- package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/cjs/components/button/Button.d.ts +1 -1
- package/cjs/components/button/Button.js +6 -5
- package/cjs/components/button/Button.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedHooks.js +4 -0
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/space/Space.d.ts +1 -1
- package/cjs/components/space/Space.js.map +1 -1
- package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -1
- package/cjs/components/table/table-navigation/TableNavigationHead.js +1 -1
- package/cjs/components/table/table-navigation/TableNavigationHead.js.map +1 -1
- package/cjs/components/upload/UploadDocs.js +1 -1
- package/cjs/components/upload/UploadDocs.js.map +1 -1
- package/cjs/components/upload/UploadInfo.js +1 -1
- package/cjs/components/upload/UploadInfo.js.map +1 -1
- package/cjs/components/upload/UploadVerify.js +4 -1
- package/cjs/components/upload/UploadVerify.js.map +1 -1
- package/cjs/components/upload/types.d.ts +2 -2
- package/cjs/components/upload/types.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +5 -12
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +43 -18
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js +31 -0
- package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/FieldDocs.d.ts +7 -0
- package/cjs/extensions/forms/Field/FieldDocs.js +20 -1
- package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.js +7 -12
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -4
- package/cjs/extensions/forms/Field/Option/Option.js +0 -21
- package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -15
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +28 -0
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +32 -16
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +16 -0
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +40 -16
- package/cjs/extensions/forms/Field/Selection/Selection.js +71 -16
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
- package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js +3 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +26 -5
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +66 -26
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +11 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/Section.js +2 -2
- package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/clearData.d.ts +1 -0
- package/cjs/extensions/forms/Form/data-context/clearData.js +16 -0
- package/cjs/extensions/forms/Form/data-context/clearData.js.map +1 -0
- package/cjs/extensions/forms/Form/index.d.ts +1 -0
- package/cjs/extensions/forms/Form/index.js +7 -0
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -4
- package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/cjs/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
- package/cjs/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
- package/cjs/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +4 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +4 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +4 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +8 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +4 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueDocs.js +4 -4
- package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.d.ts +1 -0
- package/cjs/extensions/forms/hooks/useDataValue.js +18 -9
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +5 -5
- package/cjs/extensions/forms/hooks/useFieldProps.js +39 -23
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +1 -1
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +16 -7
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/helpers/isAsync.js +2 -2
- package/cjs/shared/helpers/isAsync.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 +1 -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 +1 -1
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +1 -1
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/autocomplete/Autocomplete.d.ts +2 -2
- package/components/autocomplete/AutocompleteDocs.js +7 -7
- package/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/components/button/Button.d.ts +1 -1
- package/components/button/Button.js +6 -5
- package/components/button/Button.js.map +1 -1
- package/components/input-masked/InputMaskedHooks.js +4 -0
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/space/Space.d.ts +1 -1
- package/components/space/Space.js.map +1 -1
- package/components/table/table-accordion/TableAccordionHead.js.map +1 -1
- package/components/table/table-navigation/TableNavigationHead.js +1 -1
- package/components/table/table-navigation/TableNavigationHead.js.map +1 -1
- package/components/upload/UploadDocs.js +1 -1
- package/components/upload/UploadDocs.js.map +1 -1
- package/components/upload/UploadInfo.js +1 -1
- package/components/upload/UploadInfo.js.map +1 -1
- package/components/upload/UploadVerify.js +4 -1
- package/components/upload/UploadVerify.js.map +1 -1
- package/components/upload/types.d.ts +2 -2
- package/components/upload/types.js.map +1 -1
- package/es/components/autocomplete/Autocomplete.d.ts +2 -2
- package/es/components/autocomplete/AutocompleteDocs.js +7 -7
- package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/es/components/button/Button.d.ts +1 -1
- package/es/components/button/Button.js +6 -5
- package/es/components/button/Button.js.map +1 -1
- package/es/components/input-masked/InputMaskedHooks.js +4 -0
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/space/Space.d.ts +1 -1
- package/es/components/space/Space.js.map +1 -1
- package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -1
- package/es/components/table/table-navigation/TableNavigationHead.js +1 -1
- package/es/components/table/table-navigation/TableNavigationHead.js.map +1 -1
- package/es/components/upload/UploadDocs.js +1 -1
- package/es/components/upload/UploadDocs.js.map +1 -1
- package/es/components/upload/UploadInfo.js +1 -1
- package/es/components/upload/UploadInfo.js.map +1 -1
- package/es/components/upload/UploadVerify.js +4 -1
- package/es/components/upload/UploadVerify.js.map +1 -1
- package/es/components/upload/types.d.ts +2 -2
- package/es/components/upload/types.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +1 -0
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +5 -12
- package/es/extensions/forms/DataContext/Provider/Provider.js +41 -18
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Currency/CurrencyDocs.js +22 -0
- package/es/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
- package/es/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/FieldDocs.d.ts +7 -0
- package/es/extensions/forms/Field/FieldDocs.js +16 -0
- package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.js +7 -12
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/Option/Option.d.ts +2 -4
- package/es/extensions/forms/Field/Option/Option.js +0 -20
- package/es/extensions/forms/Field/Option/Option.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +32 -15
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +20 -0
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +16 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +9 -0
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
- package/es/extensions/forms/Field/Selection/Selection.d.ts +40 -16
- package/es/extensions/forms/Field/Selection/Selection.js +67 -15
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
- package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js +3 -1
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +26 -5
- package/es/extensions/forms/Form/Isolation/Isolation.js +67 -27
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -0
- package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js +11 -1
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/Section.js +2 -2
- package/es/extensions/forms/Form/Section/Section.js.map +1 -1
- package/es/extensions/forms/Form/data-context/clearData.d.ts +1 -0
- package/es/extensions/forms/Form/data-context/clearData.js +10 -0
- package/es/extensions/forms/Form/data-context/clearData.js.map +1 -0
- package/es/extensions/forms/Form/index.d.ts +1 -0
- package/es/extensions/forms/Form/index.js +1 -0
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/types.d.ts +1 -4
- package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/es/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
- package/es/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
- package/es/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +4 -0
- package/es/extensions/forms/constants/locales/en-GB.js +4 -0
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +4 -0
- package/es/extensions/forms/constants/locales/index.d.ts +8 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +4 -0
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueDocs.js +4 -4
- package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/es/extensions/forms/hooks/useDataValue.d.ts +1 -0
- package/es/extensions/forms/hooks/useDataValue.js +18 -9
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.d.ts +5 -5
- package/es/extensions/forms/hooks/useFieldProps.js +39 -23
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +1 -1
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +16 -7
- package/es/extensions/forms/types.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/helpers/isAsync.js +2 -2
- package/es/shared/helpers/isAsync.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 +1 -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 +1 -1
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +1 -1
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -0
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +5 -12
- package/extensions/forms/DataContext/Provider/Provider.js +41 -18
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
- package/extensions/forms/Field/Currency/CurrencyDocs.js +22 -0
- package/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
- package/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/FieldDocs.d.ts +7 -0
- package/extensions/forms/Field/FieldDocs.js +18 -0
- package/extensions/forms/Field/FieldDocs.js.map +1 -1
- package/extensions/forms/Field/Number/Number.js +7 -12
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/Option/Option.d.ts +2 -4
- package/extensions/forms/Field/Option/Option.js +0 -20
- package/extensions/forms/Field/Option/Option.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -15
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +20 -0
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
- package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +32 -16
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +9 -0
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
- package/extensions/forms/Field/Selection/Selection.d.ts +40 -16
- package/extensions/forms/Field/Selection/Selection.js +70 -15
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
- package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/extensions/forms/Form/Handler/Handler.js +3 -1
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.d.ts +26 -5
- package/extensions/forms/Form/Isolation/Isolation.js +67 -27
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -0
- package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationDocs.js +11 -1
- package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/extensions/forms/Form/Section/Section.js +2 -2
- package/extensions/forms/Form/Section/Section.js.map +1 -1
- package/extensions/forms/Form/data-context/clearData.d.ts +1 -0
- package/extensions/forms/Form/data-context/clearData.js +10 -0
- package/extensions/forms/Form/data-context/clearData.js.map +1 -0
- package/extensions/forms/Form/index.d.ts +1 -0
- package/extensions/forms/Form/index.js +1 -0
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Iterate/Array/types.d.ts +1 -4
- package/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
- package/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
- package/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +4 -0
- package/extensions/forms/constants/locales/en-GB.js +4 -0
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +4 -0
- package/extensions/forms/constants/locales/index.d.ts +8 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
- package/extensions/forms/constants/locales/nb-NO.js +4 -0
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/DataValueDocs.js +4 -4
- package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.d.ts +1 -0
- package/extensions/forms/hooks/useDataValue.js +18 -9
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.d.ts +5 -5
- package/extensions/forms/hooks/useFieldProps.js +39 -23
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +1 -1
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +16 -7
- package/extensions/forms/types.js.map +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/helpers/isAsync.js +2 -2
- package/shared/helpers/isAsync.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 +1 -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 +1 -1
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +1 -1
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +2 -2
- package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +3 -3
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.js","names":["React","useContext","DataContextProvider","DataContext","FormElement","FormStatus","useId","combineLabelledBy","FormHandler","_ref","children","defaultData","data","schema","ajvInstance","errorMessages","globalStatusId","filterSubmitData","filterData","transformIn","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","autoComplete","locale","translations","disabled","required","rest","_objectWithoutProperties","_excluded","providerProps","id","createElement","FormElementWithState","_ref2","_excluded2","submitState","states","Object","entries","filter","value","_extends","map","key","undefined","state","className","show","Boolean","no_animation","shellSpace","top","bottom","String"],"sources":["../../../../../../src/extensions/forms/Form/Handler/Handler.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { JsonObject } from 'json-pointer'\nimport DataContextProvider, {\n Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport DataContext from '../../DataContext/Context'\nimport FormElement from '../Element'\nimport type { ElementAllProps } from '../../../../elements/Element'\nimport FormStatus from '../../../../components/FormStatus'\nimport useId from '../../../../shared/helpers/useId'\nimport { combineLabelledBy } from '../../../../shared/component-helper'\n\nexport type Props = Omit<\n ElementAllProps,\n 'data' | 'as' | 'autoComplete'\n> & {\n /**\n * Will enable autoComplete for all nested Field.String fields\n */\n autoComplete?: boolean\n}\n\nexport default function FormHandler<Data extends JsonObject>({\n children,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n filterData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n ...rest\n}: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>) {\n const providerProps = {\n id: rest.id,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n filterData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n }\n\n return (\n <DataContextProvider {...providerProps}>\n <FormElementWithState {...rest}>{children}</FormElementWithState>\n </DataContextProvider>\n )\n}\n\nfunction FormElementWithState({ children, ...rest }) {\n const id = useId()\n const { submitState } = useContext(DataContext) || {}\n const states = Object.entries(submitState || {}).filter(\n ([, value]) => value\n )\n\n return (\n <FormElement\n {...rest}\n aria-labelledby={\n combineLabelledBy(\n rest,\n states.map(([key]) => {\n return `${id}-form-status-${key}`\n })\n ) || undefined\n }\n >\n {children}\n\n {['error', 'warning', 'info'].map((key) => {\n const value = submitState?.[key]\n return (\n <FormStatus\n key={key}\n state={key}\n id={`${id}-form-status-${key}`}\n className=\"dnb-forms-status\"\n show={Boolean(value)}\n no_animation={false}\n shellSpace={{ top: 'small', bottom: 'medium' }}\n >\n {String(value?.['message'] || value || '')}\n </FormStatus>\n )\n })}\n </FormElement>\n )\n}\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAEzC,OAAOC,mBAAmB,MAEnB,4BAA4B;AACnC,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,WAAW,MAAM,YAAY;AAEpC,OAAOC,UAAU,MAAM,mCAAmC;AAC1D,OAAOC,KAAK,MAAM,kCAAkC;AACpD,SAASC,iBAAiB,QAAQ,qCAAqC;AAYvE,eAAe,SAASC,WAAWA,CAAAC,IAAA,
|
|
1
|
+
{"version":3,"file":"Handler.js","names":["React","useContext","DataContextProvider","DataContext","FormElement","FormStatus","useId","combineLabelledBy","FormHandler","_ref","children","defaultData","data","schema","ajvInstance","errorMessages","globalStatusId","filterSubmitData","filterData","transformIn","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onClear","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","autoComplete","locale","translations","disabled","required","rest","_objectWithoutProperties","_excluded","providerProps","id","createElement","FormElementWithState","_ref2","_excluded2","submitState","states","Object","entries","filter","value","_extends","map","key","undefined","state","className","show","Boolean","no_animation","shellSpace","top","bottom","String"],"sources":["../../../../../../src/extensions/forms/Form/Handler/Handler.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { JsonObject } from 'json-pointer'\nimport DataContextProvider, {\n Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport DataContext from '../../DataContext/Context'\nimport FormElement from '../Element'\nimport type { ElementAllProps } from '../../../../elements/Element'\nimport FormStatus from '../../../../components/FormStatus'\nimport useId from '../../../../shared/helpers/useId'\nimport { combineLabelledBy } from '../../../../shared/component-helper'\n\nexport type Props = Omit<\n ElementAllProps,\n 'data' | 'as' | 'autoComplete'\n> & {\n /**\n * Will enable autoComplete for all nested Field.String fields\n */\n autoComplete?: boolean\n}\n\nexport default function FormHandler<Data extends JsonObject>({\n children,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n filterData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onClear,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n ...rest\n}: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>) {\n const providerProps = {\n id: rest.id,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n filterData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onClear,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n }\n\n return (\n <DataContextProvider {...providerProps}>\n <FormElementWithState {...rest}>{children}</FormElementWithState>\n </DataContextProvider>\n )\n}\n\nfunction FormElementWithState({ children, ...rest }) {\n const id = useId()\n const { submitState } = useContext(DataContext) || {}\n const states = Object.entries(submitState || {}).filter(\n ([, value]) => value\n )\n\n return (\n <FormElement\n {...rest}\n aria-labelledby={\n combineLabelledBy(\n rest,\n states.map(([key]) => {\n return `${id}-form-status-${key}`\n })\n ) || undefined\n }\n >\n {children}\n\n {['error', 'warning', 'info'].map((key) => {\n const value = submitState?.[key]\n return (\n <FormStatus\n key={key}\n state={key}\n id={`${id}-form-status-${key}`}\n className=\"dnb-forms-status\"\n show={Boolean(value)}\n no_animation={false}\n shellSpace={{ top: 'small', bottom: 'medium' }}\n >\n {String(value?.['message'] || value || '')}\n </FormStatus>\n )\n })}\n </FormElement>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,16 +1,37 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { JsonObject } from 'json-pointer';
|
|
3
|
-
import { Props as ProviderProps } from '../../DataContext/Provider';
|
|
4
3
|
import IsolationCommitButton from './IsolationCommitButton';
|
|
4
|
+
import { type Props as ProviderProps } from '../../DataContext/Provider';
|
|
5
|
+
import type { OnCommit, Path } from '../../types';
|
|
6
|
+
export type IsolationProviderProps<Data> = {
|
|
7
|
+
/**
|
|
8
|
+
* Form.Isolation: Will be called when the isolated context is committed.
|
|
9
|
+
*/
|
|
10
|
+
onCommit?: OnCommit<Data>;
|
|
11
|
+
/**
|
|
12
|
+
* Form.Isolation: Will be called when the form is cleared via Form.clearData
|
|
13
|
+
*/
|
|
14
|
+
onClear?: () => void;
|
|
15
|
+
/**
|
|
16
|
+
* Form.Isolation: A function that will be called when the isolated context is committed.
|
|
17
|
+
* It will receive the data from the isolated context and the data from the outer context.
|
|
18
|
+
* You can use this to transform the data before it is committed.
|
|
19
|
+
*/
|
|
20
|
+
transformOnCommit?: (isolatedData: Data, handlerData: Data) => Data;
|
|
21
|
+
/**
|
|
22
|
+
* Used internally by the Form.Isolation component
|
|
23
|
+
*/
|
|
24
|
+
path?: Path;
|
|
25
|
+
/**
|
|
26
|
+
* Used internally by the Form.Isolation component
|
|
27
|
+
*/
|
|
28
|
+
isolate?: boolean;
|
|
29
|
+
};
|
|
5
30
|
export type IsolationProps<Data> = Omit<ProviderProps<Data>, 'onSubmit' | 'onSubmitRequest' | 'onSubmitComplete' | 'minimumAsyncBehaviorTime' | 'asyncSubmitTimeout' | 'scrollTopOnSubmit' | 'sessionStorageId' | 'filterSubmitData' | 'globalStatusId'> & {
|
|
6
31
|
/**
|
|
7
32
|
* A ref (function) that you can call in order to commit the data programmatically to the outer context.
|
|
8
33
|
*/
|
|
9
34
|
commitHandleRef?: React.MutableRefObject<() => void>;
|
|
10
|
-
/**
|
|
11
|
-
* Will be called when the isolated context is committed.
|
|
12
|
-
*/
|
|
13
|
-
onCommit?: (data: Data) => void;
|
|
14
35
|
};
|
|
15
36
|
declare function IsolationProvider<Data extends JsonObject>(props: IsolationProps<Data>): import("react/jsx-runtime").JSX.Element;
|
|
16
37
|
declare namespace IsolationProvider {
|
|
@@ -3,53 +3,93 @@
|
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
4
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
|
-
import React, { useCallback, useContext,
|
|
6
|
+
import React, { useCallback, useContext, useMemo, useReducer, useRef } from 'react';
|
|
7
7
|
import pointer from 'json-pointer';
|
|
8
|
-
import { Context, Provider } from '../../DataContext';
|
|
9
8
|
import { extendDeep } from '../../../../shared/component-helper';
|
|
9
|
+
import { Context, Provider } from '../../DataContext';
|
|
10
|
+
import SectionContext from '../Section/SectionContext';
|
|
10
11
|
import IsolationCommitButton from './IsolationCommitButton';
|
|
12
|
+
import { clearedData } from '../../DataContext/Provider';
|
|
13
|
+
import structuredClone from '@ungap/structured-clone';
|
|
11
14
|
function IsolationProvider(props) {
|
|
12
15
|
const {
|
|
13
16
|
children,
|
|
14
17
|
onPathChange,
|
|
15
|
-
onCommit,
|
|
18
|
+
onCommit: onCommitProp,
|
|
19
|
+
onClear: onClearProp,
|
|
20
|
+
transformOnCommit: transformOnCommitProp,
|
|
16
21
|
commitHandleRef,
|
|
17
22
|
data,
|
|
18
23
|
defaultData
|
|
19
24
|
} = props;
|
|
20
|
-
const
|
|
25
|
+
const [, forceUpdate] = useReducer(() => ({}), {});
|
|
26
|
+
const internalDataRef = useRef();
|
|
27
|
+
const localDataRef = useRef({});
|
|
28
|
+
const outerContext = useContext(Context);
|
|
21
29
|
const {
|
|
22
|
-
|
|
23
|
-
} =
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
useEffect(() => {
|
|
29
|
-
if (commitHandleRef) {
|
|
30
|
-
commitHandleRef.current = () => {
|
|
31
|
-
handlePathChange === null || handlePathChange === void 0 ? void 0 : handlePathChange('/', getData());
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
}, [getData, handlePathChange, commitHandleRef]);
|
|
30
|
+
path: pathSection
|
|
31
|
+
} = useContext(SectionContext) || {};
|
|
32
|
+
const {
|
|
33
|
+
handlePathChange: handlePathChangeOuter,
|
|
34
|
+
data: dataOuter
|
|
35
|
+
} = outerContext || {};
|
|
35
36
|
const onPathChangeHandler = useCallback(async (path, value) => {
|
|
36
|
-
|
|
37
|
+
if (localDataRef.current === clearedData) {
|
|
38
|
+
localDataRef.current = {};
|
|
39
|
+
}
|
|
40
|
+
pointer.set(localDataRef.current, path, value);
|
|
41
|
+
if (pathSection) {
|
|
42
|
+
path = path.replace(pathSection, '');
|
|
43
|
+
}
|
|
37
44
|
return await (onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value));
|
|
38
|
-
}, [onPathChange]);
|
|
45
|
+
}, [onPathChange, pathSection]);
|
|
46
|
+
const removeSectionPath = useCallback(data => {
|
|
47
|
+
return pathSection && pointer.has(data, pathSection) ? pointer.get(data, pathSection) : data;
|
|
48
|
+
}, [pathSection]);
|
|
49
|
+
useMemo(() => {
|
|
50
|
+
if (localDataRef.current === clearedData) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
let localData = data !== null && data !== void 0 ? data : defaultData;
|
|
54
|
+
if (localData && pathSection && !pointer.has(localDataRef.current, pathSection)) {
|
|
55
|
+
const obj = {};
|
|
56
|
+
pointer.set(obj, pathSection, localData);
|
|
57
|
+
localData = obj;
|
|
58
|
+
}
|
|
59
|
+
internalDataRef.current = extendDeep({}, dataOuter, localData || {}, localDataRef.current);
|
|
60
|
+
}, [data, defaultData, dataOuter, pathSection]);
|
|
61
|
+
const onCommit = useCallback(async (mountedData, additionalArgs) => {
|
|
62
|
+
var _props$path;
|
|
63
|
+
const path = (_props$path = props.path) !== null && _props$path !== void 0 ? _props$path : '/';
|
|
64
|
+
const outerData = props.path && pointer.has(dataOuter, path) ? pointer.get(dataOuter, path) : dataOuter;
|
|
65
|
+
localDataRef.current = mountedData;
|
|
66
|
+
let isolatedData = structuredClone(mountedData);
|
|
67
|
+
if (typeof transformOnCommitProp === 'function') {
|
|
68
|
+
isolatedData = transformOnCommitProp(isolatedData, outerData);
|
|
69
|
+
}
|
|
70
|
+
handlePathChangeOuter === null || handlePathChangeOuter === void 0 ? void 0 : handlePathChangeOuter(path, extendDeep({}, outerData, isolatedData));
|
|
71
|
+
return await (onCommitProp === null || onCommitProp === void 0 ? void 0 : onCommitProp(removeSectionPath(isolatedData), additionalArgs));
|
|
72
|
+
}, [props.path, dataOuter, transformOnCommitProp, handlePathChangeOuter, onCommitProp, removeSectionPath]);
|
|
73
|
+
const onClear = useCallback(() => {
|
|
74
|
+
localDataRef.current = clearedData;
|
|
75
|
+
internalDataRef.current = clearedData;
|
|
76
|
+
forceUpdate();
|
|
77
|
+
onClearProp === null || onClearProp === void 0 ? void 0 : onClearProp();
|
|
78
|
+
}, [onClearProp]);
|
|
39
79
|
const providerProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
40
|
-
data,
|
|
41
|
-
defaultData,
|
|
80
|
+
data: internalDataRef.current,
|
|
81
|
+
defaultData: undefined,
|
|
42
82
|
onPathChange: onPathChangeHandler,
|
|
43
83
|
onCommit,
|
|
84
|
+
onClear,
|
|
44
85
|
isolate: true
|
|
45
86
|
});
|
|
46
|
-
|
|
47
|
-
if (
|
|
48
|
-
|
|
87
|
+
return React.createElement(Provider, providerProps, React.createElement(Context.Consumer, null, dataContext => {
|
|
88
|
+
if (commitHandleRef) {
|
|
89
|
+
commitHandleRef.current = dataContext === null || dataContext === void 0 ? void 0 : dataContext.handleSubmit;
|
|
49
90
|
}
|
|
50
|
-
return
|
|
51
|
-
}
|
|
52
|
-
return React.createElement(Provider, providerProps, children);
|
|
91
|
+
return children;
|
|
92
|
+
}));
|
|
53
93
|
}
|
|
54
94
|
IsolationProvider.CommitButton = IsolationCommitButton;
|
|
55
95
|
IsolationProvider._supportsSpacingProps = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","pointer","Context","Provider","extendDeep","IsolationCommitButton","IsolationProvider","props","children","onPathChange","onCommit","commitHandleRef","data","defaultData","nestedContext","handlePathChange","dataRef","getData","current","onPathChangeHandler","path","value","set","providerProps","_objectSpread","isolate","createElement","CommitButton","_supportsSpacingProps","undefined"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { Context, Provider } from '../../DataContext'\nimport { Props as ProviderProps } from '../../DataContext/Provider'\nimport { Path } from '../../types'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport IsolationCommitButton from './IsolationCommitButton'\n\nexport type IsolationProps<Data> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'filterSubmitData'\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 /**\n * Will be called when the isolated context is committed.\n */\n onCommit?: (data: Data) => void\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const {\n children,\n onPathChange,\n onCommit,\n commitHandleRef,\n data,\n defaultData,\n } = props\n\n const nestedContext = useContext(Context)\n const { handlePathChange } = nestedContext ?? {}\n\n const dataRef = useRef<Partial<Data>>({})\n const getData = useCallback(() => {\n return extendDeep({}, nestedContext?.data, dataRef.current) as Data\n }, [nestedContext?.data])\n\n useEffect(() => {\n if (commitHandleRef) {\n commitHandleRef.current = () => {\n handlePathChange?.('/', getData())\n }\n }\n }, [getData, handlePathChange, commitHandleRef])\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: any) => {\n pointer.set(dataRef.current, path, value)\n\n return await onPathChange?.(path, value)\n },\n [onPathChange]\n )\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n data,\n defaultData,\n onPathChange: onPathChangeHandler,\n onCommit,\n isolate: true,\n }\n\n // Update the isolated data with the outside context data\n providerProps.data = useMemo(() => {\n if (!defaultData && !data) {\n return getData()\n }\n return providerProps.data\n }, [data, defaultData, getData, providerProps.data])\n\n return <Provider {...providerProps}>{children}</Provider>\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,QACD,OAAO;AACd,OAAOC,OAAO,MAAsB,cAAc;AAClD,SAASC,OAAO,EAAEC,QAAQ,QAAQ,mBAAmB;AAGrD,SAASC,UAAU,QAAQ,qCAAqC;AAChE,OAAOC,qBAAqB,MAAM,yBAAyB;AAyB3D,SAASC,iBAAiBA,CACxBC,KAA2B,EAC3B;EACA,MAAM;IACJC,QAAQ;IACRC,YAAY;IACZC,QAAQ;IACRC,eAAe;IACfC,IAAI;IACJC;EACF,CAAC,GAAGN,KAAK;EAET,MAAMO,aAAa,GAAGjB,UAAU,CAACK,OAAO,CAAC;EACzC,MAAM;IAAEa;EAAiB,CAAC,GAAGD,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,CAAC,CAAC;EAEhD,MAAME,OAAO,GAAGhB,MAAM,CAAgB,CAAC,CAAC,CAAC;EACzC,MAAMiB,OAAO,GAAGrB,WAAW,CAAC,MAAM;IAChC,OAAOQ,UAAU,CAAC,CAAC,CAAC,EAAEU,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEF,IAAI,EAAEI,OAAO,CAACE,OAAO,CAAC;EAC7D,CAAC,EAAE,CAACJ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEF,IAAI,CAAC,CAAC;EAEzBd,SAAS,CAAC,MAAM;IACd,IAAIa,eAAe,EAAE;MACnBA,eAAe,CAACO,OAAO,GAAG,MAAM;QAC9BH,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAG,GAAG,EAAEE,OAAO,CAAC,CAAC,CAAC;MACpC,CAAC;IACH;EACF,CAAC,EAAE,CAACA,OAAO,EAAEF,gBAAgB,EAAEJ,eAAe,CAAC,CAAC;EAEhD,MAAMQ,mBAAmB,GAAGvB,WAAW,CACrC,OAAOwB,IAAU,EAAEC,KAAU,KAAK;IAChCpB,OAAO,CAACqB,GAAG,CAACN,OAAO,CAACE,OAAO,EAAEE,IAAI,EAAEC,KAAK,CAAC;IAEzC,OAAO,OAAMZ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGW,IAAI,EAAEC,KAAK,CAAC;EAC1C,CAAC,EACD,CAACZ,YAAY,CACf,CAAC;EAED,MAAMc,aAAmC,GAAAC,aAAA,CAAAA,aAAA,KACpCjB,KAAK;IACRK,IAAI;IACJC,WAAW;IACXJ,YAAY,EAAEU,mBAAmB;IACjCT,QAAQ;IACRe,OAAO,EAAE;EAAI,EACd;EAGDF,aAAa,CAACX,IAAI,GAAGb,OAAO,CAAC,MAAM;IACjC,IAAI,CAACc,WAAW,IAAI,CAACD,IAAI,EAAE;MACzB,OAAOK,OAAO,CAAC,CAAC;IAClB;IACA,OAAOM,aAAa,CAACX,IAAI;EAC3B,CAAC,EAAE,CAACA,IAAI,EAAEC,WAAW,EAAEI,OAAO,EAAEM,aAAa,CAACX,IAAI,CAAC,CAAC;EAEpD,OAAOjB,KAAA,CAAA+B,aAAA,CAACvB,QAAQ,EAAKoB,aAAa,EAAGf,QAAmB,CAAC;AAC3D;AAEAF,iBAAiB,CAACqB,YAAY,GAAGtB,qBAAqB;AACtDC,iBAAiB,CAACsB,qBAAqB,GAAGC,SAAS;AAEnD,eAAevB,iBAAiB"}
|
|
1
|
+
{"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","pointer","extendDeep","Context","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","data","defaultData","forceUpdate","internalDataRef","localDataRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","localData","obj","mountedData","additionalArgs","_props$path","outerData","isolatedData","providerProps","_objectSpread","undefined","isolate","createElement","Consumer","dataContext","handleSubmit","CommitButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { Context, 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?: (isolatedData: Data, handlerData: Data) => Data\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 | 'filterSubmitData'\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 outerContext = useContext(Context)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\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 // 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 const obj = {} as Data\n pointer.set(obj, pathSection, localData)\n localData = obj\n }\n\n internalDataRef.current = extendDeep(\n {},\n dataOuter,\n localData || {},\n localDataRef.current\n ) as Data\n }, [data, defaultData, dataOuter, pathSection])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (mountedData: Data, additionalArgs) => {\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) as Data\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n // Commit the internal data to the nested context data\n handlePathChangeOuter?.(\n path,\n extendDeep({}, outerData, isolatedData)\n )\n\n return await onCommitProp?.(\n removeSectionPath(isolatedData),\n additionalArgs\n )\n },\n [\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 data: internalDataRef.current,\n defaultData: undefined,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <Context.Consumer>\n {(dataContext) => {\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":";;;;;AAAA,OAAOA,KAAK,IACVC,WAAW,EACXC,UAAU,EACVC,OAAO,EACPC,UAAU,EACVC,MAAM,QACD,OAAO;AACd,OAAOC,OAAO,MAAsB,cAAc;AAClD,SAASC,UAAU,QAAQ,qCAAqC;AAChE,SAASC,OAAO,EAAEC,QAAQ,QAAQ,mBAAmB;AACrD,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,qBAAqB,MAAM,yBAAyB;AAC3D,SACEC,WAAW,QAEN,4BAA4B;AAOnC,OAAOC,eAAe,MAAM,yBAAyB;AA6CrD,SAASC,iBAAiBA,CACxBC,KAA2B,EAC3B;EACA,MAAM;IACJC,QAAQ;IACRC,YAAY;IACZC,QAAQ,EAAEC,YAAY;IACtBC,OAAO,EAAEC,WAAW;IACpBC,iBAAiB,EAAEC,qBAAqB;IACxCC,eAAe;IACfC,IAAI;IACJC;EACF,CAAC,GAAGX,KAAK;EAET,MAAM,GAAGY,WAAW,CAAC,GAAGvB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAMwB,eAAe,GAAGvB,MAAM,CAAO,CAAC;EACtC,MAAMwB,YAAY,GAAGxB,MAAM,CAAgB,CAAC,CAAC,CAAC;EAC9C,MAAMyB,YAAY,GAAG5B,UAAU,CAACM,OAAO,CAAC;EACxC,MAAM;IAAEuB,IAAI,EAAEC;EAAY,CAAC,GAAG9B,UAAU,CAACQ,cAAc,CAAC,IAAI,CAAC,CAAC;EAC9D,MAAM;IAAEuB,gBAAgB,EAAEC,qBAAqB;IAAET,IAAI,EAAEU;EAAU,CAAC,GAChEL,YAAY,IAAI,CAAC,CAAC;EAEpB,MAAMM,mBAAmB,GAAGnC,WAAW,CACrC,OAAO8B,IAAU,EAAEM,KAAc,KAAK;IACpC,IAAIR,YAAY,CAACS,OAAO,KAAK1B,WAAW,EAAE;MACxCiB,YAAY,CAACS,OAAO,GAAG,CAAC,CAAC;IAC3B;IAEAhC,OAAO,CAACiC,GAAG,CAACV,YAAY,CAACS,OAAO,EAAEP,IAAI,EAAEM,KAAK,CAAC;IAE9C,IAAIL,WAAW,EAAE;MACfD,IAAI,GAAGA,IAAI,CAACS,OAAO,CAACR,WAAW,EAAE,EAAE,CAAC;IACtC;IAEA,OAAO,OAAMf,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGc,IAAI,EAAEM,KAAK,CAAC;EAC1C,CAAC,EACD,CAACpB,YAAY,EAAEe,WAAW,CAC5B,CAAC;EAED,MAAMS,iBAAiB,GAAGxC,WAAW,CAClCwB,IAAU,IAAK;IACd,OAAOO,WAAW,IAAI1B,OAAO,CAACoC,GAAG,CAACjB,IAAI,EAAEO,WAAW,CAAC,GAChD1B,OAAO,CAACqC,GAAG,CAAClB,IAAI,EAAEO,WAAW,CAAC,GAC9BP,IAAI;EACV,CAAC,EACD,CAACO,WAAW,CACd,CAAC;EAGD7B,OAAO,CAAC,MAAM;IACZ,IAAI0B,YAAY,CAACS,OAAO,KAAK1B,WAAW,EAAE;MACxC;IACF;IAEA,IAAIgC,SAAS,GAAGnB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAIC,WAAW;IAEnC,IACEkB,SAAS,IACTZ,WAAW,IACX,CAAC1B,OAAO,CAACoC,GAAG,CAACb,YAAY,CAACS,OAAO,EAAEN,WAAW,CAAC,EAC/C;MACA,MAAMa,GAAG,GAAG,CAAC,CAAS;MACtBvC,OAAO,CAACiC,GAAG,CAACM,GAAG,EAAEb,WAAW,EAAEY,SAAS,CAAC;MACxCA,SAAS,GAAGC,GAAG;IACjB;IAEAjB,eAAe,CAACU,OAAO,GAAG/B,UAAU,CAClC,CAAC,CAAC,EACF4B,SAAS,EACTS,SAAS,IAAI,CAAC,CAAC,EACff,YAAY,CAACS,OACf,CAAS;EACX,CAAC,EAAE,CAACb,IAAI,EAAEC,WAAW,EAAES,SAAS,EAAEH,WAAW,CAAC,CAAC;EAE/C,MAAMd,QAA0C,GAAGjB,WAAW,CAC5D,OAAO6C,WAAiB,EAAEC,cAAc,KAAK;IAAA,IAAAC,WAAA;IAC3C,MAAMjB,IAAI,IAAAiB,WAAA,GAAGjC,KAAK,CAACgB,IAAI,cAAAiB,WAAA,cAAAA,WAAA,GAAI,GAAG;IAC9B,MAAMC,SAAS,GACblC,KAAK,CAACgB,IAAI,IAAIzB,OAAO,CAACoC,GAAG,CAACP,SAAS,EAAEJ,IAAI,CAAC,GACtCzB,OAAO,CAACqC,GAAG,CAACR,SAAS,EAAEJ,IAAI,CAAC,GAC5BI,SAAS;IAEfN,YAAY,CAACS,OAAO,GAAGQ,WAAW;IAClC,IAAII,YAAY,GAAGrC,eAAe,CAACiC,WAAW,CAAS;IAEvD,IAAI,OAAOvB,qBAAqB,KAAK,UAAU,EAAE;MAC/C2B,YAAY,GAAG3B,qBAAqB,CAAC2B,YAAY,EAAED,SAAS,CAAC;IAC/D;IAGAf,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CACnBH,IAAI,EACJxB,UAAU,CAAC,CAAC,CAAC,EAAE0C,SAAS,EAAEC,YAAY,CACxC,CAAC;IAED,OAAO,OAAM/B,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CACvBsB,iBAAiB,CAACS,YAAY,CAAC,EAC/BH,cACF,CAAC;EACH,CAAC,EACD,CACEhC,KAAK,CAACgB,IAAI,EACVI,SAAS,EACTZ,qBAAqB,EACrBW,qBAAqB,EACrBf,YAAY,EACZsB,iBAAiB,CAErB,CAAC;EAED,MAAMrB,OAAO,GAAGnB,WAAW,CAAC,MAAM;IAChC4B,YAAY,CAACS,OAAO,GAAG1B,WAAW;IAClCgB,eAAe,CAACU,OAAO,GAAG1B,WAAmB;IAC7Ce,WAAW,CAAC,CAAC;IACbN,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAG,CAAC;EACjB,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,MAAM8B,aAAmC,GAAAC,aAAA,CAAAA,aAAA,KACpCrC,KAAK;IACRU,IAAI,EAAEG,eAAe,CAACU,OAAO;IAC7BZ,WAAW,EAAE2B,SAAS;IACtBpC,YAAY,EAAEmB,mBAAmB;IACjClB,QAAQ;IACRE,OAAO;IACPkC,OAAO,EAAE;EAAI,EACd;EAED,OACEtD,KAAA,CAAAuD,aAAA,CAAC9C,QAAQ,EAAK0C,aAAa,EACzBnD,KAAA,CAAAuD,aAAA,CAAC/C,OAAO,CAACgD,QAAQ,QACbC,WAAW,IAAK;IAChB,IAAIjC,eAAe,EAAE;MACnBA,eAAe,CAACc,OAAO,GAAGmB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEC,YAAY;IACrD;IAEA,OAAO1C,QAAQ;EACjB,CACgB,CACV,CAAC;AAEf;AAEAF,iBAAiB,CAAC6C,YAAY,GAAGhD,qBAAqB;AACtDG,iBAAiB,CAAC8C,qBAAqB,GAAGP,SAAS;AAEnD,eAAevC,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IsolationCommitButton.js","names":["React","useCallback","useContext","classnames","useTranslation","DataContext","Button","check","IsolationCommitButton","props","translations","Isolation","className","children","text","rest","_objectWithoutProperties","_excluded","content","commitButtonText","handleSubmit","dataContextProps","isolate","onClickHandler","createElement","_extends","variant","icon","onClick","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationCommitButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport { useTranslation } from '../../hooks'\nimport DataContext from '../../DataContext/Context'\nimport Button, { ButtonProps } from '../../../../components/button/Button'\nimport { check } from '../../../../icons'\n\nexport type Props = ButtonProps\n\nfunction IsolationCommitButton(props: Props) {\n const translations = useTranslation().Isolation\n\n const { className, children, text, ...rest } = props\n\n const content = text || children || translations.commitButtonText\n\n const { handleSubmit, props: dataContextProps } =\n useContext(DataContext) || {}\n const { isolate } = dataContextProps || {}\n\n const onClickHandler = useCallback(() => {\n if (isolate) {\n handleSubmit?.()\n }\n }, [handleSubmit, isolate])\n\n return (\n <Button\n variant=\"secondary\"\n className={classnames('dnb-forms-isolate-button', className)}\n icon={check}\n onClick={onClickHandler}\n {...rest}\n >\n {content}\n </Button>\n )\n}\n\nIsolationCommitButton._supportsSpacingProps = true\nexport default IsolationCommitButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,MAAM,MAAuB,sCAAsC;AAC1E,SAASC,KAAK,QAAQ,mBAAmB;AAIzC,SAASC,qBAAqBA,CAACC,KAAY,EAAE;EAC3C,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACO,SAAS;EAE/C,MAAM;MAAEC,SAAS;MAAEC,QAAQ;MAAEC;IAAc,CAAC,GAAGL,KAAK;IAAdM,IAAI,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA;EAEpD,MAAMC,OAAO,GAAGJ,IAAI,IAAID,QAAQ,IAAIH,YAAY,CAACS,gBAAgB;EAEjE,MAAM;IAAEC,YAAY;IAAEX,KAAK,EAAEY;EAAiB,CAAC,GAC7CnB,UAAU,CAACG,WAAW,CAAC,IAAI,CAAC,CAAC;EAC/B,MAAM;IAAEiB;EAAQ,CAAC,GAAGD,gBAAgB,IAAI,CAAC,CAAC;EAE1C,MAAME,cAAc,GAAGtB,WAAW,CAAC,MAAM;IACvC,IAAIqB,OAAO,EAAE;MACXF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAAC;IAClB;EACF,CAAC,EAAE,CAACA,YAAY,EAAEE,OAAO,CAAC,CAAC;EAE3B,OACEtB,KAAA,CAAAwB,aAAA,CAAClB,MAAM,EAAAmB,QAAA;IACLC,OAAO,EAAC,WAAW;IACnBd,SAAS,EAAET,UAAU,CAAC,0BAA0B,EAAES,SAAS,CAAE;IAC7De,IAAI,EAAEpB,KAAM;IACZqB,OAAO,
|
|
1
|
+
{"version":3,"file":"IsolationCommitButton.js","names":["React","useCallback","useContext","classnames","useTranslation","DataContext","Button","check","IsolationCommitButton","props","translations","Isolation","className","children","text","rest","_objectWithoutProperties","_excluded","content","commitButtonText","handleSubmit","dataContextProps","isolate","onClickHandler","createElement","_extends","variant","icon","icon_position","onClick","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationCommitButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport { useTranslation } from '../../hooks'\nimport DataContext from '../../DataContext/Context'\nimport Button, { ButtonProps } from '../../../../components/button/Button'\nimport { check } from '../../../../icons'\n\nexport type Props = ButtonProps\n\nfunction IsolationCommitButton(props: Props) {\n const translations = useTranslation().Isolation\n\n const { className, children, text, ...rest } = props\n\n const content = text || children || translations.commitButtonText\n\n const { handleSubmit, props: dataContextProps } =\n useContext(DataContext) || {}\n const { isolate } = dataContextProps || {}\n\n const onClickHandler = useCallback(() => {\n if (isolate) {\n handleSubmit?.()\n }\n }, [handleSubmit, isolate])\n\n return (\n <Button\n variant=\"secondary\"\n className={classnames('dnb-forms-isolate-button', className)}\n icon={check}\n icon_position=\"left\"\n onClick={onClickHandler}\n {...rest}\n >\n {content}\n </Button>\n )\n}\n\nIsolationCommitButton._supportsSpacingProps = true\nexport default IsolationCommitButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,MAAM,MAAuB,sCAAsC;AAC1E,SAASC,KAAK,QAAQ,mBAAmB;AAIzC,SAASC,qBAAqBA,CAACC,KAAY,EAAE;EAC3C,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACO,SAAS;EAE/C,MAAM;MAAEC,SAAS;MAAEC,QAAQ;MAAEC;IAAc,CAAC,GAAGL,KAAK;IAAdM,IAAI,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA;EAEpD,MAAMC,OAAO,GAAGJ,IAAI,IAAID,QAAQ,IAAIH,YAAY,CAACS,gBAAgB;EAEjE,MAAM;IAAEC,YAAY;IAAEX,KAAK,EAAEY;EAAiB,CAAC,GAC7CnB,UAAU,CAACG,WAAW,CAAC,IAAI,CAAC,CAAC;EAC/B,MAAM;IAAEiB;EAAQ,CAAC,GAAGD,gBAAgB,IAAI,CAAC,CAAC;EAE1C,MAAME,cAAc,GAAGtB,WAAW,CAAC,MAAM;IACvC,IAAIqB,OAAO,EAAE;MACXF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAAC;IAClB;EACF,CAAC,EAAE,CAACA,YAAY,EAAEE,OAAO,CAAC,CAAC;EAE3B,OACEtB,KAAA,CAAAwB,aAAA,CAAClB,MAAM,EAAAmB,QAAA;IACLC,OAAO,EAAC,WAAW;IACnBd,SAAS,EAAET,UAAU,CAAC,0BAA0B,EAAES,SAAS,CAAE;IAC7De,IAAI,EAAEpB,KAAM;IACZqB,aAAa,EAAC,MAAM;IACpBC,OAAO,EAAEN;EAAe,GACpBR,IAAI,GAEPG,OACK,CAAC;AAEb;AAEAV,qBAAqB,CAACsB,qBAAqB,GAAG,IAAI;AAClD,eAAetB,qBAAqB"}
|
|
@@ -3,6 +3,16 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
4
|
import { ProviderEvents, ProviderProperties } from '../../DataContext/Provider/ProviderDocs';
|
|
5
5
|
export const IsolationProperties = _objectSpread(_objectSpread({
|
|
6
|
+
path: {
|
|
7
|
+
doc: 'JSON Pointer to define the object key for all the generated nested field data.',
|
|
8
|
+
type: 'string',
|
|
9
|
+
status: 'optional'
|
|
10
|
+
},
|
|
11
|
+
transformOnCommit: {
|
|
12
|
+
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).',
|
|
13
|
+
type: 'function',
|
|
14
|
+
status: 'optional'
|
|
15
|
+
},
|
|
6
16
|
commitHandleRef: {
|
|
7
17
|
doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',
|
|
8
18
|
type: 'React.Ref',
|
|
@@ -18,7 +28,7 @@ export const IsolationProperties = _objectSpread(_objectSpread({
|
|
|
18
28
|
});
|
|
19
29
|
export const IsolationEvents = _objectSpread(_objectSpread({
|
|
20
30
|
onCommit: {
|
|
21
|
-
doc: 'Will be called on a nested form context commit – if validation has passed.',
|
|
31
|
+
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 }`.',
|
|
22
32
|
type: 'function',
|
|
23
33
|
status: 'optional'
|
|
24
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","
|
|
1
|
+
{"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","path","doc","type","status","transformOnCommit","commitHandleRef","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","filterSubmitData","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 filterSubmitData: 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;EACrBS,wBAAwB,EAAEC,SAAS;EACnCC,kBAAkB,EAAED,SAAS;EAC7BE,iBAAiB,EAAEF,SAAS;EAC5BG,gBAAgB,EAAEH,SAAS;EAC3BI,gBAAgB,EAAEJ,SAAS;EAC3BK,cAAc,EAAEL;AAAS,EAC1B;AAED,OAAO,MAAMM,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,EAAER,SAAS;EACnBS,eAAe,EAAET,SAAS;EAC1BU,gBAAgB,EAAEV;AAAS,EAC5B"}
|
|
@@ -13,7 +13,7 @@ import SectionContainerProvider from './containers/SectionContainerProvider';
|
|
|
13
13
|
import ViewContainer from './ViewContainer';
|
|
14
14
|
import EditContainer from './EditContainer';
|
|
15
15
|
function SectionComponent(props) {
|
|
16
|
-
var _nestedProps$overwrit;
|
|
16
|
+
var _path$startsWith, _nestedProps$overwrit;
|
|
17
17
|
const {
|
|
18
18
|
path,
|
|
19
19
|
overwriteProps,
|
|
@@ -26,7 +26,7 @@ function SectionComponent(props) {
|
|
|
26
26
|
errorPrioritization = ['contextSchema'],
|
|
27
27
|
children
|
|
28
28
|
} = props;
|
|
29
|
-
if (path && !path.startsWith('/')) {
|
|
29
|
+
if (path && !((_path$startsWith = path.startsWith) !== null && _path$startsWith !== void 0 && _path$startsWith.call(path, '/'))) {
|
|
30
30
|
throw new Error(`path="${path}" must start with a slash`);
|
|
31
31
|
}
|
|
32
32
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Section.js","names":["React","useCallback","useContext","useMemo","SectionContext","DataContext","Provider","FieldPropsProvider","SectionContainerProvider","ViewContainer","EditContainer","SectionComponent","props","_nestedProps$overwrit","path","overwriteProps","translations","required","data","defaultData","containerMode","onChange","errorPrioritization","children","startsWith","Error","hasContext","addOnChangeHandler","nestedPath","nestedProps","handleChange","args","identifier","fieldProps","undefined","createElement","value","_extends","_objectSpread","substring","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Section/Section.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport SectionContext, { SectionContextState } from './SectionContext'\nimport DataContext from '../../DataContext/Context'\nimport Provider from '../../DataContext/Provider/Provider'\nimport FieldPropsProvider from '../FieldProps'\nimport SectionContainerProvider from './containers/SectionContainerProvider'\nimport ViewContainer from './ViewContainer'\nimport EditContainer from './EditContainer'\n\nimport type { Props as DataContextProps } from '../../DataContext/Provider'\nimport type { ContainerMode } from './containers/SectionContainer'\nimport type {\n FieldBlockProps,\n Path,\n FieldProps,\n OnChange,\n} from '../../types'\n\nexport type OverwritePropsDefaults = {\n [key: Path]: (FieldProps & FieldBlockProps) | OverwritePropsDefaults\n}\nexport type SectionProps<overwriteProps = OverwritePropsDefaults> = {\n /**\n * Path to the section.\n * When defined, fields inside the section will get this path as a prefix of their own path.\n */\n path?: Path\n\n /**\n * Overwrite field props for the section.\n */\n overwriteProps?: overwriteProps | OverwritePropsDefaults\n\n /**\n * Makes all fields inside it required.\n */\n required?: boolean\n\n /**\n * Defines the container mode. Can be `view` or `edit`.\n * Defaults to `view`.\n */\n containerMode?: ContainerMode\n\n /**\n * Only for internal use and undocumented for now.\n * Prioritize error techniques for the section.\n * Can be `fieldSchema`, `sectionSchema` or `contextSchema.\n */\n errorPrioritization?: SectionContextState['errorPrioritization']\n} & Pick<\n DataContextProps<unknown>,\n 'data' | 'defaultData' | 'onChange' | 'translations'\n>\n\nexport type LocalProps = SectionProps & {\n children: React.ReactNode\n}\n\nfunction SectionComponent(props: LocalProps) {\n const {\n path,\n overwriteProps,\n translations,\n required,\n data,\n defaultData,\n containerMode = 'view',\n onChange,\n errorPrioritization = ['contextSchema'],\n children,\n } = props\n\n if (path && !path.startsWith('/')) {\n throw new Error(`path=\"${path}\" must start with a slash`)\n }\n\n const { hasContext, addOnChangeHandler } = useContext(DataContext)\n\n const { path: nestedPath, props: nestedProps } =\n useContext(SectionContext) || {}\n\n const handleChange = useCallback<OnChange<unknown>>(\n (...args) => onChange?.(...args),\n [onChange]\n )\n addOnChangeHandler?.(handleChange)\n\n const identifier = useMemo(() => {\n return `${nestedPath && nestedPath !== '/' ? nestedPath : ''}${\n path || ''\n }`\n }, [path, nestedPath])\n const fieldProps = required ? { required: true } : undefined\n\n if (!hasContext) {\n return (\n <Provider data={data} defaultData={defaultData}>\n <SectionComponent {...props} />\n </Provider>\n )\n }\n\n return (\n <SectionContext.Provider\n value={{\n path: identifier,\n errorPrioritization,\n props,\n }}\n >\n <SectionContainerProvider containerMode={containerMode}>\n <FieldPropsProvider\n overwriteProps={{\n ...overwriteProps,\n ...(nestedProps?.overwriteProps?.[\n path.substring(1)\n ] as OverwritePropsDefaults),\n }}\n translations={translations}\n {...fieldProps}\n >\n {children}\n </FieldPropsProvider>\n </SectionContainerProvider>\n </SectionContext.Provider>\n )\n}\n\nSectionComponent.ViewContainer = ViewContainer\nSectionComponent.EditContainer = EditContainer\n\nSectionComponent._supportsSpacingProps = undefined\nexport default SectionComponent\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC/D,OAAOC,cAAc,MAA+B,kBAAkB;AACtE,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,QAAQ,MAAM,qCAAqC;AAC1D,OAAOC,kBAAkB,MAAM,eAAe;AAC9C,OAAOC,wBAAwB,MAAM,uCAAuC;AAC5E,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,OAAOC,aAAa,MAAM,iBAAiB;AAoD3C,SAASC,gBAAgBA,CAACC,KAAiB,EAAE;EAAA,IAAAC,qBAAA;EAC3C,MAAM;IACJC,IAAI;IACJC,cAAc;IACdC,YAAY;IACZC,QAAQ;IACRC,IAAI;IACJC,WAAW;IACXC,aAAa,GAAG,MAAM;IACtBC,QAAQ;IACRC,mBAAmB,GAAG,CAAC,eAAe,CAAC;IACvCC;EACF,CAAC,
|
|
1
|
+
{"version":3,"file":"Section.js","names":["React","useCallback","useContext","useMemo","SectionContext","DataContext","Provider","FieldPropsProvider","SectionContainerProvider","ViewContainer","EditContainer","SectionComponent","props","_path$startsWith","_nestedProps$overwrit","path","overwriteProps","translations","required","data","defaultData","containerMode","onChange","errorPrioritization","children","startsWith","call","Error","hasContext","addOnChangeHandler","nestedPath","nestedProps","handleChange","args","identifier","fieldProps","undefined","createElement","value","_extends","_objectSpread","substring","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Section/Section.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport SectionContext, { SectionContextState } from './SectionContext'\nimport DataContext from '../../DataContext/Context'\nimport Provider from '../../DataContext/Provider/Provider'\nimport FieldPropsProvider from '../FieldProps'\nimport SectionContainerProvider from './containers/SectionContainerProvider'\nimport ViewContainer from './ViewContainer'\nimport EditContainer from './EditContainer'\n\nimport type { Props as DataContextProps } from '../../DataContext/Provider'\nimport type { ContainerMode } from './containers/SectionContainer'\nimport type {\n FieldBlockProps,\n Path,\n FieldProps,\n OnChange,\n} from '../../types'\n\nexport type OverwritePropsDefaults = {\n [key: Path]: (FieldProps & FieldBlockProps) | OverwritePropsDefaults\n}\nexport type SectionProps<overwriteProps = OverwritePropsDefaults> = {\n /**\n * Path to the section.\n * When defined, fields inside the section will get this path as a prefix of their own path.\n */\n path?: Path\n\n /**\n * Overwrite field props for the section.\n */\n overwriteProps?: overwriteProps | OverwritePropsDefaults\n\n /**\n * Makes all fields inside it required.\n */\n required?: boolean\n\n /**\n * Defines the container mode. Can be `view` or `edit`.\n * Defaults to `view`.\n */\n containerMode?: ContainerMode\n\n /**\n * Only for internal use and undocumented for now.\n * Prioritize error techniques for the section.\n * Can be `fieldSchema`, `sectionSchema` or `contextSchema.\n */\n errorPrioritization?: SectionContextState['errorPrioritization']\n} & Pick<\n DataContextProps<unknown>,\n 'data' | 'defaultData' | 'onChange' | 'translations'\n>\n\nexport type LocalProps = SectionProps & {\n children: React.ReactNode\n}\n\nfunction SectionComponent(props: LocalProps) {\n const {\n path,\n overwriteProps,\n translations,\n required,\n data,\n defaultData,\n containerMode = 'view',\n onChange,\n errorPrioritization = ['contextSchema'],\n children,\n } = props\n\n if (path && !path.startsWith?.('/')) {\n throw new Error(`path=\"${path}\" must start with a slash`)\n }\n\n const { hasContext, addOnChangeHandler } = useContext(DataContext)\n\n const { path: nestedPath, props: nestedProps } =\n useContext(SectionContext) || {}\n\n const handleChange = useCallback<OnChange<unknown>>(\n (...args) => onChange?.(...args),\n [onChange]\n )\n addOnChangeHandler?.(handleChange)\n\n const identifier = useMemo(() => {\n return `${nestedPath && nestedPath !== '/' ? nestedPath : ''}${\n path || ''\n }`\n }, [path, nestedPath])\n const fieldProps = required ? { required: true } : undefined\n\n if (!hasContext) {\n return (\n <Provider data={data} defaultData={defaultData}>\n <SectionComponent {...props} />\n </Provider>\n )\n }\n\n return (\n <SectionContext.Provider\n value={{\n path: identifier,\n errorPrioritization,\n props,\n }}\n >\n <SectionContainerProvider containerMode={containerMode}>\n <FieldPropsProvider\n overwriteProps={{\n ...overwriteProps,\n ...(nestedProps?.overwriteProps?.[\n path.substring(1)\n ] as OverwritePropsDefaults),\n }}\n translations={translations}\n {...fieldProps}\n >\n {children}\n </FieldPropsProvider>\n </SectionContainerProvider>\n </SectionContext.Provider>\n )\n}\n\nSectionComponent.ViewContainer = ViewContainer\nSectionComponent.EditContainer = EditContainer\n\nSectionComponent._supportsSpacingProps = undefined\nexport default SectionComponent\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function clearData(id: string): void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createSharedState } from '../../../../shared/helpers/useSharedState';
|
|
2
|
+
export default function clearData(id) {
|
|
3
|
+
const sharedAttachments = createSharedState(id + '-attachments');
|
|
4
|
+
sharedAttachments.set({});
|
|
5
|
+
const sharedData = createSharedState(id);
|
|
6
|
+
sharedData.update({
|
|
7
|
+
clearForm: true
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=clearData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clearData.js","names":["createSharedState","clearData","id","sharedAttachments","set","sharedData","update","clearForm"],"sources":["../../../../../../src/extensions/forms/Form/data-context/clearData.ts"],"sourcesContent":["import { createSharedState } from '../../../../shared/helpers/useSharedState'\n\nexport default function clearData(id: string) {\n const sharedAttachments = createSharedState(id + '-attachments')\n sharedAttachments.set({})\n\n const sharedData = createSharedState(id)\n sharedData.update({ clearForm: true })\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,2CAA2C;AAE7E,eAAe,SAASC,SAASA,CAACC,EAAU,EAAE;EAC5C,MAAMC,iBAAiB,GAAGH,iBAAiB,CAACE,EAAE,GAAG,cAAc,CAAC;EAChEC,iBAAiB,CAACC,GAAG,CAAC,CAAC,CAAC,CAAC;EAEzB,MAAMC,UAAU,GAAGL,iBAAiB,CAACE,EAAE,CAAC;EACxCG,UAAU,CAACC,MAAM,CAAC;IAAEC,SAAS,EAAE;EAAK,CAAC,CAAC;AACxC"}
|
|
@@ -13,6 +13,7 @@ export { default as FieldProps } from './FieldProps';
|
|
|
13
13
|
export { default as useData } from './data-context/useData';
|
|
14
14
|
export { default as setData } from './data-context/setData';
|
|
15
15
|
export { default as getData } from './data-context/getData';
|
|
16
|
+
export { default as clearData } from './data-context/clearData';
|
|
16
17
|
export { default as useError } from './data-context/useError';
|
|
17
18
|
export { default as useTranslation } from '../hooks/useTranslation';
|
|
18
19
|
/**
|
|
@@ -13,6 +13,7 @@ export { default as FieldProps } from './FieldProps';
|
|
|
13
13
|
export { default as useData } from './data-context/useData';
|
|
14
14
|
export { default as setData } from './data-context/setData';
|
|
15
15
|
export { default as getData } from './data-context/getData';
|
|
16
|
+
export { default as clearData } from './data-context/clearData';
|
|
16
17
|
export { default as useError } from './data-context/useError';
|
|
17
18
|
export { default as useTranslation } from '../hooks/useTranslation';
|
|
18
19
|
export { default as useLocale } from '../hooks/useTranslation';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","Handler","Element","Appearance","SubmitButton","SubmitIndicator","ButtonRow","MainHeading","SubHeading","Visibility","Section","Isolation","FieldProps","useData","setData","getData","useError","useTranslation","useLocale"],"sources":["../../../../../src/extensions/forms/Form/index.ts"],"sourcesContent":["export { default as Handler } from './Handler'\nexport { default as Element } from './Element'\nexport { default as Appearance } from './Appearance'\nexport { default as SubmitButton } from './SubmitButton'\nexport { default as SubmitIndicator } from './SubmitIndicator'\nexport { default as ButtonRow } from './ButtonRow'\nexport { default as MainHeading } from './MainHeading'\nexport { default as SubHeading } from './SubHeading'\nexport { default as Visibility } from './Visibility'\nexport { default as Section } from './Section'\nexport { default as Isolation } from './Isolation'\nexport { default as FieldProps } from './FieldProps'\nexport { default as useData } from './data-context/useData'\nexport { default as setData } from './data-context/setData'\nexport { default as getData } from './data-context/getData'\nexport { default as useError } from './data-context/useError'\nexport { default as useTranslation } from '../hooks/useTranslation'\n\n/**\n * Can be removed in v11\n * @deprecated Use `useTranslation` instead\n */\nexport { default as useLocale } from '../hooks/useTranslation'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,WAAW;AAC9C,SAASD,OAAO,IAAIE,OAAO,QAAQ,WAAW;AAC9C,SAASF,OAAO,IAAIG,UAAU,QAAQ,cAAc;AACpD,SAASH,OAAO,IAAII,YAAY,QAAQ,gBAAgB;AACxD,SAASJ,OAAO,IAAIK,eAAe,QAAQ,mBAAmB;AAC9D,SAASL,OAAO,IAAIM,SAAS,QAAQ,aAAa;AAClD,SAASN,OAAO,IAAIO,WAAW,QAAQ,eAAe;AACtD,SAASP,OAAO,IAAIQ,UAAU,QAAQ,cAAc;AACpD,SAASR,OAAO,IAAIS,UAAU,QAAQ,cAAc;AACpD,SAAST,OAAO,IAAIU,OAAO,QAAQ,WAAW;AAC9C,SAASV,OAAO,IAAIW,SAAS,QAAQ,aAAa;AAClD,SAASX,OAAO,IAAIY,UAAU,QAAQ,cAAc;AACpD,SAASZ,OAAO,IAAIa,OAAO,QAAQ,wBAAwB;AAC3D,SAASb,OAAO,IAAIc,OAAO,QAAQ,wBAAwB;AAC3D,SAASd,OAAO,IAAIe,OAAO,QAAQ,wBAAwB;AAC3D,SAASf,OAAO,IAAIgB,QAAQ,QAAQ,yBAAyB;AAC7D,
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","Handler","Element","Appearance","SubmitButton","SubmitIndicator","ButtonRow","MainHeading","SubHeading","Visibility","Section","Isolation","FieldProps","useData","setData","getData","clearData","useError","useTranslation","useLocale"],"sources":["../../../../../src/extensions/forms/Form/index.ts"],"sourcesContent":["export { default as Handler } from './Handler'\nexport { default as Element } from './Element'\nexport { default as Appearance } from './Appearance'\nexport { default as SubmitButton } from './SubmitButton'\nexport { default as SubmitIndicator } from './SubmitIndicator'\nexport { default as ButtonRow } from './ButtonRow'\nexport { default as MainHeading } from './MainHeading'\nexport { default as SubHeading } from './SubHeading'\nexport { default as Visibility } from './Visibility'\nexport { default as Section } from './Section'\nexport { default as Isolation } from './Isolation'\nexport { default as FieldProps } from './FieldProps'\nexport { default as useData } from './data-context/useData'\nexport { default as setData } from './data-context/setData'\nexport { default as getData } from './data-context/getData'\nexport { default as clearData } from './data-context/clearData'\nexport { default as useError } from './data-context/useError'\nexport { default as useTranslation } from '../hooks/useTranslation'\n\n/**\n * Can be removed in v11\n * @deprecated Use `useTranslation` instead\n */\nexport { default as useLocale } from '../hooks/useTranslation'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,WAAW;AAC9C,SAASD,OAAO,IAAIE,OAAO,QAAQ,WAAW;AAC9C,SAASF,OAAO,IAAIG,UAAU,QAAQ,cAAc;AACpD,SAASH,OAAO,IAAII,YAAY,QAAQ,gBAAgB;AACxD,SAASJ,OAAO,IAAIK,eAAe,QAAQ,mBAAmB;AAC9D,SAASL,OAAO,IAAIM,SAAS,QAAQ,aAAa;AAClD,SAASN,OAAO,IAAIO,WAAW,QAAQ,eAAe;AACtD,SAASP,OAAO,IAAIQ,UAAU,QAAQ,cAAc;AACpD,SAASR,OAAO,IAAIS,UAAU,QAAQ,cAAc;AACpD,SAAST,OAAO,IAAIU,OAAO,QAAQ,WAAW;AAC9C,SAASV,OAAO,IAAIW,SAAS,QAAQ,aAAa;AAClD,SAASX,OAAO,IAAIY,UAAU,QAAQ,cAAc;AACpD,SAASZ,OAAO,IAAIa,OAAO,QAAQ,wBAAwB;AAC3D,SAASb,OAAO,IAAIc,OAAO,QAAQ,wBAAwB;AAC3D,SAASd,OAAO,IAAIe,OAAO,QAAQ,wBAAwB;AAC3D,SAASf,OAAO,IAAIgB,SAAS,QAAQ,0BAA0B;AAC/D,SAAShB,OAAO,IAAIiB,QAAQ,QAAQ,yBAAyB;AAC7D,SAASjB,OAAO,IAAIkB,cAAc,QAAQ,yBAAyB;AAMnE,SAASlB,OAAO,IAAImB,SAAS,QAAQ,yBAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Array.js","names":["React","useMemo","useRef","useEffect","useReducer","createRef","useContext","Fragment","classnames","pointer","useFieldProps","makeUniqueId","Flex","pickSpacingProps","pickFlexContainerProps","IterateElementContext","SummaryListContext","ValueBlockContext","FieldBoundaryProvider","structuredClone","useDataValue","ArrayComponent","props","_props$value","salt","forceUpdate","summaryListContext","valueBlockContext","getValue","preparedProps","path","countPath","countPathLimit","Infinity","countPathTransform","arrayValue","countValue","parseFloat","length","newValue","i","l","value","push","index","_objectSpread","withoutFlex","emptyValue","placeholder","handleChange","onChange","children","idsRef","isNewRef","modesRef","valueWhileClosingRef","valueCountRef","containerRef","hadPushRef","innerRefs","omitFlex","current","elementData","_ref","map","_valueCountRef$curren","id","hasNewItems","isNew","containerMode","switchContainerMode","mode","_isNewRef$current","newArrayValue","set","handlePush","element","handleRemove","keepItems","splice","fulfillRemove","_modesRef$current","_isNewRef$current2","findIndex","indexOf","restoreOriginalValue","last","flexProps","className","innerRef","WrapperElement","Stack","createElement","elementProps","elementRef","renderChildren","elementChild","contextValue","content","Array","isArray","child","Provider","key","Item","tabIndex","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/Array.tsx"],"sourcesContent":["import React, {\n useMemo,\n useRef,\n useEffect,\n useReducer,\n createRef,\n useContext,\n Fragment,\n} from 'react'\nimport classnames from 'classnames'\nimport pointer from 'json-pointer'\nimport { useFieldProps } from '../../hooks'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport { Flex } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport {\n BasicProps as FlexContainerProps,\n Props as FlexContainerAllProps,\n pickFlexContainerProps,\n} from '../../../../components/flex/Container'\nimport IterateElementContext, {\n IterateElementContextState,\n} from '../IterateElementContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\nimport ValueBlockContext from '../../ValueBlock/ValueBlockContext'\nimport FieldBoundaryProvider from '../../DataContext/FieldBoundary/FieldBoundaryProvider'\n\nimport type { ContainerMode, ElementChild, Props, Value } from './types'\nimport type { Identifier, 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'\nimport useDataValue from '../../hooks/useDataValue'\n\nexport type * from './types'\n\nfunction ArrayComponent(props: Props) {\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n\n const summaryListContext = useContext(SummaryListContext)\n const valueBlockContext = useContext(ValueBlockContext)\n\n const { getValue } = useDataValue()\n const preparedProps = useMemo(() => {\n const {\n path,\n countPath,\n countPathLimit = Infinity,\n countPathTransform,\n } = props\n\n if (countPath) {\n const arrayValue = getValue(path)\n let countValue = parseFloat(getValue(countPath))\n if (!(countValue >= 0)) {\n countValue = 0\n }\n if (countValue > countPathLimit) {\n countValue = countPathLimit\n }\n if (arrayValue?.length !== countValue) {\n const newValue = []\n for (let i = 0, l = countValue; i < l; i++) {\n const value = arrayValue?.[i]\n newValue.push(countPathTransform?.({ value, index: i }))\n }\n\n return {\n ...props,\n value: newValue,\n }\n }\n }\n\n return props\n }, [getValue, props])\n\n const {\n path,\n value: arrayValue,\n withoutFlex,\n emptyValue,\n placeholder,\n handleChange,\n onChange,\n children,\n } = useFieldProps<Value, Props>(preparedProps)\n\n const idsRef = useRef<Array<Identifier>>([])\n const isNewRef = useRef<Record<string, boolean>>({})\n const modesRef = useRef<Record<Identifier, ContainerMode>>({})\n const valueWhileClosingRef = useRef<Array<unknown>>()\n const valueCountRef = useRef(arrayValue)\n const containerRef = useRef<HTMLDivElement>()\n const hadPushRef = useRef<boolean>()\n const innerRefs = useRef<\n Record<string, React.RefObject<HTMLDivElement>>\n >({})\n\n const omitFlex = withoutFlex ?? (summaryListContext || valueBlockContext)\n\n useEffect(() => {\n // Update inside the useEffect, to support React.StrictMode\n valueCountRef.current = arrayValue || []\n }, [arrayValue])\n\n const elementData = useMemo(() => {\n return ((valueWhileClosingRef.current || arrayValue) ?? []).map(\n (value, index) => {\n const id = idsRef.current[index] || makeUniqueId()\n\n const hasNewItems =\n arrayValue.length > valueCountRef.current?.length\n\n if (!idsRef.current[index]) {\n isNewRef.current[id] = hasNewItems\n idsRef.current.push(id)\n }\n\n const isNew = isNewRef.current[id] || false\n if (!modesRef.current[id]) {\n modesRef.current[id] = isNew ? 'edit' : 'view'\n }\n\n return {\n id,\n path,\n value,\n index,\n arrayValue,\n containerRef,\n isNew,\n containerMode: modesRef.current[id],\n switchContainerMode: (mode: ContainerMode) => {\n modesRef.current[id] = mode\n delete isNewRef.current?.[id]\n forceUpdate()\n },\n handleChange: (path: Path, value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n\n // Make sure we have a new object reference,\n // else two new objects will be the same\n newArrayValue[index] = { ...newArrayValue[index] }\n\n pointer.set(newArrayValue, path, value)\n handleChange(newArrayValue)\n },\n handlePush: (element: unknown) => {\n hadPushRef.current = true\n handleChange([...(arrayValue ?? []), element])\n },\n handleRemove: ({ keepItems = false } = {}) => {\n if (keepItems) {\n // Add a backup as the array value while animating\n valueWhileClosingRef.current = arrayValue\n }\n\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue.splice(index, 1)\n handleChange(newArrayValue)\n },\n\n // - Called after animation end\n fulfillRemove: () => {\n valueWhileClosingRef.current = null\n delete modesRef.current?.[id]\n delete isNewRef.current?.[id]\n const findIndex = idsRef.current.indexOf(id)\n idsRef.current.splice(findIndex, 1)\n forceUpdate()\n },\n\n // - Called when cancel button press\n restoreOriginalValue: (value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue[index] = value\n handleChange(newArrayValue)\n },\n } as IterateElementContextState\n }\n )\n\n // In order to update \"valueWhileClosingRef\" we need to have \"salt\" in the deps array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [salt, arrayValue, path, handleChange])\n\n // - Call the onChange callback when a new element is added without calling \"handlePush\"\n useMemo(() => {\n const last = elementData?.[elementData.length - 1]\n if (last?.isNew && !hadPushRef.current) {\n onChange?.(arrayValue)\n } else {\n hadPushRef.current = false\n }\n }, [arrayValue, elementData, onChange])\n\n const flexProps: FlexContainerProps & {\n innerRef: FlexContainerAllProps['innerRef']\n } = {\n className: classnames(\n 'dnb-forms-iterate',\n 'dnb-forms-section',\n props?.className\n ),\n ...pickFlexContainerProps(props as FlexContainerProps),\n ...pickSpacingProps(props),\n innerRef: containerRef,\n }\n\n const WrapperElement = omitFlex ? Fragment : Flex.Stack\n\n return (\n <WrapperElement {...(omitFlex ? null : flexProps)}>\n {arrayValue === emptyValue || props?.value?.length === 0\n ? placeholder\n : elementData.map((elementProps) => {\n const { id, value, index } = elementProps\n const elementRef = (innerRefs.current[id] =\n innerRefs.current[id] || createRef<HTMLDivElement>())\n\n const renderChildren = (elementChild: ElementChild) => {\n return typeof elementChild === 'function'\n ? elementChild(value, index)\n : elementChild\n }\n\n const contextValue = {\n ...elementProps,\n elementRef,\n }\n\n const content = Array.isArray(children)\n ? children.map((child) => renderChildren(child))\n : renderChildren(children)\n\n if (omitFlex) {\n return (\n <IterateElementContext.Provider\n key={`element-${id}`}\n value={contextValue}\n >\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateElementContext.Provider>\n )\n }\n\n return (\n <Flex.Item\n className=\"dnb-forms-iterate__element\"\n tabIndex={-1}\n innerRef={elementRef}\n key={`element-${id}`}\n >\n <IterateElementContext.Provider value={contextValue}>\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateElementContext.Provider>\n </Flex.Item>\n )\n })}\n </WrapperElement>\n )\n}\n\nArrayComponent._supportsSpacingProps = true\nexport default ArrayComponent\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Array.js","names":["React","useMemo","useRef","useEffect","useReducer","createRef","useContext","Fragment","classnames","pointer","useFieldProps","makeUniqueId","Flex","pickSpacingProps","pickFlexContainerProps","IterateElementContext","SummaryListContext","ValueBlockContext","FieldBoundaryProvider","structuredClone","useDataValue","ArrayComponent","props","_props$value","salt","forceUpdate","summaryListContext","valueBlockContext","getValue","preparedProps","path","countPath","countPathLimit","Infinity","countPathTransform","arrayValue","countValue","parseFloat","length","newValue","i","l","value","push","index","_objectSpread","withoutFlex","emptyValue","placeholder","handleChange","onChange","children","idsRef","isNewRef","modesRef","valueWhileClosingRef","valueCountRef","containerRef","hadPushRef","innerRefs","omitFlex","current","elementData","_ref","map","_valueCountRef$curren","id","hasNewItems","isNew","containerMode","switchContainerMode","mode","_isNewRef$current","newArrayValue","set","handlePush","element","handleRemove","keepItems","splice","fulfillRemove","_modesRef$current","_isNewRef$current2","findIndex","indexOf","restoreOriginalValue","last","flexProps","className","innerRef","WrapperElement","Stack","createElement","elementProps","elementRef","renderChildren","elementChild","contextValue","content","Array","isArray","child","Provider","key","Item","tabIndex","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/Array.tsx"],"sourcesContent":["import React, {\n useMemo,\n useRef,\n useEffect,\n useReducer,\n createRef,\n useContext,\n Fragment,\n} from 'react'\nimport classnames from 'classnames'\nimport pointer from 'json-pointer'\nimport { useFieldProps } from '../../hooks'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport { Flex } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport {\n BasicProps as FlexContainerProps,\n Props as FlexContainerAllProps,\n pickFlexContainerProps,\n} from '../../../../components/flex/Container'\nimport IterateElementContext, {\n IterateElementContextState,\n} from '../IterateElementContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\nimport ValueBlockContext from '../../ValueBlock/ValueBlockContext'\nimport FieldBoundaryProvider from '../../DataContext/FieldBoundary/FieldBoundaryProvider'\n\nimport type { ContainerMode, ElementChild, Props } from './types'\nimport type { Identifier, 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'\nimport useDataValue from '../../hooks/useDataValue'\n\nexport type * from './types'\n\nfunction ArrayComponent(props: Props) {\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n\n const summaryListContext = useContext(SummaryListContext)\n const valueBlockContext = useContext(ValueBlockContext)\n\n const { getValue } = useDataValue()\n const preparedProps = useMemo(() => {\n const {\n path,\n countPath,\n countPathLimit = Infinity,\n countPathTransform,\n } = props\n\n if (countPath) {\n const arrayValue = getValue(path)\n let countValue = parseFloat(getValue(countPath))\n if (!(countValue >= 0)) {\n countValue = 0\n }\n if (countValue > countPathLimit) {\n countValue = countPathLimit\n }\n if (arrayValue?.length !== countValue) {\n const newValue = []\n for (let i = 0, l = countValue; i < l; i++) {\n const value = arrayValue?.[i]\n newValue.push(countPathTransform?.({ value, index: i }))\n }\n\n return {\n ...props,\n value: newValue,\n }\n }\n }\n\n return props\n }, [getValue, props])\n\n const {\n path,\n value: arrayValue,\n withoutFlex,\n emptyValue,\n placeholder,\n handleChange,\n onChange,\n children,\n } = useFieldProps(preparedProps)\n\n const idsRef = useRef<Array<Identifier>>([])\n const isNewRef = useRef<Record<string, boolean>>({})\n const modesRef = useRef<Record<Identifier, ContainerMode>>({})\n const valueWhileClosingRef = useRef<Array<unknown>>()\n const valueCountRef = useRef(arrayValue)\n const containerRef = useRef<HTMLDivElement>()\n const hadPushRef = useRef<boolean>()\n const innerRefs = useRef<\n Record<string, React.RefObject<HTMLDivElement>>\n >({})\n\n const omitFlex = withoutFlex ?? (summaryListContext || valueBlockContext)\n\n useEffect(() => {\n // Update inside the useEffect, to support React.StrictMode\n valueCountRef.current = arrayValue || []\n }, [arrayValue])\n\n const elementData = useMemo(() => {\n return ((valueWhileClosingRef.current || arrayValue) ?? []).map(\n (value, index) => {\n const id = idsRef.current[index] || makeUniqueId()\n\n const hasNewItems =\n arrayValue.length > valueCountRef.current?.length\n\n if (!idsRef.current[index]) {\n isNewRef.current[id] = hasNewItems\n idsRef.current.push(id)\n }\n\n const isNew = isNewRef.current[id] || false\n if (!modesRef.current[id]) {\n modesRef.current[id] = isNew ? 'edit' : 'view'\n }\n\n return {\n id,\n path,\n value,\n index,\n arrayValue,\n containerRef,\n isNew,\n containerMode: modesRef.current[id],\n switchContainerMode: (mode: ContainerMode) => {\n modesRef.current[id] = mode\n delete isNewRef.current?.[id]\n forceUpdate()\n },\n handleChange: (path: Path, value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n\n // Make sure we have a new object reference,\n // else two new objects will be the same\n newArrayValue[index] = { ...newArrayValue[index] }\n\n pointer.set(newArrayValue, path, value)\n handleChange(newArrayValue)\n },\n handlePush: (element: unknown) => {\n hadPushRef.current = true\n handleChange([...(arrayValue ?? []), element])\n },\n handleRemove: ({ keepItems = false } = {}) => {\n if (keepItems) {\n // Add a backup as the array value while animating\n valueWhileClosingRef.current = arrayValue\n }\n\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue.splice(index, 1)\n handleChange(newArrayValue)\n },\n\n // - Called after animation end\n fulfillRemove: () => {\n valueWhileClosingRef.current = null\n delete modesRef.current?.[id]\n delete isNewRef.current?.[id]\n const findIndex = idsRef.current.indexOf(id)\n idsRef.current.splice(findIndex, 1)\n forceUpdate()\n },\n\n // - Called when cancel button press\n restoreOriginalValue: (value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue[index] = value\n handleChange(newArrayValue)\n },\n } as IterateElementContextState\n }\n )\n\n // In order to update \"valueWhileClosingRef\" we need to have \"salt\" in the deps array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [salt, arrayValue, path, handleChange])\n\n // - Call the onChange callback when a new element is added without calling \"handlePush\"\n useMemo(() => {\n const last = elementData?.[elementData.length - 1]\n if (last?.isNew && !hadPushRef.current) {\n onChange?.(arrayValue)\n } else {\n hadPushRef.current = false\n }\n }, [arrayValue, elementData, onChange])\n\n const flexProps: FlexContainerProps & {\n innerRef: FlexContainerAllProps['innerRef']\n } = {\n className: classnames(\n 'dnb-forms-iterate',\n 'dnb-forms-section',\n props?.className\n ),\n ...pickFlexContainerProps(props as FlexContainerProps),\n ...pickSpacingProps(props),\n innerRef: containerRef,\n }\n\n const WrapperElement = omitFlex ? Fragment : Flex.Stack\n\n return (\n <WrapperElement {...(omitFlex ? null : flexProps)}>\n {arrayValue === emptyValue || props?.value?.length === 0\n ? placeholder\n : elementData.map((elementProps) => {\n const { id, value, index } = elementProps\n const elementRef = (innerRefs.current[id] =\n innerRefs.current[id] || createRef<HTMLDivElement>())\n\n const renderChildren = (elementChild: ElementChild) => {\n return typeof elementChild === 'function'\n ? elementChild(value, index)\n : elementChild\n }\n\n const contextValue = {\n ...elementProps,\n elementRef,\n }\n\n const content = Array.isArray(children)\n ? children.map((child) => renderChildren(child))\n : renderChildren(children)\n\n if (omitFlex) {\n return (\n <IterateElementContext.Provider\n key={`element-${id}`}\n value={contextValue}\n >\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateElementContext.Provider>\n )\n }\n\n return (\n <Flex.Item\n className=\"dnb-forms-iterate__element\"\n tabIndex={-1}\n innerRef={elementRef}\n key={`element-${id}`}\n >\n <IterateElementContext.Provider value={contextValue}>\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateElementContext.Provider>\n </Flex.Item>\n )\n })}\n </WrapperElement>\n )\n}\n\nArrayComponent._supportsSpacingProps = true\nexport default ArrayComponent\n"],"mappings":"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"}
|
|
@@ -4,9 +4,8 @@ import { Props as FlexContainerProps } from '../../../../components/flex/Contain
|
|
|
4
4
|
export type ContainerMode = 'view' | 'edit';
|
|
5
5
|
export type Value = Array<unknown | Record<string, unknown>>;
|
|
6
6
|
export type ElementChild = React.ReactNode | ((value: any, index: number) => React.ReactNode);
|
|
7
|
-
export type Props = Omit<FlexContainerProps, '
|
|
7
|
+
export type Props = Omit<FlexContainerProps, keyof Omit<React.HTMLAttributes<HTMLDivElement>, 'className'>> & Pick<UseFieldProps<Value, undefined | Value>, 'value' | 'emptyValue' | 'onChange'> & {
|
|
8
8
|
children: ElementChild | Array<ElementChild>;
|
|
9
|
-
value?: UseFieldProps<Value, undefined | Value>['value'];
|
|
10
9
|
path?: Path;
|
|
11
10
|
countPath?: Path;
|
|
12
11
|
countPathLimit?: number;
|
|
@@ -15,7 +14,5 @@ export type Props = Omit<FlexContainerProps, 'children' | 'width' | 'defaultValu
|
|
|
15
14
|
index: number;
|
|
16
15
|
}) => any;
|
|
17
16
|
withoutFlex?: boolean;
|
|
18
|
-
emptyValue?: UseFieldProps<Value, undefined | Value>['emptyValue'];
|
|
19
17
|
placeholder?: React.ReactNode;
|
|
20
|
-
onChange?: UseFieldProps<Value, undefined | Value>['onChange'];
|
|
21
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../../../src/extensions/forms/Iterate/Array/types.ts"],"sourcesContent":["import { Path, UseFieldProps } from '../../types'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\n\nexport type ContainerMode = 'view' | 'edit'\nexport type Value = Array<unknown | Record<string, unknown>>\nexport type ElementChild =\n | React.ReactNode\n | ((value: any, index: number) => React.ReactNode)\nexport type Props = Omit<\n FlexContainerProps,\n '
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../../../src/extensions/forms/Iterate/Array/types.ts"],"sourcesContent":["import { Path, UseFieldProps } from '../../types'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\n\nexport type ContainerMode = 'view' | 'edit'\nexport type Value = Array<unknown | Record<string, unknown>>\nexport type ElementChild =\n | React.ReactNode\n | ((value: any, index: number) => React.ReactNode)\nexport type Props = Omit<\n FlexContainerProps,\n keyof Omit<React.HTMLAttributes<HTMLDivElement>, 'className'>\n> &\n Pick<\n UseFieldProps<Value, undefined | Value>,\n 'value' | 'emptyValue' | 'onChange'\n > & {\n children: ElementChild | Array<ElementChild>\n path?: Path\n countPath?: Path\n countPathLimit?: number\n countPathTransform?: (params: { value: any; index: number }) => any\n withoutFlex?: boolean\n placeholder?: React.ReactNode\n }\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-forms-iterate__element{outline:none}.dnb-forms-iterate>.dnb-forms-iterate__element:has(
|
|
1
|
+
.dnb-forms-iterate__element{outline:none}.dnb-forms-iterate>.dnb-forms-iterate__element:has(>.dnb-forms-section-block){margin-top:0}
|