@dnb/eufemia 10.44.0 → 10.46.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 +55 -0
- package/cjs/components/CopyOnClick.d.ts +12 -0
- package/cjs/components/CopyOnClick.js +24 -0
- package/cjs/components/CopyOnClick.js.map +1 -0
- package/cjs/components/checkbox/style/dnb-checkbox.scss +1 -1
- package/cjs/components/copy-on-click/CopyOnClick.d.ts +9 -0
- package/cjs/components/copy-on-click/CopyOnClick.js +72 -0
- package/cjs/components/copy-on-click/CopyOnClick.js.map +1 -0
- package/cjs/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
- package/cjs/components/copy-on-click/CopyOnClickDocs.js +25 -0
- package/cjs/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
- package/cjs/components/copy-on-click/index.d.ts +7 -0
- package/cjs/components/copy-on-click/index.js +24 -0
- package/cjs/components/copy-on-click/index.js.map +1 -0
- package/cjs/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
- package/cjs/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
- package/cjs/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
- package/cjs/components/copy-on-click/style/index.d.ts +5 -0
- package/cjs/components/copy-on-click/style/index.js +4 -0
- package/cjs/components/copy-on-click/style/index.js.map +1 -0
- package/cjs/components/copy-on-click/style.d.ts +5 -0
- package/cjs/components/copy-on-click/style.js +4 -0
- package/cjs/components/copy-on-click/style.js.map +1 -0
- package/cjs/components/copy-on-click/types.d.ts +19 -0
- package/cjs/components/copy-on-click/types.js +1 -0
- package/cjs/components/copy-on-click/types.js.map +1 -0
- package/cjs/components/index.d.ts +2 -1
- package/cjs/components/index.js +7 -0
- package/cjs/components/index.js.map +1 -1
- package/cjs/components/lib.d.ts +6 -1
- package/cjs/components/lib.js +8 -0
- package/cjs/components/lib.js.map +1 -1
- package/cjs/components/pagination/Pagination.d.ts +27 -1
- package/cjs/components/pagination/Pagination.js +3 -1
- package/cjs/components/pagination/Pagination.js.map +1 -1
- package/cjs/components/pagination/PaginationInfinity.js +20 -8
- package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
- package/cjs/components/radio/style/dnb-radio.scss +1 -1
- package/cjs/components/table/TableStickyHeader.js.map +1 -1
- package/cjs/components/upload/Upload.js +2 -1
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/UploadDocs.d.ts +1 -0
- package/cjs/components/upload/UploadDocs.js +17 -4
- package/cjs/components/upload/UploadDocs.js.map +1 -1
- package/cjs/components/upload/UploadInfo.js +57 -5
- package/cjs/components/upload/UploadInfo.js.map +1 -1
- package/cjs/components/upload/UploadVerify.d.ts +4 -2
- package/cjs/components/upload/UploadVerify.js +32 -5
- package/cjs/components/upload/UploadVerify.js.map +1 -1
- package/cjs/components/upload/style/dnb-upload.css +15 -0
- package/cjs/components/upload/style/dnb-upload.min.css +1 -1
- package/cjs/components/upload/style/dnb-upload.scss +17 -0
- package/cjs/components/upload/types.d.ts +7 -1
- package/cjs/components/upload/types.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +10 -5
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +8 -0
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +48 -26
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +16 -3
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +38 -24
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Email/Email.js +1 -1
- package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Field/Name/Name.js +2 -2
- package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +22 -3
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -2
- package/cjs/extensions/forms/Field/Number/Number.js +33 -31
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +11 -3
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +4 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +28 -20
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
- package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +3 -3
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/Form/Element/Element.js +11 -9
- package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js +1 -3
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +25 -7
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
- package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -13
- package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +9 -7
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
- package/cjs/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js +7 -5
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +25 -19
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
- package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
- package/cjs/extensions/forms/Iterate/{IterateElementContext.d.ts → IterateItemContext.d.ts} +3 -3
- package/cjs/extensions/forms/Iterate/{IterateElementContext.js → IterateItemContext.js} +3 -3
- package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
- package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
- package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
- package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +42 -0
- package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +95 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.js +12 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +42 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
- package/cjs/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
- package/cjs/extensions/forms/Iterate/PushContainer/index.js +27 -0
- package/cjs/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +13 -5
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/cjs/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
- package/cjs/extensions/forms/Iterate/hooks/useItem.js +15 -0
- package/cjs/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
- package/cjs/extensions/forms/Iterate/index.d.ts +3 -1
- package/cjs/extensions/forms/Iterate/index.js +17 -3
- package/cjs/extensions/forms/Iterate/index.js.map +1 -1
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +81 -0
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +15 -0
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
- package/cjs/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
- package/cjs/extensions/forms/Value/ArraySelection/index.js +27 -0
- package/cjs/extensions/forms/Value/ArraySelection/index.js.map +1 -0
- package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
- package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js +54 -0
- package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
- package/cjs/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
- package/cjs/extensions/forms/Value/SelectCountry/index.js +27 -0
- package/cjs/extensions/forms/Value/SelectCountry/index.js.map +1 -0
- package/cjs/extensions/forms/Value/Selection/Selection.d.ts +9 -0
- package/cjs/extensions/forms/Value/Selection/Selection.js +58 -0
- package/cjs/extensions/forms/Value/Selection/Selection.js.map +1 -0
- package/cjs/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
- package/cjs/extensions/forms/Value/Selection/SelectionDocs.js +15 -0
- package/cjs/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
- package/cjs/extensions/forms/Value/Selection/index.d.ts +2 -0
- package/cjs/extensions/forms/Value/Selection/index.js +27 -0
- package/cjs/extensions/forms/Value/Selection/index.js.map +1 -0
- package/cjs/extensions/forms/Value/ValueDocs.js +6 -1
- package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/index.d.ts +3 -0
- package/cjs/extensions/forms/Value/index.js +21 -0
- package/cjs/extensions/forms/Value/index.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +7 -6
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -0
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +27 -11
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +5 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +6 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +5 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +10 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +6 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueDocs.js +3 -3
- 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 +11 -4
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useExternalValue.js +4 -4
- package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +11 -9
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/usePath.js +3 -3
- package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.js +4 -1
- package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +3 -0
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +9 -2
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +7 -0
- package/cjs/index.js.map +1 -1
- package/cjs/shared/Context.js +4 -6
- package/cjs/shared/Context.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/locales/en-GB.d.ts +4 -0
- package/cjs/shared/locales/en-GB.js +4 -0
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +4 -0
- package/cjs/shared/locales/index.d.ts +8 -0
- package/cjs/shared/locales/nb-NO.d.ts +4 -0
- package/cjs/shared/locales/nb-NO.js +5 -1
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/useTheme.d.ts +4 -10
- package/cjs/shared/useTheme.js +7 -5
- package/cjs/shared/useTheme.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 +26 -0
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-components.scss +1 -0
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +3 -0
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +3 -0
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +29 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +29 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +29 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -0
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +3 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/CopyOnClick.d.ts +12 -0
- package/components/CopyOnClick.js +4 -0
- package/components/CopyOnClick.js.map +1 -0
- package/components/checkbox/style/dnb-checkbox.scss +1 -1
- package/components/copy-on-click/CopyOnClick.d.ts +9 -0
- package/components/copy-on-click/CopyOnClick.js +62 -0
- package/components/copy-on-click/CopyOnClick.js.map +1 -0
- package/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
- package/components/copy-on-click/CopyOnClickDocs.js +18 -0
- package/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
- package/components/copy-on-click/index.d.ts +7 -0
- package/components/copy-on-click/index.js +4 -0
- package/components/copy-on-click/index.js.map +1 -0
- package/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
- package/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
- package/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
- package/components/copy-on-click/style/index.d.ts +5 -0
- package/components/copy-on-click/style/index.js +1 -0
- package/components/copy-on-click/style/index.js.map +1 -0
- package/components/copy-on-click/style.d.ts +5 -0
- package/components/copy-on-click/style.js +1 -0
- package/components/copy-on-click/style.js.map +1 -0
- package/components/copy-on-click/types.d.ts +19 -0
- package/components/copy-on-click/types.js +1 -0
- package/components/copy-on-click/types.js.map +1 -0
- package/components/index.d.ts +2 -1
- package/components/index.js +2 -1
- package/components/index.js.map +1 -1
- package/components/lib.d.ts +6 -1
- package/components/lib.js +3 -1
- package/components/lib.js.map +1 -1
- package/components/pagination/Pagination.d.ts +27 -1
- package/components/pagination/Pagination.js +3 -1
- package/components/pagination/Pagination.js.map +1 -1
- package/components/pagination/PaginationInfinity.js +20 -8
- package/components/pagination/PaginationInfinity.js.map +1 -1
- package/components/radio/style/dnb-radio.scss +1 -1
- package/components/table/TableStickyHeader.js.map +1 -1
- package/components/upload/Upload.js +2 -1
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/UploadDocs.d.ts +1 -0
- package/components/upload/UploadDocs.js +15 -3
- package/components/upload/UploadDocs.js.map +1 -1
- package/components/upload/UploadInfo.js +57 -5
- package/components/upload/UploadInfo.js.map +1 -1
- package/components/upload/UploadVerify.d.ts +4 -2
- package/components/upload/UploadVerify.js +30 -5
- package/components/upload/UploadVerify.js.map +1 -1
- package/components/upload/style/dnb-upload.css +15 -0
- package/components/upload/style/dnb-upload.min.css +1 -1
- package/components/upload/style/dnb-upload.scss +17 -0
- package/components/upload/types.d.ts +7 -1
- package/components/upload/types.js.map +1 -1
- package/es/components/CopyOnClick.d.ts +12 -0
- package/es/components/CopyOnClick.js +4 -0
- package/es/components/CopyOnClick.js.map +1 -0
- package/es/components/checkbox/style/dnb-checkbox.scss +1 -1
- package/es/components/copy-on-click/CopyOnClick.d.ts +9 -0
- package/es/components/copy-on-click/CopyOnClick.js +62 -0
- package/es/components/copy-on-click/CopyOnClick.js.map +1 -0
- package/es/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
- package/es/components/copy-on-click/CopyOnClickDocs.js +18 -0
- package/es/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
- package/es/components/copy-on-click/index.d.ts +7 -0
- package/es/components/copy-on-click/index.js +4 -0
- package/es/components/copy-on-click/index.js.map +1 -0
- package/es/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
- package/es/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
- package/es/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
- package/es/components/copy-on-click/style/index.d.ts +5 -0
- package/es/components/copy-on-click/style/index.js +1 -0
- package/es/components/copy-on-click/style/index.js.map +1 -0
- package/es/components/copy-on-click/style.d.ts +5 -0
- package/es/components/copy-on-click/style.js +1 -0
- package/es/components/copy-on-click/style.js.map +1 -0
- package/es/components/copy-on-click/types.d.ts +19 -0
- package/es/components/copy-on-click/types.js +1 -0
- package/es/components/copy-on-click/types.js.map +1 -0
- package/es/components/index.d.ts +2 -1
- package/es/components/index.js +2 -1
- package/es/components/index.js.map +1 -1
- package/es/components/lib.d.ts +6 -1
- package/es/components/lib.js +3 -1
- package/es/components/lib.js.map +1 -1
- package/es/components/pagination/Pagination.d.ts +27 -1
- package/es/components/pagination/Pagination.js +3 -1
- package/es/components/pagination/Pagination.js.map +1 -1
- package/es/components/pagination/PaginationInfinity.js +20 -8
- package/es/components/pagination/PaginationInfinity.js.map +1 -1
- package/es/components/radio/style/dnb-radio.scss +1 -1
- package/es/components/table/TableStickyHeader.js.map +1 -1
- package/es/components/upload/Upload.js +2 -1
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/UploadDocs.d.ts +1 -0
- package/es/components/upload/UploadDocs.js +15 -3
- package/es/components/upload/UploadDocs.js.map +1 -1
- package/es/components/upload/UploadInfo.js +57 -5
- package/es/components/upload/UploadInfo.js.map +1 -1
- package/es/components/upload/UploadVerify.d.ts +4 -2
- package/es/components/upload/UploadVerify.js +30 -5
- package/es/components/upload/UploadVerify.js.map +1 -1
- package/es/components/upload/style/dnb-upload.css +15 -0
- package/es/components/upload/style/dnb-upload.min.css +1 -1
- package/es/components/upload/style/dnb-upload.scss +17 -0
- package/es/components/upload/types.d.ts +7 -1
- package/es/components/upload/types.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +10 -5
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +9 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
- package/es/extensions/forms/DataContext/Provider/Provider.js +47 -25
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +16 -3
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +37 -24
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
- package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/es/extensions/forms/Field/Email/Email.js +1 -1
- package/es/extensions/forms/Field/Email/Email.js.map +1 -1
- package/es/extensions/forms/Field/Name/Name.js +2 -2
- package/es/extensions/forms/Field/Name/Name.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +23 -4
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.d.ts +2 -2
- package/es/extensions/forms/Field/Number/Number.js +33 -31
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.d.ts +4 -1
- package/es/extensions/forms/Field/Selection/Selection.js +22 -16
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
- package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +3 -3
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/Form/Element/Element.js +9 -9
- package/es/extensions/forms/Form/Element/Element.js.map +1 -1
- package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js +1 -3
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.js +26 -8
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
- package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -11
- package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
- package/es/extensions/forms/Form/Section/Section.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +9 -7
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
- package/es/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js +7 -5
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +26 -20
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
- package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
- package/{extensions/forms/Iterate/IterateElementContext.d.ts → es/extensions/forms/Iterate/IterateItemContext.d.ts} +3 -3
- package/es/extensions/forms/Iterate/IterateItemContext.js +4 -0
- package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
- package/es/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
- package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
- package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
- package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
- package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +32 -0
- package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +80 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.js +6 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +34 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
- package/es/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
- package/es/extensions/forms/Iterate/PushContainer/index.js +3 -0
- package/es/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +15 -6
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
- package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/es/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
- package/es/extensions/forms/Iterate/hooks/useItem.js +9 -0
- package/es/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
- package/es/extensions/forms/Iterate/index.d.ts +3 -1
- package/es/extensions/forms/Iterate/index.js +3 -1
- package/es/extensions/forms/Iterate/index.js.map +1 -1
- package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
- package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +66 -0
- package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
- package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
- package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +8 -0
- package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
- package/es/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
- package/es/extensions/forms/Value/ArraySelection/index.js +3 -0
- package/es/extensions/forms/Value/ArraySelection/index.js.map +1 -0
- package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
- package/es/extensions/forms/Value/SelectCountry/SelectCountry.js +44 -0
- package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
- package/es/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
- package/es/extensions/forms/Value/SelectCountry/index.js +3 -0
- package/es/extensions/forms/Value/SelectCountry/index.js.map +1 -0
- package/es/extensions/forms/Value/Selection/Selection.d.ts +9 -0
- package/es/extensions/forms/Value/Selection/Selection.js +48 -0
- package/es/extensions/forms/Value/Selection/Selection.js.map +1 -0
- package/es/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
- package/es/extensions/forms/Value/Selection/SelectionDocs.js +8 -0
- package/es/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
- package/es/extensions/forms/Value/Selection/index.d.ts +2 -0
- package/es/extensions/forms/Value/Selection/index.js +3 -0
- package/es/extensions/forms/Value/Selection/index.js.map +1 -0
- package/es/extensions/forms/Value/ValueDocs.js +6 -1
- package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/es/extensions/forms/Value/index.d.ts +3 -0
- package/es/extensions/forms/Value/index.js +3 -0
- package/es/extensions/forms/Value/index.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +7 -6
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -0
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +16 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +5 -0
- package/es/extensions/forms/constants/locales/en-GB.js +6 -1
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +5 -0
- package/es/extensions/forms/constants/locales/index.d.ts +10 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +6 -1
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueDocs.js +3 -3
- 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 +11 -4
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/hooks/useExternalValue.js +4 -4
- package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +11 -9
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/usePath.js +2 -2
- package/es/extensions/forms/hooks/usePath.js.map +1 -1
- package/es/extensions/forms/hooks/useValueProps.js +4 -1
- package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +3 -0
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +9 -2
- package/es/extensions/forms/types.js.map +1 -1
- package/es/index.d.ts +2 -1
- package/es/index.js +2 -1
- package/es/index.js.map +1 -1
- package/es/shared/Context.js +4 -6
- package/es/shared/Context.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/locales/en-GB.d.ts +4 -0
- package/es/shared/locales/en-GB.js +4 -0
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +4 -0
- package/es/shared/locales/index.d.ts +8 -0
- package/es/shared/locales/nb-NO.d.ts +4 -0
- package/es/shared/locales/nb-NO.js +5 -1
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/useTheme.d.ts +4 -10
- package/es/shared/useTheme.js +7 -5
- package/es/shared/useTheme.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 +26 -0
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-components.scss +1 -0
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +3 -0
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +3 -0
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +29 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +29 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +29 -0
- package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -0
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +3 -0
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +5 -5
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +10 -5
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +9 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
- package/extensions/forms/DataContext/Provider/Provider.js +48 -26
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +16 -3
- package/extensions/forms/Field/ArraySelection/ArraySelection.js +37 -24
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
- package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/extensions/forms/Field/Email/Email.js +1 -1
- package/extensions/forms/Field/Email/Email.js.map +1 -1
- package/extensions/forms/Field/Name/Name.js +2 -2
- package/extensions/forms/Field/Name/Name.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +23 -4
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/Number/Number.d.ts +2 -2
- package/extensions/forms/Field/Number/Number.js +33 -31
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.d.ts +4 -1
- package/extensions/forms/Field/Selection/Selection.js +27 -20
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
- package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +3 -3
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/Form/Element/Element.js +9 -9
- package/extensions/forms/Form/Element/Element.js.map +1 -1
- package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/extensions/forms/Form/Handler/Handler.js +1 -3
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
- package/extensions/forms/Form/Isolation/Isolation.js +26 -8
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
- package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
- package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
- package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -11
- package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
- package/extensions/forms/Form/Section/Section.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js +9 -7
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
- package/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +7 -5
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
- package/extensions/forms/Iterate/EditContainer/EditContainer.js +26 -20
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
- package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
- package/{es/extensions/forms/Iterate/IterateElementContext.d.ts → extensions/forms/Iterate/IterateItemContext.d.ts} +3 -3
- package/extensions/forms/Iterate/IterateItemContext.js +4 -0
- package/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
- package/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
- package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
- package/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
- package/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
- package/extensions/forms/Iterate/PushContainer/OpenButton.js +32 -0
- package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
- package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +83 -0
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
- package/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
- package/extensions/forms/Iterate/PushContainer/PushContainerContext.js +6 -0
- package/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +34 -0
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
- package/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
- package/extensions/forms/Iterate/PushContainer/index.js +3 -0
- package/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +15 -6
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
- package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
- package/extensions/forms/Iterate/hooks/useItem.js +9 -0
- package/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
- package/extensions/forms/Iterate/index.d.ts +3 -1
- package/extensions/forms/Iterate/index.js +3 -1
- package/extensions/forms/Iterate/index.js.map +1 -1
- package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
- package/extensions/forms/Value/ArraySelection/ArraySelection.js +70 -0
- package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
- package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
- package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +8 -0
- package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
- package/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
- package/extensions/forms/Value/ArraySelection/index.js +3 -0
- package/extensions/forms/Value/ArraySelection/index.js.map +1 -0
- package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
- package/extensions/forms/Value/SelectCountry/SelectCountry.js +44 -0
- package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
- package/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
- package/extensions/forms/Value/SelectCountry/index.js +3 -0
- package/extensions/forms/Value/SelectCountry/index.js.map +1 -0
- package/extensions/forms/Value/Selection/Selection.d.ts +9 -0
- package/extensions/forms/Value/Selection/Selection.js +48 -0
- package/extensions/forms/Value/Selection/Selection.js.map +1 -0
- package/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
- package/extensions/forms/Value/Selection/SelectionDocs.js +8 -0
- package/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
- package/extensions/forms/Value/Selection/index.d.ts +2 -0
- package/extensions/forms/Value/Selection/index.js +3 -0
- package/extensions/forms/Value/Selection/index.js.map +1 -0
- package/extensions/forms/Value/ValueDocs.js +6 -1
- package/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/extensions/forms/Value/index.d.ts +3 -0
- package/extensions/forms/Value/index.js +3 -0
- package/extensions/forms/Value/index.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +7 -6
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -0
- package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
- package/extensions/forms/Wizard/Container/WizardContainer.js +27 -11
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +5 -0
- package/extensions/forms/constants/locales/en-GB.js +6 -1
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +5 -0
- package/extensions/forms/constants/locales/index.d.ts +10 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
- package/extensions/forms/constants/locales/nb-NO.js +6 -1
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/DataValueDocs.js +3 -3
- package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.d.ts +1 -0
- package/extensions/forms/hooks/useDataValue.js +11 -4
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/hooks/useExternalValue.js +4 -4
- package/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +11 -9
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/usePath.js +2 -2
- package/extensions/forms/hooks/usePath.js.map +1 -1
- package/extensions/forms/hooks/useValueProps.js +4 -1
- package/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +3 -0
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +9 -2
- package/extensions/forms/types.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/package.json +2 -1
- package/shared/Context.js +4 -6
- package/shared/Context.js.map +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/locales/en-GB.d.ts +4 -0
- package/shared/locales/en-GB.js +4 -0
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +4 -0
- package/shared/locales/index.d.ts +8 -0
- package/shared/locales/nb-NO.d.ts +4 -0
- package/shared/locales/nb-NO.js +5 -1
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/useTheme.d.ts +4 -10
- package/shared/useTheme.js +7 -5
- package/shared/useTheme.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 +26 -0
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-components.scss +1 -0
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +3 -0
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +3 -0
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +29 -0
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +29 -0
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +29 -0
- package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/style/themes/theme-ui/ui-theme-extensions.css +3 -0
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +3 -0
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +5 -5
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
- package/es/extensions/forms/Iterate/IterateElementContext.js +0 -4
- package/es/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
- package/extensions/forms/Iterate/IterateElementContext.js +0 -4
- package/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
|
@@ -7,9 +7,24 @@ export function verifyFiles(files, context) {
|
|
|
7
7
|
errorLargeFile,
|
|
8
8
|
errorUnsupportedFile
|
|
9
9
|
} = context;
|
|
10
|
+
const getFileType = (file, listOfAcceptedFilesTypes) => {
|
|
11
|
+
return hasPreferredMimeType(listOfAcceptedFilesTypes, file) ? file.type : getFileTypeFromExtension(file) || file.type;
|
|
12
|
+
};
|
|
10
13
|
const handleSize = file => {
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
const validateFileSize = (fileSize, maxFileSize) => {
|
|
15
|
+
if (maxFileSize && fileSize / BYTES_IN_A_MEGA_BYTE > maxFileSize) {
|
|
16
|
+
return String(errorLargeFile).replace('%size', format(maxFileSize).toString());
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
};
|
|
20
|
+
if (isArrayOfStrings(acceptedFileTypes) || acceptedFileTypes.length === 0 || !acceptedFileTypes) {
|
|
21
|
+
return validateFileSize(file.size, fileMaxSize);
|
|
22
|
+
} else if (isArrayOfObjects(acceptedFileTypes)) {
|
|
23
|
+
const fileType = getFileType(file, getAcceptedFileTypesAsListOfStrings(acceptedFileTypes));
|
|
24
|
+
const acceptedFileTypeObj = acceptedFileTypes.find(item => {
|
|
25
|
+
return item.fileType === fileType;
|
|
26
|
+
});
|
|
27
|
+
return validateFileSize(file.size, acceptedFileTypeObj.fileMaxSize !== undefined ? acceptedFileTypeObj.fileMaxSize : fileMaxSize);
|
|
13
28
|
}
|
|
14
29
|
return null;
|
|
15
30
|
};
|
|
@@ -17,8 +32,9 @@ export function verifyFiles(files, context) {
|
|
|
17
32
|
if (acceptedFileTypes.length === 0) {
|
|
18
33
|
return false;
|
|
19
34
|
}
|
|
20
|
-
const
|
|
21
|
-
const
|
|
35
|
+
const listOfAcceptedFilesTypes = getAcceptedFileTypesAsListOfStrings(acceptedFileTypes);
|
|
36
|
+
const fileType = getFileType(file, listOfAcceptedFilesTypes);
|
|
37
|
+
const foundType = extendWithAbbreviation(listOfAcceptedFilesTypes).some(type => {
|
|
22
38
|
return fileType.includes(type);
|
|
23
39
|
});
|
|
24
40
|
return !foundType ? errorUnsupportedFile : null;
|
|
@@ -39,11 +55,20 @@ export function getFileTypeFromExtension(file) {
|
|
|
39
55
|
return file.name.includes('.') && file.name.replace(/.*\.([^.]+)$/, '$1') || null;
|
|
40
56
|
}
|
|
41
57
|
export function getAcceptedFileTypes(acceptedFileTypes) {
|
|
42
|
-
return extendWithAbbreviation(acceptedFileTypes).map(type => type.includes('/') ? type : `.${type}`).join(',');
|
|
58
|
+
return extendWithAbbreviation(getAcceptedFileTypesAsListOfStrings(acceptedFileTypes)).map(type => type.includes('/') ? type : `.${type}`).join(',');
|
|
43
59
|
}
|
|
44
60
|
export function hasPreferredMimeType(acceptedFileTypes, file) {
|
|
45
61
|
return file.type.split('/')[1] && (!(acceptedFileTypes !== null && acceptedFileTypes !== void 0 && acceptedFileTypes.length) || (acceptedFileTypes === null || acceptedFileTypes === void 0 ? void 0 : acceptedFileTypes.some(type => type.toLowerCase() === file.type.toLowerCase())));
|
|
46
62
|
}
|
|
63
|
+
function getAcceptedFileTypesAsListOfStrings(acceptedFileTypes) {
|
|
64
|
+
return isArrayOfStrings(acceptedFileTypes) ? acceptedFileTypes : acceptedFileTypes.map(obj => obj.fileType);
|
|
65
|
+
}
|
|
66
|
+
export function isArrayOfStrings(arr) {
|
|
67
|
+
return Array.isArray(arr) && arr.length > 0 && arr.every(i => typeof i === 'string');
|
|
68
|
+
}
|
|
69
|
+
export function isArrayOfObjects(arr) {
|
|
70
|
+
return Array.isArray(arr) && arr.length > 0 && arr.every(i => typeof i === 'object');
|
|
71
|
+
}
|
|
47
72
|
export function extendWithAbbreviation(acceptedFileTypes, abbreviations = {
|
|
48
73
|
jpg: 'jpeg'
|
|
49
74
|
}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadVerify.js","names":["format","BYTES_IN_A_MEGA_BYTE","verifyFiles","files","context","fileMaxSize","acceptedFileTypes","errorLargeFile","errorUnsupportedFile","
|
|
1
|
+
{"version":3,"file":"UploadVerify.js","names":["format","BYTES_IN_A_MEGA_BYTE","verifyFiles","files","context","fileMaxSize","acceptedFileTypes","errorLargeFile","errorUnsupportedFile","getFileType","file","listOfAcceptedFilesTypes","hasPreferredMimeType","type","getFileTypeFromExtension","handleSize","validateFileSize","fileSize","maxFileSize","String","replace","toString","isArrayOfStrings","length","size","isArrayOfObjects","fileType","getAcceptedFileTypesAsListOfStrings","acceptedFileTypeObj","find","item","undefined","handleType","foundType","extendWithAbbreviation","some","includes","cleanedFiles","map","errorMessage","name","getAcceptedFileTypes","join","split","toLowerCase","obj","arr","Array","isArray","every","i","abbreviations","jpg","list","Object","entries","forEach","abbr","t","push"],"sources":["../../../../src/components/upload/UploadVerify.tsx"],"sourcesContent":["import { format } from '../number-format/NumberUtils'\nimport {\n UploadFile,\n UploadContextProps,\n UploadAcceptedFileTypes,\n UploadAcceptedFileTypesWithFileMaxSize,\n} from './types'\n\nexport const BYTES_IN_A_MEGA_BYTE = 1048576\n\nexport function verifyFiles(\n files: UploadFile[],\n context: Pick<\n UploadContextProps,\n | 'errorUnsupportedFile'\n | 'errorLargeFile'\n | 'acceptedFileTypes'\n | 'fileMaxSize'\n >\n) {\n const {\n fileMaxSize,\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n } = context\n\n const getFileType = (\n file: File,\n listOfAcceptedFilesTypes: UploadAcceptedFileTypes\n ) => {\n return hasPreferredMimeType(listOfAcceptedFilesTypes, file)\n ? file.type\n : getFileTypeFromExtension(file) || file.type\n }\n\n const handleSize = (file: File) => {\n const validateFileSize = (\n fileSize: number,\n maxFileSize: number | false\n ) => {\n if (\n maxFileSize &&\n // Converts from b (binary) to MB (decimal)\n fileSize / BYTES_IN_A_MEGA_BYTE > maxFileSize\n ) {\n return String(errorLargeFile).replace(\n '%size',\n format(maxFileSize).toString()\n )\n }\n return null\n }\n\n if (\n isArrayOfStrings(acceptedFileTypes) ||\n acceptedFileTypes.length === 0 ||\n !acceptedFileTypes\n ) {\n return validateFileSize(file.size, fileMaxSize)\n } else if (isArrayOfObjects(acceptedFileTypes)) {\n const fileType = getFileType(\n file,\n getAcceptedFileTypesAsListOfStrings(acceptedFileTypes)\n )\n\n const acceptedFileTypeObj = (\n acceptedFileTypes as UploadAcceptedFileTypesWithFileMaxSize\n ).find((item) => {\n return item.fileType === fileType\n })\n\n return validateFileSize(\n file.size,\n acceptedFileTypeObj.fileMaxSize !== undefined\n ? acceptedFileTypeObj.fileMaxSize\n : fileMaxSize\n )\n }\n return null\n }\n\n const handleType = (file: File) => {\n if (acceptedFileTypes.length === 0) {\n return false\n }\n\n const listOfAcceptedFilesTypes =\n getAcceptedFileTypesAsListOfStrings(acceptedFileTypes)\n const fileType = getFileType(file, listOfAcceptedFilesTypes)\n const foundType = extendWithAbbreviation(\n listOfAcceptedFilesTypes\n ).some((type) => {\n /**\n * \"file.type\" can be e.g. \"image/png\"\n */\n return fileType.includes(type)\n })\n return !foundType ? errorUnsupportedFile : null\n }\n\n const cleanedFiles = files.map((item) => {\n const { file } = item\n\n const errorMessage = handleSize(file) || handleType(file)\n\n if (errorMessage) {\n item.errorMessage = errorMessage\n }\n\n return item\n })\n\n return cleanedFiles\n}\n\nexport function getFileTypeFromExtension(file: File) {\n return (\n (file.name.includes('.') && file.name.replace(/.*\\.([^.]+)$/, '$1')) ||\n null\n )\n}\n\nexport function getAcceptedFileTypes(\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n) {\n return extendWithAbbreviation(\n getAcceptedFileTypesAsListOfStrings(acceptedFileTypes)\n )\n .map((type) => (type.includes('/') ? type : `.${type}`))\n .join(',')\n}\n\nexport function hasPreferredMimeType(\n acceptedFileTypes: UploadAcceptedFileTypes,\n file: File\n) {\n return (\n file.type.split('/')[1] &&\n (!acceptedFileTypes?.length ||\n acceptedFileTypes?.some(\n (type) => type.toLowerCase() === file.type.toLowerCase()\n ))\n )\n}\n\nfunction getAcceptedFileTypesAsListOfStrings(\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n) {\n return isArrayOfStrings(acceptedFileTypes)\n ? (acceptedFileTypes as UploadAcceptedFileTypes)\n : (acceptedFileTypes as UploadAcceptedFileTypesWithFileMaxSize).map(\n (obj) => obj.fileType\n )\n}\n\nexport function isArrayOfStrings(arr) {\n return (\n Array.isArray(arr) &&\n arr.length > 0 &&\n arr.every((i) => typeof i === 'string')\n )\n}\n\nexport function isArrayOfObjects(arr) {\n return (\n Array.isArray(arr) &&\n arr.length > 0 &&\n arr.every((i) => typeof i === 'object')\n )\n}\n\nexport function extendWithAbbreviation(\n acceptedFileTypes: UploadAcceptedFileTypes,\n abbreviations = { jpg: 'jpeg' }\n) {\n const list = [...acceptedFileTypes]\n\n Object.entries(abbreviations).forEach(([type, abbr]) => {\n if (list.some((t) => t === type) && !list.some((t) => t === abbr)) {\n list.push(abbr)\n }\n })\n\n return list\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,8BAA8B;AAQrD,OAAO,MAAMC,oBAAoB,GAAG,OAAO;AAE3C,OAAO,SAASC,WAAWA,CACzBC,KAAmB,EACnBC,OAMC,EACD;EACA,MAAM;IACJC,WAAW;IACXC,iBAAiB;IACjBC,cAAc;IACdC;EACF,CAAC,GAAGJ,OAAO;EAEX,MAAMK,WAAW,GAAGA,CAClBC,IAAU,EACVC,wBAAiD,KAC9C;IACH,OAAOC,oBAAoB,CAACD,wBAAwB,EAAED,IAAI,CAAC,GACvDA,IAAI,CAACG,IAAI,GACTC,wBAAwB,CAACJ,IAAI,CAAC,IAAIA,IAAI,CAACG,IAAI;EACjD,CAAC;EAED,MAAME,UAAU,GAAIL,IAAU,IAAK;IACjC,MAAMM,gBAAgB,GAAGA,CACvBC,QAAgB,EAChBC,WAA2B,KACxB;MACH,IACEA,WAAW,IAEXD,QAAQ,GAAGhB,oBAAoB,GAAGiB,WAAW,EAC7C;QACA,OAAOC,MAAM,CAACZ,cAAc,CAAC,CAACa,OAAO,CACnC,OAAO,EACPpB,MAAM,CAACkB,WAAW,CAAC,CAACG,QAAQ,CAAC,CAC/B,CAAC;MACH;MACA,OAAO,IAAI;IACb,CAAC;IAED,IACEC,gBAAgB,CAAChB,iBAAiB,CAAC,IACnCA,iBAAiB,CAACiB,MAAM,KAAK,CAAC,IAC9B,CAACjB,iBAAiB,EAClB;MACA,OAAOU,gBAAgB,CAACN,IAAI,CAACc,IAAI,EAAEnB,WAAW,CAAC;IACjD,CAAC,MAAM,IAAIoB,gBAAgB,CAACnB,iBAAiB,CAAC,EAAE;MAC9C,MAAMoB,QAAQ,GAAGjB,WAAW,CAC1BC,IAAI,EACJiB,mCAAmC,CAACrB,iBAAiB,CACvD,CAAC;MAED,MAAMsB,mBAAmB,GACvBtB,iBAAiB,CACjBuB,IAAI,CAAEC,IAAI,IAAK;QACf,OAAOA,IAAI,CAACJ,QAAQ,KAAKA,QAAQ;MACnC,CAAC,CAAC;MAEF,OAAOV,gBAAgB,CACrBN,IAAI,CAACc,IAAI,EACTI,mBAAmB,CAACvB,WAAW,KAAK0B,SAAS,GACzCH,mBAAmB,CAACvB,WAAW,GAC/BA,WACN,CAAC;IACH;IACA,OAAO,IAAI;EACb,CAAC;EAED,MAAM2B,UAAU,GAAItB,IAAU,IAAK;IACjC,IAAIJ,iBAAiB,CAACiB,MAAM,KAAK,CAAC,EAAE;MAClC,OAAO,KAAK;IACd;IAEA,MAAMZ,wBAAwB,GAC5BgB,mCAAmC,CAACrB,iBAAiB,CAAC;IACxD,MAAMoB,QAAQ,GAAGjB,WAAW,CAACC,IAAI,EAAEC,wBAAwB,CAAC;IAC5D,MAAMsB,SAAS,GAAGC,sBAAsB,CACtCvB,wBACF,CAAC,CAACwB,IAAI,CAAEtB,IAAI,IAAK;MAIf,OAAOa,QAAQ,CAACU,QAAQ,CAACvB,IAAI,CAAC;IAChC,CAAC,CAAC;IACF,OAAO,CAACoB,SAAS,GAAGzB,oBAAoB,GAAG,IAAI;EACjD,CAAC;EAED,MAAM6B,YAAY,GAAGlC,KAAK,CAACmC,GAAG,CAAER,IAAI,IAAK;IACvC,MAAM;MAAEpB;IAAK,CAAC,GAAGoB,IAAI;IAErB,MAAMS,YAAY,GAAGxB,UAAU,CAACL,IAAI,CAAC,IAAIsB,UAAU,CAACtB,IAAI,CAAC;IAEzD,IAAI6B,YAAY,EAAE;MAChBT,IAAI,CAACS,YAAY,GAAGA,YAAY;IAClC;IAEA,OAAOT,IAAI;EACb,CAAC,CAAC;EAEF,OAAOO,YAAY;AACrB;AAEA,OAAO,SAASvB,wBAAwBA,CAACJ,IAAU,EAAE;EACnD,OACGA,IAAI,CAAC8B,IAAI,CAACJ,QAAQ,CAAC,GAAG,CAAC,IAAI1B,IAAI,CAAC8B,IAAI,CAACpB,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,IACnE,IAAI;AAER;AAEA,OAAO,SAASqB,oBAAoBA,CAClCnC,iBAE0C,EAC1C;EACA,OAAO4B,sBAAsB,CAC3BP,mCAAmC,CAACrB,iBAAiB,CACvD,CAAC,CACEgC,GAAG,CAAEzB,IAAI,IAAMA,IAAI,CAACuB,QAAQ,CAAC,GAAG,CAAC,GAAGvB,IAAI,GAAI,IAAGA,IAAK,EAAE,CAAC,CACvD6B,IAAI,CAAC,GAAG,CAAC;AACd;AAEA,OAAO,SAAS9B,oBAAoBA,CAClCN,iBAA0C,EAC1CI,IAAU,EACV;EACA,OACEA,IAAI,CAACG,IAAI,CAAC8B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KACtB,EAACrC,iBAAiB,aAAjBA,iBAAiB,eAAjBA,iBAAiB,CAAEiB,MAAM,MACzBjB,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAE6B,IAAI,CACpBtB,IAAI,IAAKA,IAAI,CAAC+B,WAAW,CAAC,CAAC,KAAKlC,IAAI,CAACG,IAAI,CAAC+B,WAAW,CAAC,CACzD,CAAC,EAAC;AAER;AAEA,SAASjB,mCAAmCA,CAC1CrB,iBAE0C,EAC1C;EACA,OAAOgB,gBAAgB,CAAChB,iBAAiB,CAAC,GACrCA,iBAAiB,GACjBA,iBAAiB,CAA4CgC,GAAG,CAC9DO,GAAG,IAAKA,GAAG,CAACnB,QACf,CAAC;AACP;AAEA,OAAO,SAASJ,gBAAgBA,CAACwB,GAAG,EAAE;EACpC,OACEC,KAAK,CAACC,OAAO,CAACF,GAAG,CAAC,IAClBA,GAAG,CAACvB,MAAM,GAAG,CAAC,IACduB,GAAG,CAACG,KAAK,CAAEC,CAAC,IAAK,OAAOA,CAAC,KAAK,QAAQ,CAAC;AAE3C;AAEA,OAAO,SAASzB,gBAAgBA,CAACqB,GAAG,EAAE;EACpC,OACEC,KAAK,CAACC,OAAO,CAACF,GAAG,CAAC,IAClBA,GAAG,CAACvB,MAAM,GAAG,CAAC,IACduB,GAAG,CAACG,KAAK,CAAEC,CAAC,IAAK,OAAOA,CAAC,KAAK,QAAQ,CAAC;AAE3C;AAEA,OAAO,SAAShB,sBAAsBA,CACpC5B,iBAA0C,EAC1C6C,aAAa,GAAG;EAAEC,GAAG,EAAE;AAAO,CAAC,EAC/B;EACA,MAAMC,IAAI,GAAG,CAAC,GAAG/C,iBAAiB,CAAC;EAEnCgD,MAAM,CAACC,OAAO,CAACJ,aAAa,CAAC,CAACK,OAAO,CAAC,CAAC,CAAC3C,IAAI,EAAE4C,IAAI,CAAC,KAAK;IACtD,IAAIJ,IAAI,CAAClB,IAAI,CAAEuB,CAAC,IAAKA,CAAC,KAAK7C,IAAI,CAAC,IAAI,CAACwC,IAAI,CAAClB,IAAI,CAAEuB,CAAC,IAAKA,CAAC,KAAKD,IAAI,CAAC,EAAE;MACjEJ,IAAI,CAACM,IAAI,CAACF,IAAI,CAAC;IACjB;EACF,CAAC,CAAC;EAEF,OAAOJ,IAAI;AACb"}
|
|
@@ -112,6 +112,21 @@
|
|
|
112
112
|
.dnb-upload__text.dnb-p {
|
|
113
113
|
color: var(--upload-text--secondary);
|
|
114
114
|
}
|
|
115
|
+
.dnb-upload__accepted-file-types-table.dnb-table {
|
|
116
|
+
width: -moz-fit-content;
|
|
117
|
+
width: fit-content;
|
|
118
|
+
}
|
|
119
|
+
.dnb-upload__accepted-file-types-table.dnb-table thead th {
|
|
120
|
+
font-weight: var(--font-weight-medium);
|
|
121
|
+
font-size: var(--font-size-basis);
|
|
122
|
+
padding-top: var(--spacing-small);
|
|
123
|
+
}
|
|
124
|
+
.dnb-upload__accepted-file-types-table.dnb-table thead th:first-child {
|
|
125
|
+
padding-left: 0;
|
|
126
|
+
}
|
|
127
|
+
.dnb-upload__accepted-file-types-table.dnb-table tbody td:first-child {
|
|
128
|
+
padding-left: 0;
|
|
129
|
+
}
|
|
115
130
|
.dnb-upload__subtitle.dnb-p {
|
|
116
131
|
color: var(--upload-text--secondary);
|
|
117
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-upload{--upload-background:#fff;--upload-background--active:#d3d3d3;--upload-border:gray;--upload-border--active:#000;--upload-list-border:#000;--upload-icon--default:#000;--upload-icon--warning:red;--upload-highlight:#ffffe0;--upload-text--primary:#000;--upload-text--secondary:#000;background-color:var(--upload-background);border-radius:.5rem;display:flex;flex-direction:column;padding:var(--spacing-medium);position:relative}@media screen and (max-width:40em){.dnb-upload{padding:var(--spacing-medium) var(--spacing-small)}}.dnb-upload__outline{stroke:var(--upload-border);stroke-width:.1875rem;border-radius:.5rem;content:"";height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.dnb-upload--active .dnb-upload__outline{stroke:var(--upload-border--active);height:calc(100% + 2px);inset:-1px;width:calc(100% + 2px)}.dnb-upload--active .dnb-upload__outline rect{stroke-width:.25rem;stroke-dasharray:0}.dnb-upload--active{background-color:var(--upload-background--active)}.dnb-upload__file-input{position:absolute;visibility:hidden}.dnb-upload__file-list{list-style:none;margin-bottom:0;margin-top:var(--spacing-medium);padding:0;position:relative}.dnb-upload__file-cell:after,.dnb-upload__file-list:before{background-color:var(--upload-list-border);content:"";height:1px;inset:0;position:absolute}.dnb-upload__file-cell{padding:var(--spacing-small) 0;position:relative;transition:background-color;transition-duration:1.5s;transition-timing-function:var(--easing-default)}.dnb-upload__file-cell:after{top:auto}.dnb-upload__file-cell__content{justify-content:space-between}.dnb-upload__file-cell__content,.dnb-upload__file-cell__content__left{align-items:center;display:flex;flex-direction:row}.dnb-upload__file-cell__content__left .dnb-icon{color:var(--upload-icon--default)}.dnb-upload__file-cell--warning .dnb-upload__file-cell__content__left .dnb-icon{color:var(--upload-icon--warning)}.dnb-upload__file-cell--highlight{background-color:var(--upload-highlight)}.dnb-upload__file-cell__text-container{display:flex;flex-direction:column;margin-left:var(--spacing-small)}.dnb-upload__file-cell__text-container--loading{font-size:var(--font-size-basis)}.dnb-
|
|
1
|
+
.dnb-upload{--upload-background:#fff;--upload-background--active:#d3d3d3;--upload-border:gray;--upload-border--active:#000;--upload-list-border:#000;--upload-icon--default:#000;--upload-icon--warning:red;--upload-highlight:#ffffe0;--upload-text--primary:#000;--upload-text--secondary:#000;background-color:var(--upload-background);border-radius:.5rem;display:flex;flex-direction:column;padding:var(--spacing-medium);position:relative}@media screen and (max-width:40em){.dnb-upload{padding:var(--spacing-medium) var(--spacing-small)}}.dnb-upload__outline{stroke:var(--upload-border);stroke-width:.1875rem;border-radius:.5rem;content:"";height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.dnb-upload--active .dnb-upload__outline{stroke:var(--upload-border--active);height:calc(100% + 2px);inset:-1px;width:calc(100% + 2px)}.dnb-upload--active .dnb-upload__outline rect{stroke-width:.25rem;stroke-dasharray:0}.dnb-upload--active{background-color:var(--upload-background--active)}.dnb-upload__file-input{position:absolute;visibility:hidden}.dnb-upload__file-list{list-style:none;margin-bottom:0;margin-top:var(--spacing-medium);padding:0;position:relative}.dnb-upload__file-cell:after,.dnb-upload__file-list:before{background-color:var(--upload-list-border);content:"";height:1px;inset:0;position:absolute}.dnb-upload__file-cell{padding:var(--spacing-small) 0;position:relative;transition:background-color;transition-duration:1.5s;transition-timing-function:var(--easing-default)}.dnb-upload__file-cell:after{top:auto}.dnb-upload__file-cell__content{justify-content:space-between}.dnb-upload__file-cell__content,.dnb-upload__file-cell__content__left{align-items:center;display:flex;flex-direction:row}.dnb-upload__file-cell__content__left .dnb-icon{color:var(--upload-icon--default)}.dnb-upload__file-cell--warning .dnb-upload__file-cell__content__left .dnb-icon{color:var(--upload-icon--warning)}.dnb-upload__file-cell--highlight{background-color:var(--upload-highlight)}.dnb-upload__file-cell__text-container{display:flex;flex-direction:column;margin-left:var(--spacing-small)}.dnb-upload__file-cell__text-container--loading{font-size:var(--font-size-basis)}.dnb-upload__text.dnb-p{color:var(--upload-text--secondary)}.dnb-upload__accepted-file-types-table.dnb-table{width:-moz-fit-content;width:fit-content}.dnb-upload__accepted-file-types-table.dnb-table thead th{font-size:var(--font-size-basis);font-weight:var(--font-weight-medium);padding-top:var(--spacing-small)}.dnb-upload__accepted-file-types-table.dnb-table tbody td:first-child,.dnb-upload__accepted-file-types-table.dnb-table thead th:first-child{padding-left:0}.dnb-upload__subtitle.dnb-p{color:var(--upload-text--secondary)}
|
|
@@ -145,6 +145,23 @@
|
|
|
145
145
|
color: var(--upload-text--secondary);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
+
&__accepted-file-types-table {
|
|
149
|
+
&.dnb-table {
|
|
150
|
+
width: fit-content;
|
|
151
|
+
& thead th {
|
|
152
|
+
font-weight: var(--font-weight-medium);
|
|
153
|
+
font-size: var(--font-size-basis);
|
|
154
|
+
padding-top: var(--spacing-small);
|
|
155
|
+
&:first-child {
|
|
156
|
+
padding-left: 0;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
& tbody td:first-child {
|
|
160
|
+
padding-left: 0;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
148
165
|
&__subtitle.dnb-p {
|
|
149
166
|
color: var(--upload-text--secondary);
|
|
150
167
|
}
|
|
@@ -2,6 +2,11 @@ import React from 'react';
|
|
|
2
2
|
import type { SkeletonShow } from '../skeleton/Skeleton';
|
|
3
3
|
import type { LocaleProps, SpacingProps } from '../../shared/types';
|
|
4
4
|
export type UploadAcceptedFileTypes = string[];
|
|
5
|
+
export type UploadAcceptedFileTypesWithFileMaxSize = UploadAcceptedFileTypeObject[];
|
|
6
|
+
export type UploadAcceptedFileTypeObject = {
|
|
7
|
+
fileType: string;
|
|
8
|
+
fileMaxSize?: number | false;
|
|
9
|
+
};
|
|
5
10
|
export type UploadProps = {
|
|
6
11
|
/**
|
|
7
12
|
* unique id used with the useUpload hook to manage the files
|
|
@@ -10,7 +15,7 @@ export type UploadProps = {
|
|
|
10
15
|
/**
|
|
11
16
|
* list of accepted file types.
|
|
12
17
|
*/
|
|
13
|
-
acceptedFileTypes: UploadAcceptedFileTypes;
|
|
18
|
+
acceptedFileTypes: UploadAcceptedFileTypes | UploadAcceptedFileTypesWithFileMaxSize;
|
|
14
19
|
/**
|
|
15
20
|
* Skeleton should be applied when loading content
|
|
16
21
|
* Default: null
|
|
@@ -43,6 +48,7 @@ export type UploadProps = {
|
|
|
43
48
|
*/
|
|
44
49
|
title?: React.ReactNode;
|
|
45
50
|
text?: React.ReactNode;
|
|
51
|
+
fileTypeTableCaption?: React.ReactNode;
|
|
46
52
|
fileTypeDescription?: React.ReactNode;
|
|
47
53
|
fileSizeDescription?: React.ReactNode;
|
|
48
54
|
fileAmountDescription?: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id: string\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadAcceptedFileTypesWithFileMaxSize =\n UploadAcceptedFileTypeObject[]\n\nexport type UploadAcceptedFileTypeObject = {\n fileType: string\n fileMaxSize?: number | false\n}\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id: string\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * Defines the max file size of each file in MB. Use either `0` or `false` to disable.\n * Default: 5 MB\n */\n fileMaxSize?: number | false\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: UploadFile[] }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({ fileItem }: { fileItem: UploadFile }) => void\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeTableCaption?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n children?: React.ReactNode\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: UploadFile[]) => void\n} & Partial<UploadProps>\n\nexport type UploadFile = {\n file: File\n errorMessage?: React.ReactNode\n isLoading?: boolean\n exists?: boolean\n id?: string\n}\n"],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Ajv } from '../utils/ajv';
|
|
3
|
-
import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths, SubmitState, Path, EventStateObject, EventReturnWithStateObject, Identifier, FieldProps, FormError, ValueProps } from '../types';
|
|
3
|
+
import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths, SubmitState, Path, EventStateObject, EventReturnWithStateObject, Identifier, FieldProps, FormError, ValueProps, OnChange } from '../types';
|
|
4
4
|
import { Props as ProviderProps } from './Provider';
|
|
5
5
|
type HandleSubmitProps = {
|
|
6
6
|
formElement?: HTMLFormElement;
|
|
@@ -8,7 +8,7 @@ type HandleSubmitProps = {
|
|
|
8
8
|
export type EventListenerCall = {
|
|
9
9
|
path?: Path;
|
|
10
10
|
type?: 'onSubmit';
|
|
11
|
-
callback: () =>
|
|
11
|
+
callback: () => void;
|
|
12
12
|
};
|
|
13
13
|
export type FilterDataHandler<Data> = (data: Data, filter: FilterData) => Partial<Data>;
|
|
14
14
|
export type FilterDataHandlerCallback<R> = (parameters: FilterDataHandlerParameters) => R;
|
|
@@ -27,6 +27,9 @@ export type FilterDataPathConditionParameters<Data = unknown> = {
|
|
|
27
27
|
export type FilterDataPathObject<Data> = Record<Path, FilterDataPathCondition<Data> | boolean | undefined>;
|
|
28
28
|
export type FilterData<Data = unknown> = FilterDataPathObject<Data> | FilterDataHandlerCallback<boolean | undefined>;
|
|
29
29
|
export type TransformData = FilterDataHandlerCallback<unknown>;
|
|
30
|
+
export type HandleSubmitCallback = ({ preventSubmit, }: {
|
|
31
|
+
preventSubmit: () => void;
|
|
32
|
+
}) => void;
|
|
30
33
|
export interface ContextState {
|
|
31
34
|
id?: Identifier;
|
|
32
35
|
hasContext: boolean;
|
|
@@ -55,7 +58,7 @@ export interface ContextState {
|
|
|
55
58
|
handleUnMountField: (path: Path) => void;
|
|
56
59
|
setFormState?: (state: SubmitState) => void;
|
|
57
60
|
setSubmitState?: (state: EventStateObject) => void;
|
|
58
|
-
addOnChangeHandler?: (callback:
|
|
61
|
+
addOnChangeHandler?: (callback: OnChange) => void;
|
|
59
62
|
handleSubmitCall: ({ onSubmit, enableAsyncBehaviour, skipFieldValidation, skipErrorCheck, }: {
|
|
60
63
|
onSubmit: () => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
|
|
61
64
|
enableAsyncBehaviour: boolean;
|
|
@@ -64,10 +67,12 @@ export interface ContextState {
|
|
|
64
67
|
}) => void;
|
|
65
68
|
setFieldEventListener: (path: EventListenerCall['path'], type: EventListenerCall['type'], callback: EventListenerCall['callback']) => void;
|
|
66
69
|
setHasVisibleError?: (path: Path, hasError: boolean) => void;
|
|
67
|
-
setFieldProps?: (path: Path, props:
|
|
68
|
-
setValueProps?: (path: Path, props:
|
|
70
|
+
setFieldProps?: (path: Path, props: unknown) => void;
|
|
71
|
+
setValueProps?: (path: Path, props: unknown) => void;
|
|
72
|
+
setHandleSubmit?: (callback: HandleSubmitCallback) => void;
|
|
69
73
|
fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>;
|
|
70
74
|
valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>;
|
|
75
|
+
mountedFieldPathsRef?: React.MutableRefObject<Path[]>;
|
|
71
76
|
showAllErrors: boolean;
|
|
72
77
|
hasVisibleError: boolean;
|
|
73
78
|
formState: SubmitState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","handleMountField","handleUnMountField","hasErrors","hasFieldState","hasFieldError","setFieldState","setFieldError","ajvInstance","contextErrorMessages","isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n ValueProps,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit'\n callback: () =>
|
|
1
|
+
{"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","handleMountField","handleUnMountField","hasErrors","hasFieldState","hasFieldError","setFieldState","setFieldError","ajvInstance","contextErrorMessages","isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n ValueProps,\n OnChange,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit'\n callback: () => void\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n mutateDataHandler?: (data: any, mutate: TransformData) => any\n filterDataHandler?: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n setFormState?: (state: SubmitState) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setHasVisibleError?: (path: Path, hasError: boolean) => void\n setFieldProps?: (path: Path, props: unknown) => void\n setValueProps?: (path: Path, props: unknown) => void\n setHandleSubmit?: (callback: HandleSubmitCallback) => void\n fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>\n valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>\n mountedFieldPathsRef?: React.MutableRefObject<Path[]>\n showAllErrors: boolean\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n isInsideFormElement?: boolean\n prerenderFieldProps?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AA0InD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,WAAW,EAAE7B,eAAe,CAAC,CAAC;EAC9B8B,oBAAoB,EAAE1B,SAAS;EAC/B2B,mBAAmB,EAAE,KAAK;EAC1BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGlC,KAAK,CAACmC,aAAa,CAAejC,mBAAmB,CAAC;AAEtE,eAAegC,OAAO"}
|
|
@@ -17,6 +17,14 @@ export interface FieldBoundaryContextState {
|
|
|
17
17
|
* Contains the nested field errors.
|
|
18
18
|
*/
|
|
19
19
|
errorsRef?: React.RefObject<unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* Will be set to true when the boundary context error state should be shown.
|
|
22
|
+
*/
|
|
23
|
+
showBoundaryErrors?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* To set the boundary context error state.
|
|
26
|
+
*/
|
|
27
|
+
setShowBoundaryErrors?: (showBoundaryErrors: boolean) => void;
|
|
20
28
|
/**
|
|
21
29
|
* To set the local error state.
|
|
22
30
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldBoundaryContext.js","names":["React","FieldBoundaryContext","createContext","undefined"],"sources":["../../../../../../src/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.ts"],"sourcesContent":["import React from 'react'\nimport { Path } from '../../types'\n\nexport interface FieldBoundaryContextState {\n /**\n * Will be set to true when one or more nested fields are in error state.\n */\n hasError?: boolean\n\n /**\n * Will be set to true when the inherited data context has submit errors and the `hasError` has errors as well.\n */\n hasSubmitError?: boolean\n\n /**\n * Will be set to true when a nested field contains a visible error.\n */\n hasVisibleError?: boolean\n\n /**\n * Contains the nested field errors.\n */\n errorsRef?: React.RefObject<unknown>\n\n /**\n * To set the local error state.\n */\n setFieldError?: (path: Path, error: Error) => void\n}\n\nconst FieldBoundaryContext = React.createContext<\n FieldBoundaryContextState | undefined\n>(undefined)\n\nexport default FieldBoundaryContext\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;
|
|
1
|
+
{"version":3,"file":"FieldBoundaryContext.js","names":["React","FieldBoundaryContext","createContext","undefined"],"sources":["../../../../../../src/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.ts"],"sourcesContent":["import React from 'react'\nimport { Path } from '../../types'\n\nexport interface FieldBoundaryContextState {\n /**\n * Will be set to true when one or more nested fields are in error state.\n */\n hasError?: boolean\n\n /**\n * Will be set to true when the inherited data context has submit errors and the `hasError` has errors as well.\n */\n hasSubmitError?: boolean\n\n /**\n * Will be set to true when a nested field contains a visible error.\n */\n hasVisibleError?: boolean\n\n /**\n * Contains the nested field errors.\n */\n errorsRef?: React.RefObject<unknown>\n\n /**\n * Will be set to true when the boundary context error state should be shown.\n */\n showBoundaryErrors?: boolean\n\n /**\n * To set the boundary context error state.\n */\n setShowBoundaryErrors?: (showBoundaryErrors: boolean) => void\n\n /**\n * To set the local error state.\n */\n setFieldError?: (path: Path, error: Error) => void\n}\n\nconst FieldBoundaryContext = React.createContext<\n FieldBoundaryContextState | undefined\n>(undefined)\n\nexport default FieldBoundaryContext\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAwCzB,MAAMC,oBAAoB,GAAGD,KAAK,CAACE,aAAa,CAE9CC,SAAS,CAAC;AAEZ,eAAeF,oBAAoB"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import React, { useCallback, useContext, useRef } from 'react';
|
|
3
|
+
import React, { useCallback, useContext, useReducer, useRef } from 'react';
|
|
4
4
|
import FieldBoundaryContext from './FieldBoundaryContext';
|
|
5
5
|
import DataContext from '../Context';
|
|
6
6
|
export default function FieldBoundaryProvider({
|
|
7
7
|
children
|
|
8
8
|
}) {
|
|
9
|
+
const [, forceUpdate] = useReducer(() => ({}), {});
|
|
9
10
|
const {
|
|
10
11
|
showAllErrors,
|
|
11
12
|
hasVisibleError
|
|
12
13
|
} = useContext(DataContext);
|
|
13
14
|
const errorsRef = useRef({});
|
|
15
|
+
const showBoundaryErrorsRef = useRef(false);
|
|
14
16
|
const hasError = Object.keys(errorsRef.current || {}).length > 0;
|
|
15
17
|
const hasSubmitError = showAllErrors && hasError;
|
|
16
18
|
const setFieldError = useCallback((path, error) => {
|
|
@@ -21,11 +23,17 @@ export default function FieldBoundaryProvider({
|
|
|
21
23
|
(_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? true : delete _errorsRef$current[path];
|
|
22
24
|
}
|
|
23
25
|
}, []);
|
|
26
|
+
const setShowBoundaryErrors = useCallback(showBoundaryErrors => {
|
|
27
|
+
showBoundaryErrorsRef.current = showBoundaryErrors;
|
|
28
|
+
forceUpdate();
|
|
29
|
+
}, []);
|
|
24
30
|
const context = {
|
|
25
31
|
hasError,
|
|
26
32
|
hasSubmitError,
|
|
27
33
|
hasVisibleError,
|
|
28
34
|
errorsRef,
|
|
35
|
+
showBoundaryErrors: showBoundaryErrorsRef.current,
|
|
36
|
+
setShowBoundaryErrors,
|
|
29
37
|
setFieldError
|
|
30
38
|
};
|
|
31
39
|
return React.createElement(FieldBoundaryContext.Provider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldBoundaryProvider.js","names":["React","useCallback","useContext","useRef","FieldBoundaryContext","DataContext","FieldBoundaryProvider","children","showAllErrors","hasVisibleError","errorsRef","hasError","Object","keys","current","length","hasSubmitError","setFieldError","path","error","_errorsRef$current","context","createElement","Provider","value"],"sources":["../../../../../../src/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react'\nimport FieldBoundaryContext, {\n FieldBoundaryContextState,\n} from './FieldBoundaryContext'\nimport DataContext from '../Context'\nimport { Path } from '../../types'\n\nexport default function FieldBoundaryProvider({ children }) {\n const { showAllErrors, hasVisibleError } = useContext(DataContext)\n\n const errorsRef = useRef<Record<Path, boolean>>({})\n const hasError = Object.keys(errorsRef.current || {}).length > 0\n const hasSubmitError = showAllErrors && hasError\n\n const setFieldError = useCallback((path: Path, error: Error) => {\n if (error) {\n errorsRef.current[path] = !!error\n } else {\n delete errorsRef.current?.[path]\n }\n }, [])\n\n const context: FieldBoundaryContextState = {\n hasError,\n hasSubmitError,\n hasVisibleError,\n errorsRef,\n setFieldError,\n }\n\n return (\n <FieldBoundaryContext.Provider value={context}>\n {children}\n </FieldBoundaryContext.Provider>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"file":"FieldBoundaryProvider.js","names":["React","useCallback","useContext","useReducer","useRef","FieldBoundaryContext","DataContext","FieldBoundaryProvider","children","forceUpdate","showAllErrors","hasVisibleError","errorsRef","showBoundaryErrorsRef","hasError","Object","keys","current","length","hasSubmitError","setFieldError","path","error","_errorsRef$current","setShowBoundaryErrors","showBoundaryErrors","context","createElement","Provider","value"],"sources":["../../../../../../src/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer, useRef } from 'react'\nimport FieldBoundaryContext, {\n FieldBoundaryContextState,\n} from './FieldBoundaryContext'\nimport DataContext from '../Context'\nimport { Path } from '../../types'\n\nexport default function FieldBoundaryProvider({ children }) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { showAllErrors, hasVisibleError } = useContext(DataContext)\n\n const errorsRef = useRef<Record<Path, boolean>>({})\n const showBoundaryErrorsRef = useRef<boolean>(false)\n const hasError = Object.keys(errorsRef.current || {}).length > 0\n const hasSubmitError = showAllErrors && hasError\n\n const setFieldError = useCallback((path: Path, error: Error) => {\n if (error) {\n errorsRef.current[path] = !!error\n } else {\n delete errorsRef.current?.[path]\n }\n }, [])\n\n const setShowBoundaryErrors = useCallback(\n (showBoundaryErrors: boolean) => {\n showBoundaryErrorsRef.current = showBoundaryErrors\n forceUpdate()\n },\n []\n )\n\n const context: FieldBoundaryContextState = {\n hasError,\n hasSubmitError,\n hasVisibleError,\n errorsRef,\n showBoundaryErrors: showBoundaryErrorsRef.current,\n setShowBoundaryErrors,\n setFieldError,\n }\n\n return (\n <FieldBoundaryContext.Provider value={context}>\n {children}\n </FieldBoundaryContext.Provider>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAC1E,OAAOC,oBAAoB,MAEpB,wBAAwB;AAC/B,OAAOC,WAAW,MAAM,YAAY;AAGpC,eAAe,SAASC,qBAAqBA,CAAC;EAAEC;AAAS,CAAC,EAAE;EAC1D,MAAM,GAAGC,WAAW,CAAC,GAAGN,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAM;IAAEO,aAAa;IAAEC;EAAgB,CAAC,GAAGT,UAAU,CAACI,WAAW,CAAC;EAElE,MAAMM,SAAS,GAAGR,MAAM,CAAwB,CAAC,CAAC,CAAC;EACnD,MAAMS,qBAAqB,GAAGT,MAAM,CAAU,KAAK,CAAC;EACpD,MAAMU,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACJ,SAAS,CAACK,OAAO,IAAI,CAAC,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC;EAChE,MAAMC,cAAc,GAAGT,aAAa,IAAII,QAAQ;EAEhD,MAAMM,aAAa,GAAGnB,WAAW,CAAC,CAACoB,IAAU,EAAEC,KAAY,KAAK;IAC9D,IAAIA,KAAK,EAAE;MACTV,SAAS,CAACK,OAAO,CAACI,IAAI,CAAC,GAAG,CAAC,CAACC,KAAK;IACnC,CAAC,MAAM;MAAA,IAAAC,kBAAA;MACL,CAAAA,kBAAA,GAAOX,SAAS,CAACK,OAAO,cAAAM,kBAAA,qBAAxB,OAAOA,kBAAA,CAAoBF,IAAI,CAAC;IAClC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,qBAAqB,GAAGvB,WAAW,CACtCwB,kBAA2B,IAAK;IAC/BZ,qBAAqB,CAACI,OAAO,GAAGQ,kBAAkB;IAClDhB,WAAW,CAAC,CAAC;EACf,CAAC,EACD,EACF,CAAC;EAED,MAAMiB,OAAkC,GAAG;IACzCZ,QAAQ;IACRK,cAAc;IACdR,eAAe;IACfC,SAAS;IACTa,kBAAkB,EAAEZ,qBAAqB,CAACI,OAAO;IACjDO,qBAAqB;IACrBJ;EACF,CAAC;EAED,OACEpB,KAAA,CAAA2B,aAAA,CAACtB,oBAAoB,CAACuB,QAAQ;IAACC,KAAK,EAAEH;EAAQ,GAC3ClB,QAC4B,CAAC;AAEpC"}
|
|
@@ -35,13 +35,9 @@ export interface Props<Data extends JsonObject> extends IsolationProviderProps<D
|
|
|
35
35
|
*/
|
|
36
36
|
errorMessages?: CustomErrorMessagesWithPaths;
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.
|
|
39
39
|
*/
|
|
40
40
|
filterSubmitData?: FilterData;
|
|
41
|
-
/**
|
|
42
|
-
* @deprecated Use `filterSubmitData` instead
|
|
43
|
-
*/
|
|
44
|
-
filterData?: FilterData;
|
|
45
41
|
/**
|
|
46
42
|
* Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).
|
|
47
43
|
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
|
-
const _excluded = ["id", "globalStatusId", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onCommit", "onClear", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "transformIn", "transformOut", "filterSubmitData", "
|
|
5
|
+
const _excluded = ["id", "globalStatusId", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onCommit", "onClear", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "transformIn", "transformOut", "filterSubmitData", "locale", "translations", "required", "errorMessages", "isolate", "children"];
|
|
6
6
|
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; }
|
|
7
7
|
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; }
|
|
8
8
|
import React, { useRef, useMemo, useCallback, useReducer, useEffect, useContext } from 'react';
|
|
@@ -43,7 +43,6 @@ export default function Provider(props) {
|
|
|
43
43
|
transformIn,
|
|
44
44
|
transformOut,
|
|
45
45
|
filterSubmitData,
|
|
46
|
-
filterData,
|
|
47
46
|
locale,
|
|
48
47
|
translations,
|
|
49
48
|
required,
|
|
@@ -238,12 +237,15 @@ export default function Provider(props) {
|
|
|
238
237
|
}
|
|
239
238
|
return data;
|
|
240
239
|
}, []);
|
|
241
|
-
const filterDataHandler = useCallback((data, filter
|
|
240
|
+
const filterDataHandler = useCallback((data, filter) => {
|
|
242
241
|
if (filter) {
|
|
243
242
|
return mutateDataHandler(data, filter, true);
|
|
244
243
|
}
|
|
245
244
|
return data;
|
|
246
|
-
}, [
|
|
245
|
+
}, [mutateDataHandler]);
|
|
246
|
+
const filterData = useCallback((filter, data = internalDataRef.current) => {
|
|
247
|
+
return filterDataHandler(data, filter);
|
|
248
|
+
}, [filterDataHandler]);
|
|
247
249
|
const fieldPropsRef = useRef({});
|
|
248
250
|
const valuePropsRef = useRef({});
|
|
249
251
|
const setFieldProps = useCallback((path, props) => {
|
|
@@ -325,11 +327,11 @@ export default function Provider(props) {
|
|
|
325
327
|
setShowAllErrors,
|
|
326
328
|
setSubmitState
|
|
327
329
|
});
|
|
328
|
-
if (
|
|
330
|
+
if (filterSubmitData) {
|
|
329
331
|
rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
|
|
330
332
|
}
|
|
331
333
|
}
|
|
332
|
-
}, [extendAttachment,
|
|
334
|
+
}, [extendAttachment, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setShowAllErrors, setSubmitState]);
|
|
333
335
|
const storeInSession = useMemo(() => {
|
|
334
336
|
return debounce(() => {
|
|
335
337
|
var _window$sessionStorag2;
|
|
@@ -357,7 +359,7 @@ export default function Provider(props) {
|
|
|
357
359
|
internalDataRef.current = newData;
|
|
358
360
|
if (id) {
|
|
359
361
|
extendSharedData === null || extendSharedData === void 0 ? void 0 : extendSharedData(newData);
|
|
360
|
-
if (
|
|
362
|
+
if (filterSubmitData) {
|
|
361
363
|
rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
|
|
362
364
|
}
|
|
363
365
|
}
|
|
@@ -365,7 +367,7 @@ export default function Provider(props) {
|
|
|
365
367
|
storeInSession();
|
|
366
368
|
}
|
|
367
369
|
forceUpdate();
|
|
368
|
-
}, [extendSharedData,
|
|
370
|
+
}, [extendSharedData, filterSubmitData, id, mutateDataHandler, rerenderUseDataHook, sessionStorageId, storeInSession, transformIn]);
|
|
369
371
|
const setData = useCallback(newData => {
|
|
370
372
|
internalDataRef.current = newData;
|
|
371
373
|
forceUpdate();
|
|
@@ -391,19 +393,22 @@ export default function Provider(props) {
|
|
|
391
393
|
showAllErrorsRef.current = false;
|
|
392
394
|
validateData();
|
|
393
395
|
const data = internalDataRef.current;
|
|
396
|
+
const options = {
|
|
397
|
+
filterData
|
|
398
|
+
};
|
|
394
399
|
const transformedData = transformOut ? mutateDataHandler(data, transformOut) : data;
|
|
395
400
|
for (const cb of changeHandlerStackRef.current) {
|
|
396
401
|
if (isAsync(onChange)) {
|
|
397
|
-
await cb(transformedData);
|
|
402
|
+
await cb(transformedData, options);
|
|
398
403
|
} else {
|
|
399
|
-
cb(transformedData);
|
|
404
|
+
cb(transformedData, options);
|
|
400
405
|
}
|
|
401
406
|
}
|
|
402
407
|
if (isAsync(onChange)) {
|
|
403
|
-
return await onChange(transformedData);
|
|
408
|
+
return await onChange(transformedData, options);
|
|
404
409
|
}
|
|
405
|
-
return onChange === null || onChange === void 0 ? void 0 : onChange(transformedData);
|
|
406
|
-
}, [handlePathChangeUnvalidated, mutateDataHandler, onChange, transformOut, validateData]);
|
|
410
|
+
return onChange === null || onChange === void 0 ? void 0 : onChange(transformedData, options);
|
|
411
|
+
}, [filterData, handlePathChangeUnvalidated, mutateDataHandler, onChange, transformOut, validateData]);
|
|
407
412
|
const changeHandlerStackRef = useRef([]);
|
|
408
413
|
const addOnChangeHandler = useCallback(callback => {
|
|
409
414
|
const exists = changeHandlerStackRef.current.some(cb => {
|
|
@@ -470,13 +475,7 @@ export default function Provider(props) {
|
|
|
470
475
|
let result;
|
|
471
476
|
try {
|
|
472
477
|
if (isolate) {
|
|
473
|
-
|
|
474
|
-
mountedFieldPathsRef.current.forEach(path => {
|
|
475
|
-
if (pointer.has(internalDataRef.current, path)) {
|
|
476
|
-
pointer.set(mounterData, path, pointer.get(internalDataRef.current, path));
|
|
477
|
-
}
|
|
478
|
-
});
|
|
479
|
-
result = await (onCommit === null || onCommit === void 0 ? void 0 : onCommit(mounterData, {
|
|
478
|
+
result = await (onCommit === null || onCommit === void 0 ? void 0 : onCommit(internalDataRef.current, {
|
|
480
479
|
clearData
|
|
481
480
|
}));
|
|
482
481
|
} else {
|
|
@@ -520,15 +519,36 @@ export default function Provider(props) {
|
|
|
520
519
|
}
|
|
521
520
|
return internalDataRef.current;
|
|
522
521
|
}, [clearData, hasErrors, hasFieldState, hasFieldWithAsyncValidator, isolate, onCommit, onSubmitRequest, setFormState, setShowAllErrors, setSubmitState]);
|
|
522
|
+
const handleSubmitListenersRef = useRef([]);
|
|
523
|
+
const setHandleSubmit = useCallback(callback => {
|
|
524
|
+
if (!handleSubmitListenersRef.current.includes(callback)) {
|
|
525
|
+
handleSubmitListenersRef.current.push(callback);
|
|
526
|
+
}
|
|
527
|
+
}, []);
|
|
528
|
+
const handleSubmitListeners = useCallback(() => {
|
|
529
|
+
let stop = false;
|
|
530
|
+
const preventSubmit = () => stop = true;
|
|
531
|
+
handleSubmitListenersRef.current.forEach(cb => {
|
|
532
|
+
cb({
|
|
533
|
+
preventSubmit
|
|
534
|
+
});
|
|
535
|
+
});
|
|
536
|
+
return stop;
|
|
537
|
+
}, []);
|
|
523
538
|
const handleSubmit = useCallback(async ({
|
|
524
539
|
formElement = null
|
|
525
540
|
} = {}) => {
|
|
526
541
|
handleSubmitCall({
|
|
527
542
|
enableAsyncBehaviour: isAsync(onSubmit),
|
|
528
543
|
onSubmit: async () => {
|
|
544
|
+
if (handleSubmitListeners()) {
|
|
545
|
+
return;
|
|
546
|
+
}
|
|
529
547
|
const data = internalDataRef.current;
|
|
530
|
-
const
|
|
531
|
-
const
|
|
548
|
+
const mutatedData = transformOut ? mutateDataHandler(data, transformOut) : data;
|
|
549
|
+
const filteredData = filterSubmitData ? filterDataHandler(mutatedData, filterSubmitData) : mutatedData;
|
|
550
|
+
const options = {
|
|
551
|
+
filterData,
|
|
532
552
|
resetForm: () => {
|
|
533
553
|
var _formElement$reset;
|
|
534
554
|
formElement === null || formElement === void 0 ? void 0 : (_formElement$reset = formElement.reset) === null || _formElement$reset === void 0 ? void 0 : _formElement$reset.call(formElement);
|
|
@@ -543,9 +563,9 @@ export default function Provider(props) {
|
|
|
543
563
|
};
|
|
544
564
|
let result = undefined;
|
|
545
565
|
if (isAsync(onSubmit)) {
|
|
546
|
-
result = await onSubmit(filteredData,
|
|
566
|
+
result = await onSubmit(filteredData, options);
|
|
547
567
|
} else {
|
|
548
|
-
result = onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(filteredData,
|
|
568
|
+
result = onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(filteredData, options);
|
|
549
569
|
}
|
|
550
570
|
const completeResult = await (onSubmitComplete === null || onSubmitComplete === void 0 ? void 0 : onSubmitComplete(filteredData, result));
|
|
551
571
|
if (completeResult) {
|
|
@@ -557,7 +577,7 @@ export default function Provider(props) {
|
|
|
557
577
|
return result;
|
|
558
578
|
}
|
|
559
579
|
});
|
|
560
|
-
}, [clearData, filterDataHandler, handleSubmitCall, mutateDataHandler, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit, sessionStorageId, transformOut]);
|
|
580
|
+
}, [clearData, filterData, filterDataHandler, filterSubmitData, handleSubmitCall, handleSubmitListeners, mutateDataHandler, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit, sessionStorageId, transformOut]);
|
|
561
581
|
const fieldEventListenersRef = useRef([]);
|
|
562
582
|
const setFieldEventListener = useCallback((path, type, callback) => {
|
|
563
583
|
fieldEventListenersRef.current = fieldEventListenersRef.current.filter(({
|
|
@@ -638,6 +658,7 @@ export default function Provider(props) {
|
|
|
638
658
|
setData,
|
|
639
659
|
filterDataHandler,
|
|
640
660
|
addOnChangeHandler,
|
|
661
|
+
setHandleSubmit,
|
|
641
662
|
scrollToTop,
|
|
642
663
|
schema,
|
|
643
664
|
disabled,
|
|
@@ -651,6 +672,7 @@ export default function Provider(props) {
|
|
|
651
672
|
hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,
|
|
652
673
|
fieldPropsRef,
|
|
653
674
|
valuePropsRef,
|
|
675
|
+
mountedFieldPathsRef,
|
|
654
676
|
ajvInstance: ajvRef.current,
|
|
655
677
|
id,
|
|
656
678
|
data: internalDataRef.current,
|