@dnb/eufemia 10.69.0 → 10.70.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 +47 -0
- package/cjs/components/aria-live/AriaLiveDocs.d.ts +2 -0
- package/cjs/components/aria-live/AriaLiveDocs.js +54 -0
- package/cjs/components/aria-live/AriaLiveDocs.js.map +1 -0
- package/cjs/components/avatar/Avatar.d.ts +10 -0
- package/cjs/components/avatar/Avatar.js +17 -3
- package/cjs/components/avatar/Avatar.js.map +1 -1
- package/cjs/components/avatar/AvatarDocs.d.ts +3 -0
- package/cjs/components/avatar/AvatarDocs.js +101 -0
- package/cjs/components/avatar/AvatarDocs.js.map +1 -0
- package/cjs/components/avatar/AvatarGroup.d.ts +10 -0
- package/cjs/components/avatar/AvatarGroup.js +17 -5
- package/cjs/components/avatar/AvatarGroup.js.map +1 -1
- package/cjs/components/avatar/style/dnb-avatar.css +8 -0
- package/cjs/components/avatar/style/dnb-avatar.min.css +1 -1
- package/cjs/components/avatar/style/dnb-avatar.scss +9 -0
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
- package/cjs/components/badge/BadgeDocs.d.ts +2 -0
- package/cjs/components/badge/BadgeDocs.js +54 -0
- package/cjs/components/badge/BadgeDocs.js.map +1 -0
- package/cjs/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
- package/cjs/components/breadcrumb/BreadcrumbDocs.js +125 -0
- package/cjs/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
- package/cjs/components/button/Button.d.ts +0 -3
- package/cjs/components/button/ButtonDocs.d.ts +1 -0
- package/cjs/components/button/ButtonDocs.js +8 -1
- package/cjs/components/button/ButtonDocs.js.map +1 -1
- package/cjs/components/date-picker/DatePickerAddon.js +1 -3
- package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalc.d.ts +13 -0
- package/cjs/components/date-picker/DatePickerCalc.js +44 -0
- package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendar.js +13 -11
- package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/cjs/components/date-picker/DatePickerContext.d.ts +1 -1
- package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +2 -2
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/hooks/useViews.d.ts +2 -4
- package/cjs/components/date-picker/hooks/useViews.js +37 -23
- package/cjs/components/date-picker/hooks/useViews.js.map +1 -1
- package/cjs/components/dialog/DialogDocs.d.ts +1 -0
- package/cjs/components/dialog/DialogDocs.js +13 -1
- package/cjs/components/dialog/DialogDocs.js.map +1 -1
- package/cjs/components/drawer/DrawerDocs.d.ts +2 -0
- package/cjs/components/drawer/DrawerDocs.js +69 -0
- package/cjs/components/drawer/DrawerDocs.js.map +1 -0
- package/cjs/components/dropdown/DropdownDocs.d.ts +2 -0
- package/cjs/components/dropdown/DropdownDocs.js +29 -0
- package/cjs/components/dropdown/DropdownDocs.js.map +1 -0
- package/cjs/components/form-label/FormLabelDocs.d.ts +2 -0
- package/cjs/components/form-label/FormLabelDocs.js +59 -0
- package/cjs/components/form-label/FormLabelDocs.js.map +1 -0
- package/cjs/components/form-row/FormRow.d.ts +45 -0
- package/cjs/components/form-row/FormRowDocs.d.ts +2 -0
- package/cjs/components/form-row/FormRowDocs.js +89 -0
- package/cjs/components/form-row/FormRowDocs.js.map +1 -0
- package/cjs/components/form-set/FormSet.d.ts +18 -0
- package/cjs/components/form-set/FormSetDocs.d.ts +3 -0
- package/cjs/components/form-set/FormSetDocs.js +56 -0
- package/cjs/components/form-set/FormSetDocs.js.map +1 -0
- package/cjs/components/form-status/FormStatus.d.ts +18 -18
- package/cjs/components/form-status/FormStatusDocs.d.ts +2 -0
- package/cjs/components/form-status/FormStatusDocs.js +89 -0
- package/cjs/components/form-status/FormStatusDocs.js.map +1 -0
- package/cjs/components/global-error/GlobalError.d.ts +13 -1
- package/cjs/components/global-error/GlobalError.js +15 -6
- package/cjs/components/global-error/GlobalError.js.map +1 -1
- package/cjs/components/global-error/GlobalErrorDocs.d.ts +2 -0
- package/cjs/components/global-error/GlobalErrorDocs.js +74 -0
- package/cjs/components/global-error/GlobalErrorDocs.js.map +1 -0
- package/cjs/components/global-status/GlobalStatus.d.ts +37 -58
- package/cjs/components/global-status/GlobalStatusController.d.ts +0 -9
- package/cjs/components/global-status/GlobalStatusDocs.d.ts +6 -0
- package/cjs/components/global-status/GlobalStatusDocs.js +192 -0
- package/cjs/components/global-status/GlobalStatusDocs.js.map +1 -0
- package/cjs/components/heading/HeadingDocs.d.ts +2 -0
- package/cjs/components/heading/HeadingDocs.js +79 -0
- package/cjs/components/heading/HeadingDocs.js.map +1 -0
- package/cjs/components/help-button/HelpButtonDocs.d.ts +3 -0
- package/cjs/components/help-button/HelpButtonDocs.js +46 -0
- package/cjs/components/help-button/HelpButtonDocs.js.map +1 -0
- package/cjs/components/icon/IconDocs.d.ts +2 -0
- package/cjs/components/icon/IconDocs.js +59 -0
- package/cjs/components/icon/IconDocs.js.map +1 -0
- package/cjs/components/icon/IconPrimaryDocs.d.ts +2 -0
- package/cjs/components/icon/IconPrimaryDocs.js +24 -0
- package/cjs/components/icon/IconPrimaryDocs.js.map +1 -0
- package/cjs/components/info-card/InfoCard.d.ts +6 -1
- package/cjs/components/info-card/InfoCard.js +4 -3
- package/cjs/components/info-card/InfoCard.js.map +1 -1
- package/cjs/components/info-card/InfoCardDocs.d.ts +3 -0
- package/cjs/components/info-card/InfoCardDocs.js +106 -0
- package/cjs/components/info-card/InfoCardDocs.js.map +1 -0
- package/cjs/components/input/Input.d.ts +0 -21
- package/cjs/components/input/InputDocs.d.ts +1 -0
- package/cjs/components/input/InputDocs.js +33 -1
- package/cjs/components/input/InputDocs.js.map +1 -1
- package/cjs/components/input-masked/InputMasked.d.ts +0 -12
- package/cjs/components/input-masked/InputMaskedDocs.d.ts +1 -0
- package/cjs/components/input-masked/InputMaskedDocs.js +13 -1
- package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/cjs/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
- package/cjs/components/input-masked/MultiInputMaskedDocs.js +24 -0
- package/cjs/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
- package/cjs/components/pagination/Pagination.d.ts +35 -33
- package/cjs/components/pagination/Pagination.js +2 -0
- package/cjs/components/pagination/Pagination.js.map +1 -1
- package/cjs/components/pagination/PaginationDocs.d.ts +3 -0
- package/cjs/components/pagination/PaginationDocs.js +191 -0
- package/cjs/components/pagination/PaginationDocs.js.map +1 -0
- package/cjs/components/pagination/PaginationHelpers.d.ts +0 -3
- package/cjs/components/pagination/PaginationInfinity.d.ts +0 -3
- package/cjs/components/pagination/PaginationProvider.js +1 -1
- package/cjs/components/pagination/PaginationProvider.js.map +1 -1
- package/cjs/components/radio/Radio.d.ts +12 -15
- package/cjs/components/radio/RadioDocs.d.ts +5 -0
- package/cjs/components/radio/RadioDocs.js +145 -0
- package/cjs/components/radio/RadioDocs.js.map +1 -0
- package/cjs/components/radio/RadioGroup.d.ts +0 -30
- package/cjs/components/skeleton/SkeletonDocs.d.ts +2 -0
- package/cjs/components/skeleton/SkeletonDocs.js +44 -0
- package/cjs/components/skeleton/SkeletonDocs.js.map +1 -0
- package/cjs/components/skeleton/SkeletonHelper.d.ts +0 -6
- package/cjs/components/skip-content/SkipContentDocs.d.ts +2 -0
- package/cjs/components/skip-content/SkipContentDocs.js +29 -0
- package/cjs/components/skip-content/SkipContentDocs.js.map +1 -0
- package/cjs/components/tabs/Tabs.js +2 -2
- package/cjs/components/tabs/Tabs.js.map +1 -1
- package/cjs/components/tag/TagDocs.d.ts +4 -0
- package/cjs/components/tag/TagDocs.js +93 -0
- package/cjs/components/tag/TagDocs.js.map +1 -0
- package/cjs/components/textarea/Textarea.d.ts +0 -12
- package/cjs/components/textarea/TextareaDocs.d.ts +1 -0
- package/cjs/components/textarea/TextareaDocs.js +23 -1
- package/cjs/components/textarea/TextareaDocs.js.map +1 -1
- package/cjs/components/timeline/TimelineDocs.d.ts +3 -0
- package/cjs/components/timeline/TimelineDocs.js +66 -0
- package/cjs/components/timeline/TimelineDocs.js.map +1 -0
- package/cjs/components/toggle-button/ToggleButton.d.ts +0 -3
- package/cjs/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
- package/cjs/components/toggle-button/ToggleButtonDocs.js +8 -1
- package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
- package/cjs/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
- package/cjs/components/toggle-button/ToggleButtonGroupDocs.js +8 -1
- package/cjs/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
- package/cjs/components/tooltip/TooltipDocs.d.ts +2 -0
- package/cjs/components/tooltip/TooltipDocs.js +79 -0
- package/cjs/components/tooltip/TooltipDocs.js.map +1 -0
- package/cjs/components/upload/Upload.js +6 -4
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/UploadDocs.js +5 -0
- package/cjs/components/upload/UploadDocs.js.map +1 -1
- package/cjs/components/upload/UploadFileList.js +5 -4
- package/cjs/components/upload/UploadFileList.js.map +1 -1
- package/cjs/components/upload/UploadFileListCell.d.ts +6 -1
- package/cjs/components/upload/UploadFileListCell.js +8 -5
- package/cjs/components/upload/UploadFileListCell.js.map +1 -1
- package/cjs/components/upload/types.d.ts +5 -0
- package/cjs/components/upload/types.js.map +1 -1
- package/cjs/components/upload/useUpload.d.ts +1 -0
- package/cjs/components/upload/useUpload.js +9 -2
- package/cjs/components/upload/useUpload.js.map +1 -1
- package/cjs/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
- package/cjs/components/visually-hidden/VisuallyHiddenDocs.js +19 -0
- package/cjs/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
- package/cjs/extensions/forms/DataContext/Context.d.ts +7 -6
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +63 -75
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -0
- package/cjs/extensions/forms/Field/Date/Date.js +8 -8
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Password/Password.js +2 -1
- package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
- package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js +10 -2
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +3 -4
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
- package/cjs/extensions/forms/Form/Visibility/Visibility.js +1 -0
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js +11 -15
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Value/Date/Date.d.ts +0 -6
- package/cjs/extensions/forms/Value/Date/Date.js +14 -38
- package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +36 -35
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +106 -59
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
- package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js +66 -0
- package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/types.d.ts +9 -6
- package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js +65 -22
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js +2 -2
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js +10 -18
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +16 -9
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.js +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/cjs/extensions/payment-card/PaymentCard.d.ts +7 -7
- package/cjs/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
- package/cjs/extensions/payment-card/PaymentCardDocs.js +205 -0
- package/cjs/extensions/payment-card/PaymentCardDocs.js.map +1 -0
- package/cjs/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
- package/cjs/fragments/scroll-view/ScrollViewDocs.js +19 -0
- package/cjs/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
- package/cjs/fragments/text-counter/TextCounterDocs.d.ts +2 -0
- package/cjs/fragments/text-counter/TextCounterDocs.js +29 -0
- package/cjs/fragments/text-counter/TextCounterDocs.js.map +1 -0
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/MediaQueryDocs.d.ts +2 -0
- package/cjs/shared/MediaQueryDocs.js +34 -0
- package/cjs/shared/MediaQueryDocs.js.map +1 -0
- package/cjs/shared/ThemeDocs.d.ts +2 -0
- package/cjs/shared/ThemeDocs.js +39 -0
- package/cjs/shared/ThemeDocs.js.map +1 -0
- package/cjs/shared/component-helper.js +1 -1
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/locales/en-GB.d.ts +1 -0
- package/cjs/shared/locales/en-GB.js +1 -0
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +1 -0
- package/cjs/shared/locales/index.d.ts +2 -0
- package/cjs/shared/locales/nb-NO.d.ts +1 -0
- package/cjs/shared/locales/nb-NO.js +1 -0
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/locales/sv-SE.d.ts +1 -0
- package/cjs/shared/locales/sv-SE.js +1 -0
- package/cjs/shared/locales/sv-SE.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 +8 -0
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +13 -5
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +13 -5
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-components.css +13 -5
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/components/aria-live/AriaLiveDocs.d.ts +2 -0
- package/components/aria-live/AriaLiveDocs.js +48 -0
- package/components/aria-live/AriaLiveDocs.js.map +1 -0
- package/components/avatar/Avatar.d.ts +10 -0
- package/components/avatar/Avatar.js +17 -3
- package/components/avatar/Avatar.js.map +1 -1
- package/components/avatar/AvatarDocs.d.ts +3 -0
- package/components/avatar/AvatarDocs.js +95 -0
- package/components/avatar/AvatarDocs.js.map +1 -0
- package/components/avatar/AvatarGroup.d.ts +10 -0
- package/components/avatar/AvatarGroup.js +17 -5
- package/components/avatar/AvatarGroup.js.map +1 -1
- package/components/avatar/style/dnb-avatar.css +8 -0
- package/components/avatar/style/dnb-avatar.min.css +1 -1
- package/components/avatar/style/dnb-avatar.scss +9 -0
- package/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
- package/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
- package/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
- package/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
- package/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
- package/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
- package/components/badge/BadgeDocs.d.ts +2 -0
- package/components/badge/BadgeDocs.js +48 -0
- package/components/badge/BadgeDocs.js.map +1 -0
- package/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
- package/components/breadcrumb/BreadcrumbDocs.js +119 -0
- package/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
- package/components/button/Button.d.ts +0 -3
- package/components/button/ButtonDocs.d.ts +1 -0
- package/components/button/ButtonDocs.js +7 -0
- package/components/button/ButtonDocs.js.map +1 -1
- package/components/date-picker/DatePickerAddon.js +1 -3
- package/components/date-picker/DatePickerAddon.js.map +1 -1
- package/components/date-picker/DatePickerCalc.d.ts +13 -0
- package/components/date-picker/DatePickerCalc.js +41 -0
- package/components/date-picker/DatePickerCalc.js.map +1 -1
- package/components/date-picker/DatePickerCalendar.js +13 -11
- package/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/components/date-picker/DatePickerContext.d.ts +1 -1
- package/components/date-picker/DatePickerContext.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +2 -2
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/hooks/useViews.d.ts +2 -4
- package/components/date-picker/hooks/useViews.js +38 -24
- package/components/date-picker/hooks/useViews.js.map +1 -1
- package/components/dialog/DialogDocs.d.ts +1 -0
- package/components/dialog/DialogDocs.js +12 -0
- package/components/dialog/DialogDocs.js.map +1 -1
- package/components/drawer/DrawerDocs.d.ts +2 -0
- package/components/drawer/DrawerDocs.js +63 -0
- package/components/drawer/DrawerDocs.js.map +1 -0
- package/components/dropdown/DropdownDocs.d.ts +2 -0
- package/components/dropdown/DropdownDocs.js +23 -0
- package/components/dropdown/DropdownDocs.js.map +1 -0
- package/components/form-label/FormLabelDocs.d.ts +2 -0
- package/components/form-label/FormLabelDocs.js +53 -0
- package/components/form-label/FormLabelDocs.js.map +1 -0
- package/components/form-row/FormRow.d.ts +45 -0
- package/components/form-row/FormRowDocs.d.ts +2 -0
- package/components/form-row/FormRowDocs.js +83 -0
- package/components/form-row/FormRowDocs.js.map +1 -0
- package/components/form-set/FormSet.d.ts +18 -0
- package/components/form-set/FormSetDocs.d.ts +3 -0
- package/components/form-set/FormSetDocs.js +50 -0
- package/components/form-set/FormSetDocs.js.map +1 -0
- package/components/form-status/FormStatus.d.ts +18 -18
- package/components/form-status/FormStatusDocs.d.ts +2 -0
- package/components/form-status/FormStatusDocs.js +83 -0
- package/components/form-status/FormStatusDocs.js.map +1 -0
- package/components/global-error/GlobalError.d.ts +13 -1
- package/components/global-error/GlobalError.js +15 -6
- package/components/global-error/GlobalError.js.map +1 -1
- package/components/global-error/GlobalErrorDocs.d.ts +2 -0
- package/components/global-error/GlobalErrorDocs.js +68 -0
- package/components/global-error/GlobalErrorDocs.js.map +1 -0
- package/components/global-status/GlobalStatus.d.ts +37 -58
- package/components/global-status/GlobalStatusController.d.ts +0 -9
- package/components/global-status/GlobalStatusDocs.d.ts +6 -0
- package/components/global-status/GlobalStatusDocs.js +186 -0
- package/components/global-status/GlobalStatusDocs.js.map +1 -0
- package/components/heading/HeadingDocs.d.ts +2 -0
- package/components/heading/HeadingDocs.js +73 -0
- package/components/heading/HeadingDocs.js.map +1 -0
- package/components/help-button/HelpButtonDocs.d.ts +3 -0
- package/components/help-button/HelpButtonDocs.js +40 -0
- package/components/help-button/HelpButtonDocs.js.map +1 -0
- package/components/icon/IconDocs.d.ts +2 -0
- package/components/icon/IconDocs.js +53 -0
- package/components/icon/IconDocs.js.map +1 -0
- package/components/icon/IconPrimaryDocs.d.ts +2 -0
- package/components/icon/IconPrimaryDocs.js +18 -0
- package/components/icon/IconPrimaryDocs.js.map +1 -0
- package/components/info-card/InfoCard.d.ts +6 -1
- package/components/info-card/InfoCard.js +4 -3
- package/components/info-card/InfoCard.js.map +1 -1
- package/components/info-card/InfoCardDocs.d.ts +3 -0
- package/components/info-card/InfoCardDocs.js +100 -0
- package/components/info-card/InfoCardDocs.js.map +1 -0
- package/components/input/Input.d.ts +0 -21
- package/components/input/InputDocs.d.ts +1 -0
- package/components/input/InputDocs.js +32 -0
- package/components/input/InputDocs.js.map +1 -1
- package/components/input-masked/InputMasked.d.ts +0 -12
- package/components/input-masked/InputMaskedDocs.d.ts +1 -0
- package/components/input-masked/InputMaskedDocs.js +12 -0
- package/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
- package/components/input-masked/MultiInputMaskedDocs.js +18 -0
- package/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
- package/components/pagination/Pagination.d.ts +35 -33
- package/components/pagination/Pagination.js +2 -0
- package/components/pagination/Pagination.js.map +1 -1
- package/components/pagination/PaginationDocs.d.ts +3 -0
- package/components/pagination/PaginationDocs.js +185 -0
- package/components/pagination/PaginationDocs.js.map +1 -0
- package/components/pagination/PaginationHelpers.d.ts +0 -3
- package/components/pagination/PaginationInfinity.d.ts +0 -3
- package/components/pagination/PaginationProvider.js +1 -1
- package/components/pagination/PaginationProvider.js.map +1 -1
- package/components/radio/Radio.d.ts +12 -15
- package/components/radio/RadioDocs.d.ts +5 -0
- package/components/radio/RadioDocs.js +139 -0
- package/components/radio/RadioDocs.js.map +1 -0
- package/components/radio/RadioGroup.d.ts +0 -30
- package/components/skeleton/SkeletonDocs.d.ts +2 -0
- package/components/skeleton/SkeletonDocs.js +38 -0
- package/components/skeleton/SkeletonDocs.js.map +1 -0
- package/components/skeleton/SkeletonHelper.d.ts +0 -6
- package/components/skip-content/SkipContentDocs.d.ts +2 -0
- package/components/skip-content/SkipContentDocs.js +23 -0
- package/components/skip-content/SkipContentDocs.js.map +1 -0
- package/components/tabs/Tabs.js +2 -2
- package/components/tabs/Tabs.js.map +1 -1
- package/components/tag/TagDocs.d.ts +4 -0
- package/components/tag/TagDocs.js +87 -0
- package/components/tag/TagDocs.js.map +1 -0
- package/components/textarea/Textarea.d.ts +0 -12
- package/components/textarea/TextareaDocs.d.ts +1 -0
- package/components/textarea/TextareaDocs.js +22 -0
- package/components/textarea/TextareaDocs.js.map +1 -1
- package/components/timeline/TimelineDocs.d.ts +3 -0
- package/components/timeline/TimelineDocs.js +60 -0
- package/components/timeline/TimelineDocs.js.map +1 -0
- package/components/toggle-button/ToggleButton.d.ts +0 -3
- package/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
- package/components/toggle-button/ToggleButtonDocs.js +7 -0
- package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
- package/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
- package/components/toggle-button/ToggleButtonGroupDocs.js +7 -0
- package/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
- package/components/tooltip/TooltipDocs.d.ts +2 -0
- package/components/tooltip/TooltipDocs.js +73 -0
- package/components/tooltip/TooltipDocs.js.map +1 -0
- package/components/upload/Upload.js +6 -4
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/UploadDocs.js +5 -0
- package/components/upload/UploadDocs.js.map +1 -1
- package/components/upload/UploadFileList.js +5 -4
- package/components/upload/UploadFileList.js.map +1 -1
- package/components/upload/UploadFileListCell.d.ts +6 -1
- package/components/upload/UploadFileListCell.js +8 -5
- package/components/upload/UploadFileListCell.js.map +1 -1
- package/components/upload/types.d.ts +5 -0
- package/components/upload/types.js.map +1 -1
- package/components/upload/useUpload.d.ts +1 -0
- package/components/upload/useUpload.js +7 -1
- package/components/upload/useUpload.js.map +1 -1
- package/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
- package/components/visually-hidden/VisuallyHiddenDocs.js +13 -0
- package/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
- package/es/components/aria-live/AriaLiveDocs.d.ts +2 -0
- package/es/components/aria-live/AriaLiveDocs.js +48 -0
- package/es/components/aria-live/AriaLiveDocs.js.map +1 -0
- package/es/components/avatar/Avatar.d.ts +10 -0
- package/es/components/avatar/Avatar.js +17 -3
- package/es/components/avatar/Avatar.js.map +1 -1
- package/es/components/avatar/AvatarDocs.d.ts +3 -0
- package/es/components/avatar/AvatarDocs.js +95 -0
- package/es/components/avatar/AvatarDocs.js.map +1 -0
- package/es/components/avatar/AvatarGroup.d.ts +10 -0
- package/es/components/avatar/AvatarGroup.js +17 -5
- package/es/components/avatar/AvatarGroup.js.map +1 -1
- package/es/components/avatar/style/dnb-avatar.css +8 -0
- package/es/components/avatar/style/dnb-avatar.min.css +1 -1
- package/es/components/avatar/style/dnb-avatar.scss +9 -0
- package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
- package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
- package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
- package/es/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
- package/es/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
- package/es/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
- package/es/components/badge/BadgeDocs.d.ts +2 -0
- package/es/components/badge/BadgeDocs.js +48 -0
- package/es/components/badge/BadgeDocs.js.map +1 -0
- package/es/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
- package/es/components/breadcrumb/BreadcrumbDocs.js +119 -0
- package/es/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
- package/es/components/button/Button.d.ts +0 -3
- package/es/components/button/ButtonDocs.d.ts +1 -0
- package/es/components/button/ButtonDocs.js +7 -0
- package/es/components/button/ButtonDocs.js.map +1 -1
- package/es/components/date-picker/DatePickerAddon.js +1 -3
- package/es/components/date-picker/DatePickerAddon.js.map +1 -1
- package/es/components/date-picker/DatePickerCalc.d.ts +13 -0
- package/es/components/date-picker/DatePickerCalc.js +39 -0
- package/es/components/date-picker/DatePickerCalc.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendar.js +13 -11
- package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/es/components/date-picker/DatePickerContext.d.ts +1 -1
- package/es/components/date-picker/DatePickerContext.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +2 -2
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/hooks/useViews.d.ts +2 -4
- package/es/components/date-picker/hooks/useViews.js +39 -25
- package/es/components/date-picker/hooks/useViews.js.map +1 -1
- package/es/components/dialog/DialogDocs.d.ts +1 -0
- package/es/components/dialog/DialogDocs.js +12 -0
- package/es/components/dialog/DialogDocs.js.map +1 -1
- package/es/components/drawer/DrawerDocs.d.ts +2 -0
- package/es/components/drawer/DrawerDocs.js +63 -0
- package/es/components/drawer/DrawerDocs.js.map +1 -0
- package/es/components/dropdown/DropdownDocs.d.ts +2 -0
- package/es/components/dropdown/DropdownDocs.js +23 -0
- package/es/components/dropdown/DropdownDocs.js.map +1 -0
- package/es/components/form-label/FormLabelDocs.d.ts +2 -0
- package/es/components/form-label/FormLabelDocs.js +53 -0
- package/es/components/form-label/FormLabelDocs.js.map +1 -0
- package/es/components/form-row/FormRow.d.ts +45 -0
- package/es/components/form-row/FormRowDocs.d.ts +2 -0
- package/es/components/form-row/FormRowDocs.js +83 -0
- package/es/components/form-row/FormRowDocs.js.map +1 -0
- package/es/components/form-set/FormSet.d.ts +18 -0
- package/es/components/form-set/FormSetDocs.d.ts +3 -0
- package/es/components/form-set/FormSetDocs.js +50 -0
- package/es/components/form-set/FormSetDocs.js.map +1 -0
- package/es/components/form-status/FormStatus.d.ts +18 -18
- package/es/components/form-status/FormStatusDocs.d.ts +2 -0
- package/es/components/form-status/FormStatusDocs.js +83 -0
- package/es/components/form-status/FormStatusDocs.js.map +1 -0
- package/es/components/global-error/GlobalError.d.ts +13 -1
- package/es/components/global-error/GlobalError.js +14 -6
- package/es/components/global-error/GlobalError.js.map +1 -1
- package/es/components/global-error/GlobalErrorDocs.d.ts +2 -0
- package/es/components/global-error/GlobalErrorDocs.js +68 -0
- package/es/components/global-error/GlobalErrorDocs.js.map +1 -0
- package/es/components/global-status/GlobalStatus.d.ts +37 -58
- package/es/components/global-status/GlobalStatusController.d.ts +0 -9
- package/es/components/global-status/GlobalStatusDocs.d.ts +6 -0
- package/es/components/global-status/GlobalStatusDocs.js +186 -0
- package/es/components/global-status/GlobalStatusDocs.js.map +1 -0
- package/es/components/heading/HeadingDocs.d.ts +2 -0
- package/es/components/heading/HeadingDocs.js +73 -0
- package/es/components/heading/HeadingDocs.js.map +1 -0
- package/es/components/help-button/HelpButtonDocs.d.ts +3 -0
- package/es/components/help-button/HelpButtonDocs.js +40 -0
- package/es/components/help-button/HelpButtonDocs.js.map +1 -0
- package/es/components/icon/IconDocs.d.ts +2 -0
- package/es/components/icon/IconDocs.js +53 -0
- package/es/components/icon/IconDocs.js.map +1 -0
- package/es/components/icon/IconPrimaryDocs.d.ts +2 -0
- package/es/components/icon/IconPrimaryDocs.js +18 -0
- package/es/components/icon/IconPrimaryDocs.js.map +1 -0
- package/es/components/info-card/InfoCard.d.ts +6 -1
- package/es/components/info-card/InfoCard.js +4 -3
- package/es/components/info-card/InfoCard.js.map +1 -1
- package/es/components/info-card/InfoCardDocs.d.ts +3 -0
- package/es/components/info-card/InfoCardDocs.js +100 -0
- package/es/components/info-card/InfoCardDocs.js.map +1 -0
- package/es/components/input/Input.d.ts +0 -21
- package/es/components/input/InputDocs.d.ts +1 -0
- package/es/components/input/InputDocs.js +32 -0
- package/es/components/input/InputDocs.js.map +1 -1
- package/es/components/input-masked/InputMasked.d.ts +0 -12
- package/es/components/input-masked/InputMaskedDocs.d.ts +1 -0
- package/es/components/input-masked/InputMaskedDocs.js +12 -0
- package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/es/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
- package/es/components/input-masked/MultiInputMaskedDocs.js +18 -0
- package/es/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
- package/es/components/pagination/Pagination.d.ts +35 -33
- package/es/components/pagination/Pagination.js +2 -0
- package/es/components/pagination/Pagination.js.map +1 -1
- package/es/components/pagination/PaginationDocs.d.ts +3 -0
- package/es/components/pagination/PaginationDocs.js +185 -0
- package/es/components/pagination/PaginationDocs.js.map +1 -0
- package/es/components/pagination/PaginationHelpers.d.ts +0 -3
- package/es/components/pagination/PaginationInfinity.d.ts +0 -3
- package/es/components/pagination/PaginationProvider.js +1 -1
- package/es/components/pagination/PaginationProvider.js.map +1 -1
- package/es/components/radio/Radio.d.ts +12 -15
- package/es/components/radio/RadioDocs.d.ts +5 -0
- package/es/components/radio/RadioDocs.js +139 -0
- package/es/components/radio/RadioDocs.js.map +1 -0
- package/es/components/radio/RadioGroup.d.ts +0 -30
- package/es/components/skeleton/SkeletonDocs.d.ts +2 -0
- package/es/components/skeleton/SkeletonDocs.js +38 -0
- package/es/components/skeleton/SkeletonDocs.js.map +1 -0
- package/es/components/skeleton/SkeletonHelper.d.ts +0 -6
- package/es/components/skip-content/SkipContentDocs.d.ts +2 -0
- package/es/components/skip-content/SkipContentDocs.js +23 -0
- package/es/components/skip-content/SkipContentDocs.js.map +1 -0
- package/es/components/tabs/Tabs.js +2 -2
- package/es/components/tabs/Tabs.js.map +1 -1
- package/es/components/tag/TagDocs.d.ts +4 -0
- package/es/components/tag/TagDocs.js +87 -0
- package/es/components/tag/TagDocs.js.map +1 -0
- package/es/components/textarea/Textarea.d.ts +0 -12
- package/es/components/textarea/TextareaDocs.d.ts +1 -0
- package/es/components/textarea/TextareaDocs.js +22 -0
- package/es/components/textarea/TextareaDocs.js.map +1 -1
- package/es/components/timeline/TimelineDocs.d.ts +3 -0
- package/es/components/timeline/TimelineDocs.js +60 -0
- package/es/components/timeline/TimelineDocs.js.map +1 -0
- package/es/components/toggle-button/ToggleButton.d.ts +0 -3
- package/es/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
- package/es/components/toggle-button/ToggleButtonDocs.js +7 -0
- package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/es/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
- package/es/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
- package/es/components/toggle-button/ToggleButtonGroupDocs.js +7 -0
- package/es/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
- package/es/components/tooltip/TooltipDocs.d.ts +2 -0
- package/es/components/tooltip/TooltipDocs.js +73 -0
- package/es/components/tooltip/TooltipDocs.js.map +1 -0
- package/es/components/upload/Upload.js +6 -4
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/UploadDocs.js +5 -0
- package/es/components/upload/UploadDocs.js.map +1 -1
- package/es/components/upload/UploadFileList.js +5 -4
- package/es/components/upload/UploadFileList.js.map +1 -1
- package/es/components/upload/UploadFileListCell.d.ts +6 -1
- package/es/components/upload/UploadFileListCell.js +8 -5
- package/es/components/upload/UploadFileListCell.js.map +1 -1
- package/es/components/upload/types.d.ts +5 -0
- package/es/components/upload/types.js.map +1 -1
- package/es/components/upload/useUpload.d.ts +1 -0
- package/es/components/upload/useUpload.js +7 -1
- package/es/components/upload/useUpload.js.map +1 -1
- package/es/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
- package/es/components/visually-hidden/VisuallyHiddenDocs.js +13 -0
- package/es/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
- package/es/extensions/forms/DataContext/Context.d.ts +7 -6
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +48 -62
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.d.ts +1 -0
- package/es/extensions/forms/Field/Date/Date.js +2 -3
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Password/Password.js +2 -1
- package/es/extensions/forms/Field/Password/Password.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
- package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/es/extensions/forms/Field/Upload/Upload.js +10 -2
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.js +3 -4
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
- package/es/extensions/forms/Form/Visibility/Visibility.js +1 -0
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
- package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
- package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.js +11 -15
- package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
- package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Value/Date/Date.d.ts +0 -6
- package/es/extensions/forms/Value/Date/Date.js +13 -34
- package/es/extensions/forms/Value/Date/Date.js.map +1 -1
- package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +35 -34
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +103 -60
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
- package/es/extensions/forms/Wizard/Container/useCollectStepsData.js +59 -0
- package/es/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/types.d.ts +9 -6
- package/es/extensions/forms/Wizard/Context/types.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
- package/es/extensions/forms/Wizard/Step/Step.js +64 -22
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/StepDocs.js +2 -2
- package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useStep.js +10 -18
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +16 -9
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/useValueProps.js +1 -1
- package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/es/extensions/payment-card/PaymentCard.d.ts +7 -7
- package/es/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
- package/es/extensions/payment-card/PaymentCardDocs.js +199 -0
- package/es/extensions/payment-card/PaymentCardDocs.js.map +1 -0
- package/es/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
- package/es/fragments/scroll-view/ScrollViewDocs.js +13 -0
- package/es/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
- package/es/fragments/text-counter/TextCounterDocs.d.ts +2 -0
- package/es/fragments/text-counter/TextCounterDocs.js +23 -0
- package/es/fragments/text-counter/TextCounterDocs.js.map +1 -0
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/MediaQueryDocs.d.ts +2 -0
- package/es/shared/MediaQueryDocs.js +28 -0
- package/es/shared/MediaQueryDocs.js.map +1 -0
- package/es/shared/ThemeDocs.d.ts +2 -0
- package/es/shared/ThemeDocs.js +33 -0
- package/es/shared/ThemeDocs.js.map +1 -0
- package/es/shared/component-helper.js +1 -1
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/locales/en-GB.d.ts +1 -0
- package/es/shared/locales/en-GB.js +1 -0
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +1 -0
- package/es/shared/locales/index.d.ts +2 -0
- package/es/shared/locales/nb-NO.d.ts +1 -0
- package/es/shared/locales/nb-NO.js +1 -0
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/locales/sv-SE.d.ts +1 -0
- package/es/shared/locales/sv-SE.js +1 -0
- package/es/shared/locales/sv-SE.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 +8 -0
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +13 -5
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +13 -5
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-components.css +13 -5
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- 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 +1 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +7 -6
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +63 -75
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/Date/Date.d.ts +1 -0
- package/extensions/forms/Field/Date/Date.js +2 -3
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Password/Password.js +2 -1
- package/extensions/forms/Field/Password/Password.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
- package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/extensions/forms/Field/Upload/Upload.js +10 -2
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.js +3 -4
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
- package/extensions/forms/Form/Visibility/Visibility.js +1 -0
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
- package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
- package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.js +11 -15
- package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
- package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
- package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
- package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Value/Date/Date.d.ts +0 -6
- package/extensions/forms/Value/Date/Date.js +14 -36
- package/extensions/forms/Value/Date/Date.js.map +1 -1
- package/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
- package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
- package/extensions/forms/Wizard/Container/IterateOverSteps.js +36 -34
- package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +107 -60
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
- package/extensions/forms/Wizard/Container/useCollectStepsData.js +60 -0
- package/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/Context/types.d.ts +9 -6
- package/extensions/forms/Wizard/Context/types.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
- package/extensions/forms/Wizard/Step/Step.js +66 -22
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/Step/StepDocs.js +2 -2
- package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useStep.js +10 -18
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +16 -9
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/useValueProps.js +1 -1
- package/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/extensions/payment-card/PaymentCard.d.ts +7 -7
- package/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
- package/extensions/payment-card/PaymentCardDocs.js +199 -0
- package/extensions/payment-card/PaymentCardDocs.js.map +1 -0
- package/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
- package/fragments/scroll-view/ScrollViewDocs.js +13 -0
- package/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
- package/fragments/text-counter/TextCounterDocs.d.ts +2 -0
- package/fragments/text-counter/TextCounterDocs.js +23 -0
- package/fragments/text-counter/TextCounterDocs.js.map +1 -0
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/MediaQueryDocs.d.ts +2 -0
- package/shared/MediaQueryDocs.js +28 -0
- package/shared/MediaQueryDocs.js.map +1 -0
- package/shared/ThemeDocs.d.ts +2 -0
- package/shared/ThemeDocs.js +33 -0
- package/shared/ThemeDocs.js.map +1 -0
- package/shared/component-helper.js +1 -1
- package/shared/component-helper.js.map +1 -1
- package/shared/locales/en-GB.d.ts +1 -0
- package/shared/locales/en-GB.js +1 -0
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +1 -0
- package/shared/locales/index.d.ts +2 -0
- package/shared/locales/nb-NO.d.ts +1 -0
- package/shared/locales/nb-NO.js +1 -0
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/locales/sv-SE.d.ts +1 -0
- package/shared/locales/sv-SE.js +1 -0
- package/shared/locales/sv-SE.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 +8 -0
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +13 -5
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-components.css +13 -5
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-components.css +13 -5
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","countryCode","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","snapshotsRef","Map","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","Date","now","forEach","fn","revealError","path","hasError","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","getDataPathHandlerParameters","_fieldInternalsRef$cu","value","has","get","displayValue","fieldDisplayValueRef","fieldInternalsRef","label","internal","mutateDataHandler","handler","remove","mutate","fireHandlerWhen","freshData","mutateEntry","result","set","Object","keys","exists","type","runFilter","condition","wildcardPaths","entries","includes","parts","split","traverse","subData","subPath","idx","length","push","list","Array","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","preventSyncOfSameInstance","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","onSubmitContinueRef","getErrors","map","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","setFieldEventListener","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","getSourceValue","String","startsWith","contextValue","hasVisibleError","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n OnSubmitRequest,\n CountryCode,\n PathStrict,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\n FieldInternalsRefProps,\n DataPathHandlerParameters,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n updateDataValue?: ContextState['updateDataValue']\n clearData?: () => void\n setData?: ContextState['setData']\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n internalDataRef?: ContextState['internalDataRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: OnSubmitRequest\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Will change the country code for fields supporting `countryCode`.\n * You can also set a path as the value, e.g. `/myCountryCodePath`.\n */\n countryCode?: ContextState['countryCode']\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n countryCode,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) cannot be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<number | boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors ? Date.now() : showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const revealError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (item.isMounted && checkFieldStateFor(path, state)) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n for (const p in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n ) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n const getDataPathHandlerParameters = useCallback(\n (\n path: Path,\n data: Data = internalDataRef.current\n ): DataPathHandlerParameters => {\n const value = pointer.has(data, path)\n ? pointer.get(data, path)\n : undefined\n const { value: displayValue } =\n fieldDisplayValueRef.current[path] || {}\n const props = fieldInternalsRef.current[path]?.props\n const label = props?.label\n const error = fieldErrorRef.current[path]\n\n return {\n path,\n value,\n displayValue,\n label,\n props,\n data: internalDataRef.current, // always use the internal data\n error,\n\n /** @deprecated – can be removed in v11 */\n internal: { error },\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true, fireHandlerWhen = null } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.keys(fieldInternalsRef.current).forEach((path) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const { type } = fieldDisplayValueRef.current[path] || {}\n if (fireHandlerWhen?.({ type }) !== false) {\n const result = handler(\n getDataPathHandlerParameters(path, data)\n )\n mutateEntry(path, result)\n }\n }\n })\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const result =\n typeof condition === 'function'\n ? condition(getDataPathHandlerParameters(path, data))\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n [getDataPathHandlerParameters]\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n }\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals = useCallback(\n (path: Path, props: FieldInternalsRefProps, id: string) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n { props, id }\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n },\n [setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n if (!mountedFieldsRef.current[path]) {\n mountedFieldsRef.current[path] = { ...state }\n } else {\n Object.assign(mountedFieldsRef.current[path], state)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldsRef.current[path]?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n setShowAllErrors(true)\n\n onSubmitRequest?.({\n getErrors: () =>\n Object.keys(fieldErrorRef.current)\n .map((path) => {\n return getDataPathHandlerParameters(path)\n })\n .filter(({ error }) => error),\n })\n }\n\n return result\n },\n [\n clearData,\n getDataPathHandlerParameters,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback, { remove = false } = {}) => {\n const listeners = handleSubmitListenersRef.current\n if (remove) {\n handleSubmitListenersRef.current = listeners.filter(\n (item) => item !== callback\n )\n } else if (!listeners.includes(callback)) {\n listeners.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, {\n mutate: false,\n fireHandlerWhen: ({ type }) => type === 'field',\n })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n handleSubmitListeners,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n setData,\n updateDataValue,\n fieldConnectionsRef,\n internalDataRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n clearData,\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setData,\n setShowAllErrors,\n setSubmitState,\n updateDataValue,\n visibleDataHandler,\n ])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const getSourceValue = useCallback(\n <Return extends string>(value: PathStrict | unknown): Return => {\n const data = internalDataRef.current\n if (\n String(value).startsWith('/') &&\n pointer.has(data, String(value))\n ) {\n return pointer.get(data, String(value)) as unknown as Return\n }\n return value as Return\n },\n []\n )\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n revealError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n countryCode: countryCode\n ? getSourceValue<CountryCode>(countryCode)\n : undefined,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: Boolean(showAllErrorsRef.current),\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","countryCode","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","Map","snapshotsRef","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","Date","now","forEach","fn","revealError","path","hasError","set","delete","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","Array","from","entries","some","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","getDataPathHandlerParameters","_fieldInternalsRef$cu","value","has","get","displayValue","fieldDisplayValueRef","fieldInternalsRef","label","internal","mutateDataHandler","handler","remove","mutate","fireHandlerWhen","freshData","mutateEntry","result","Object","keys","exists","type","runFilter","condition","wildcardPaths","includes","parts","split","traverse","subData","subPath","idx","length","push","list","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","preventSyncOfSameInstance","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","Promise","resolve","onSubmitContinueRef","getErrors","map","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","stop","preventSubmit","completeResult","setFieldEventListener","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","getSourceValue","String","startsWith","contextValue","hasVisibleError","size","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n OnSubmitRequest,\n CountryCode,\n PathStrict,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n MountState,\n TransformData,\n VisibleDataHandler,\n FieldInternalsRefProps,\n DataPathHandlerParameters,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n updateDataValue?: ContextState['updateDataValue']\n clearData?: () => void\n setData?: ContextState['setData']\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n internalDataRef?: ContextState['internalDataRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: OnSubmitRequest\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Will change the country code for fields supporting `countryCode`.\n * You can also set a path as the value, e.g. `/myCountryCodePath`.\n */\n countryCode?: ContextState['countryCode']\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n countryCode,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) cannot be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef(\n new Map()\n )\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Map<Path, boolean>>(new Map())\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<number | boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors ? Date.now() : showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const revealError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current.set(path, hasError)\n } else {\n hasVisibleErrorRef.current.delete(path)\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([path, item]) => {\n return item.isMounted && checkFieldStateFor(path, state)\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([p, item]) => {\n return (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n )\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n const getDataPathHandlerParameters = useCallback(\n (\n path: Path,\n data: Data = internalDataRef.current\n ): DataPathHandlerParameters => {\n const value = pointer.has(data, path)\n ? pointer.get(data, path)\n : undefined\n const { value: displayValue } =\n fieldDisplayValueRef.current[path] || {}\n const props = fieldInternalsRef.current[path]?.props\n const label = props?.label\n const error = fieldErrorRef.current[path]\n\n return {\n path,\n value,\n displayValue,\n label,\n props,\n data: internalDataRef.current, // always use the internal data\n error,\n\n /** @deprecated – can be removed in v11 */\n internal: { error },\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true, fireHandlerWhen = null } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.keys(fieldInternalsRef.current).forEach((path) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const { type } = fieldDisplayValueRef.current[path] || {}\n if (fireHandlerWhen?.({ type }) !== false) {\n const result = handler(\n getDataPathHandlerParameters(path, data)\n )\n mutateEntry(path, result)\n }\n }\n })\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const result =\n typeof condition === 'function'\n ? condition(getDataPathHandlerParameters(path, data))\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n [getDataPathHandlerParameters]\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n mountedFieldsRef.current.forEach((item, path) => {\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals = useCallback(\n (path: Path, props: FieldInternalsRefProps, id: string) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n { props, id }\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current.get(path)?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n },\n [setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n mountedFieldsRef.current.set(path, {\n ...mountedFieldsRef.current.get(path),\n ...state,\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmitCall' &&\n mountedFieldsRef.current.get(path)?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n // Because we buffer the \"revealError\" in the useFieldProps hook,\n // we need to wait for the next frame before we continue and call \"setShowAllErrors\".\n await new Promise((resolve) =>\n window.requestAnimationFrame(resolve)\n )\n\n setFormState(undefined)\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n setShowAllErrors(true)\n\n onSubmitRequest?.({\n getErrors: () =>\n Object.keys(fieldErrorRef.current)\n .map((path) => {\n return getDataPathHandlerParameters(path)\n })\n .filter(({ error }) => error),\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onSubmitRequest') {\n itm.callback()\n }\n }\n }\n\n return result\n },\n [\n clearData,\n getDataPathHandlerParameters,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, {\n mutate: false,\n fireHandlerWhen: ({ type }) => type === 'field',\n })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n let stop = false\n const preventSubmit = () => (stop = true)\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onSubmit') {\n callback({ preventSubmit })\n }\n }\n if (stop) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback'],\n { remove = false } = {}\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n if (!remove) {\n fieldEventListenersRef.current.push({ path, type, callback })\n }\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n setData,\n updateDataValue,\n fieldConnectionsRef,\n internalDataRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n clearData,\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setData,\n setShowAllErrors,\n setSubmitState,\n updateDataValue,\n visibleDataHandler,\n ])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const getSourceValue = useCallback(\n <Return extends string>(value: PathStrict | unknown): Return => {\n const data = internalDataRef.current\n if (\n String(value).startsWith('/') &&\n pointer.has(data, String(value))\n ) {\n return pointer.get(data, String(value)) as unknown as Return\n }\n return value as Return\n },\n []\n )\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n revealError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: hasVisibleErrorRef.current.size > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n countryCode: countryCode\n ? getSourceValue<CountryCode>(countryCode)\n : undefined,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: Boolean(showAllErrorsRef.current),\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,4 +26,5 @@ declare function DateComponent(props: DateProps): import("react/jsx-runtime").JS
|
|
|
26
26
|
declare namespace DateComponent {
|
|
27
27
|
var _supportsSpacingProps: boolean;
|
|
28
28
|
}
|
|
29
|
+
export declare function parseRangeValue(value: DateProps['value']): string[];
|
|
29
30
|
export default DateComponent;
|
|
@@ -16,8 +16,7 @@ import FieldBlock from '../../FieldBlock';
|
|
|
16
16
|
import SharedContext from '../../../../shared/Context';
|
|
17
17
|
import { parseISO, isValid, isBefore, isAfter } from 'date-fns';
|
|
18
18
|
import useTranslation from '../../hooks/useTranslation';
|
|
19
|
-
import { formatDate } from '
|
|
20
|
-
import { convertStringToDate } from '../../../../components/date-picker/DatePickerCalc';
|
|
19
|
+
import { convertStringToDate, formatDate } from '../../../../components/date-picker/DatePickerCalc';
|
|
21
20
|
import { FormError } from '../../utils';
|
|
22
21
|
import startOfDay from 'date-fns/startOfDay';
|
|
23
22
|
import useInvalidDates from './hooks/useInvalidDates';
|
|
@@ -182,7 +181,7 @@ function DateComponent(props) {
|
|
|
182
181
|
onBlur: handleBlur
|
|
183
182
|
}, datePickerProps, htmlAttributes)));
|
|
184
183
|
}
|
|
185
|
-
function parseRangeValue(value) {
|
|
184
|
+
export function parseRangeValue(value) {
|
|
186
185
|
return value.split('|').map(value => /(undefined|null)/.test(value) ? null : value);
|
|
187
186
|
}
|
|
188
187
|
function validateDateLimit(_ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Date.js","names":["React","useCallback","useContext","useMemo","DatePicker","useFieldProps","pickSpacingProps","classnames","FieldBlock","SharedContext","parseISO","isValid","isBefore","isAfter","useTranslation","formatDate","convertStringToDate","FormError","startOfDay","useInvalidDates","DateComponent","props","errorRequired","label","defaultLabel","Date","locale","invalidDatesRef","setInvalidDates","errorMessages","_objectSpread","schema","_props$schema","type","pattern","validateRequired","value","required","error","undefined","dateValidator","invalidDateErrors","validateDate","current","minDate","maxDate","dateLimitErrors","validateDateLimit","isRange","range","onBlurValidator","fromInput","date","start_date","end_date","invalidDate","invalidStartDate","invalidEndDate","preparedProps","exportValidators","_useFieldProps","id","path","itemPath","className","valueProp","hasError","disabled","htmlAttributes","handleFocus","handleBlur","handleChange","setDisplayValue","showCancelButton","showResetButton","showInput","onReset","rest","_objectWithoutProperties","_excluded","datePickerProps","pickDatePickerProps","startDate","endDate","parseRangeValue","fieldBlockProps","forId","createElement","_extends","status","onChange","event","onFocus","onBlur","split","map","test","_ref","dates","_excluded2","startDateParsed","endDateParsed","isoDates","toISOString","options","variant","messages","push","messageValues","errors","datePickerPropKeys","Object","keys","reduce","key","includes","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport { DatePicker } from '../../../../components'\nimport { useFieldProps } from '../../hooks'\nimport type {\n FieldProps,\n AllJSONSchemaVersions,\n ValidatorDisableable,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport classnames from 'classnames'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport SharedContext from '../../../../shared/Context'\nimport { parseISO, isValid, isBefore, isAfter } from 'date-fns'\nimport useTranslation from '../../hooks/useTranslation'\nimport { FormatDateOptions, formatDate } from '../../Value/Date'\nimport {\n DatePickerEvent,\n DatePickerProps,\n} from '../../../../components/DatePicker'\nimport { convertStringToDate } from '../../../../components/date-picker/DatePickerCalc'\nimport { ProviderProps } from '../../../../shared/Provider'\nimport { FormError } from '../../utils'\nimport startOfDay from 'date-fns/startOfDay'\nimport { InvalidDates } from '../../../../components/date-picker/DatePickerInput'\nimport useInvalidDates from './hooks/useInvalidDates'\n\n// `range`, `showInput`, `showCancelButton` and `showResetButton` are not picked from the `DatePickerProps`\n// Since they require `Field.Date` specific comments, due to them having different default values\nexport type DateProps = Omit<\n FieldProps<string, undefined | string>,\n 'onBlurValidator'\n> & {\n // Validation\n pattern?: string\n /**\n * Defines if the Date field should support a value of two dates (starting and ending date).\n * The value needs to be a string containing two dates, separated by a pipe character (`|`) i.e. (`01-09-2024|30-09-2024`) when this is set to `true`.\n * Defaults to `false`.\n */\n range?: DatePickerProps['range']\n /**\n * If the input fields with the mask should be visible. Defaults to `true`.\n */\n showInput?: DatePickerProps['showInput']\n\n /**\n * If set to `true`, a cancel button will be shown. You can change the default text by using `cancel_button_text=\"Avbryt\"` Defaults to `true`. If the `range` prop is `true`, then the cancel button is shown.\n */\n showCancelButton?: DatePickerProps['showCancelButton']\n /**\n * If set to `true`, a reset button will be shown. You can change the default text by using `reset_button_text=\"Tilbakestill\"` Defaults to `true`.\n */\n showResetButton?: DatePickerProps['showResetButton']\n onBlurValidator?: ValidatorDisableable<string>\n} & Pick<\n DatePickerProps,\n | 'month'\n | 'startMonth'\n | 'endMonth'\n | 'minDate'\n | 'maxDate'\n | 'correctInvalidDate'\n | 'maskOrder'\n | 'maskPlaceholder'\n | 'dateFormat'\n | 'returnFormat'\n | 'hideNavigation'\n | 'hideDays'\n | 'onlyMonth'\n | 'hideLastWeek'\n | 'disableAutofocus'\n | 'showSubmitButton'\n | 'submitButtonText'\n | 'cancelButtonText'\n | 'resetButtonText'\n | 'firstDay'\n | 'link'\n | 'size'\n | 'sync'\n | 'addonElement'\n | 'shortcuts'\n | 'opened'\n | 'direction'\n | 'alignPicker'\n | 'onDaysRender'\n | 'onType'\n | 'onShow'\n | 'onHide'\n | 'onSubmit'\n | 'onCancel'\n | 'onReset'\n | 'skipPortal'\n >\n\nfunction DateComponent(props: DateProps) {\n const { errorRequired, label: defaultLabel } = useTranslation().Date\n const { locale } = useContext(SharedContext)\n\n const { invalidDatesRef, setInvalidDates } = useInvalidDates()\n\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }\n }, [props.errorMessages, errorRequired])\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n if (required && (!value || !isValid(parseISO(value)))) {\n return error\n }\n\n return undefined\n },\n []\n )\n\n const dateValidator = useCallback(\n (value: string) => {\n const invalidDateErrors = validateDate(invalidDatesRef.current)\n\n // No need to validate min/max date if they are not provided\n if (!props.minDate && !props.maxDate) {\n return invalidDateErrors\n }\n\n const dateLimitErrors = validateDateLimit({\n value,\n locale,\n minDate: props.minDate,\n maxDate: props.maxDate,\n isRange: props.range,\n })\n\n return [...invalidDateErrors, ...dateLimitErrors]\n },\n [props.maxDate, props.minDate, props.range, invalidDatesRef, locale]\n )\n\n const onBlurValidator = useMemo(() => {\n if (props.onBlurValidator === false) {\n return undefined\n }\n\n if (props.onBlurValidator) {\n return props.onBlurValidator\n }\n\n return dateValidator\n }, [props.onBlurValidator, dateValidator])\n\n const fromInput = useCallback(\n ({\n date,\n start_date,\n end_date,\n invalidDate,\n invalidStartDate,\n invalidEndDate,\n }: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>) => {\n // Add to ref, for use in onBlurValidator, would be better if there was a way to add this to additional args\n setInvalidDates({\n invalidDate,\n invalidStartDate,\n invalidEndDate,\n })\n\n return props.range ? `${start_date}|${end_date}` : date\n },\n [props.range, setInvalidDates]\n )\n\n const preparedProps = {\n ...props,\n errorMessages,\n schema,\n fromInput,\n validateRequired,\n onBlurValidator,\n exportValidators: { dateValidator },\n invalidDatesRef,\n }\n\n const {\n id,\n path,\n itemPath,\n className,\n label,\n value: valueProp,\n hasError,\n disabled,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n range,\n showCancelButton = true,\n showResetButton = true,\n showInput = true,\n onReset,\n minDate,\n maxDate,\n ...rest\n } = useFieldProps(preparedProps)\n\n const datePickerProps = pickDatePickerProps(rest)\n\n const { value, startDate, endDate } = useMemo(() => {\n if (!range || !valueProp) {\n return {\n // Assign to null if falsy value, to properly clear input values\n value: valueProp ?? null,\n startDate: undefined,\n endDate: undefined,\n }\n }\n\n const [startDate, endDate] = parseRangeValue(valueProp)\n\n return {\n value: undefined,\n startDate,\n endDate,\n }\n }, [range, valueProp])\n\n useMemo(() => {\n if ((path || itemPath) && valueProp) {\n setDisplayValue(formatDate(valueProp, { locale }), undefined)\n }\n }, [itemPath, locale, path, setDisplayValue, valueProp])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n label: label ?? defaultLabel,\n className: classnames('dnb-forms-field-string', className),\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <DatePicker\n id={id}\n date={value}\n disabled={disabled}\n showInput={showInput}\n showCancelButton={showCancelButton}\n showResetButton={showResetButton}\n startDate={startDate}\n endDate={endDate}\n minDate={minDate}\n maxDate={maxDate}\n status={hasError ? 'error' : undefined}\n range={range}\n onChange={handleChange}\n onReset={(event) => {\n handleChange(event)\n onReset?.(event)\n }}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...datePickerProps}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\nfunction parseRangeValue(value: DateProps['value']) {\n return (\n value\n .split('|')\n // Assign to null if falsy value, to properly clear input values\n .map((value) => (/(undefined|null)/.test(value) ? null : value))\n )\n}\n\n// Validators\nfunction validateDateLimit({\n value,\n isRange,\n locale,\n ...dates\n}: {\n value: DateProps['value']\n minDate: DateProps['minDate']\n maxDate: DateProps['maxDate']\n isRange: DateProps['range']\n locale: ProviderProps['locale']\n}) {\n if ((!dates.minDate && !dates.maxDate) || !value) {\n return []\n }\n\n const [startDateParsed, endDateParsed] = parseRangeValue(value)\n\n // Set dates to the start of the day to compare the actual days, and not day and time\n const minDate = startOfDay(convertStringToDate(dates.minDate))\n const maxDate = startOfDay(convertStringToDate(dates.maxDate))\n\n const startDate = startOfDay(convertStringToDate(startDateParsed))\n const endDate = startOfDay(convertStringToDate(endDateParsed))\n\n const isoDates = {\n minDate:\n dates.minDate instanceof Date\n ? dates.minDate.toISOString()\n : dates.minDate,\n maxDate:\n dates.maxDate instanceof Date\n ? dates.maxDate.toISOString()\n : dates.maxDate,\n }\n\n const options: FormatDateOptions = {\n locale,\n variant: 'long',\n }\n\n const messages: Array<FormError> = []\n\n // Handle non range validation\n if (!isRange) {\n if (isBefore(startDate, minDate)) {\n messages.push(\n new FormError('Date.errorMinDate', {\n messageValues: { date: formatDate(isoDates.minDate, options) },\n })\n )\n }\n\n if (isAfter(startDate, maxDate)) {\n messages.push(\n new FormError('Date.errorMaxDate', {\n messageValues: { date: formatDate(isoDates.maxDate, options) },\n })\n )\n }\n\n return messages\n }\n\n // Start date validation\n if (isBefore(startDate, minDate)) {\n messages.push(\n new FormError('Date.errorStartDateMinDate', {\n messageValues: { date: formatDate(isoDates.minDate, options) },\n })\n )\n }\n\n if (isAfter(startDate, maxDate)) {\n messages.push(\n new FormError('Date.errorStartDateMaxDate', {\n messageValues: { date: formatDate(isoDates.maxDate, options) },\n })\n )\n }\n\n // End date validation\n if (isBefore(endDate, minDate)) {\n messages.push(\n new FormError('Date.errorEndDateMinDate', {\n messageValues: { date: formatDate(isoDates.minDate, options) },\n })\n )\n }\n\n if (isAfter(endDate, maxDate)) {\n messages.push(\n new FormError('Date.errorEndDateMaxDate', {\n messageValues: { date: formatDate(isoDates.maxDate, options) },\n })\n )\n }\n\n return messages\n}\n\nfunction validateDate({\n invalidDate,\n invalidStartDate,\n invalidEndDate,\n}: InvalidDates) {\n if (invalidDate) {\n return [\n new FormError('Date.errorInvalidDate', {\n messageValues: { date: invalidDate },\n }),\n ]\n }\n\n const errors: Array<FormError> = []\n\n if (invalidStartDate) {\n errors.push(\n new FormError('Date.errorInvalidStartDate', {\n messageValues: { date: invalidStartDate },\n })\n )\n }\n\n if (invalidEndDate) {\n errors.push(\n new FormError('Date.errorInvalidEndDate', {\n messageValues: { date: invalidEndDate },\n })\n )\n }\n\n return errors\n}\n\n// Used to filter out DatePickerProps from the FieldProps.\n// Includes DatePickerProps that are not destructured in useFieldProps\nconst datePickerPropKeys = [\n 'month',\n 'startMonth',\n 'endMonth',\n 'minDate',\n 'maxDate',\n 'correctInvalidDate',\n 'maskOrder',\n 'maskPlaceholder',\n 'dateFormat',\n 'returnFormat',\n 'hideNavigation',\n 'hideDays',\n 'onlyMonth',\n 'hideLastWeek',\n 'disableAutofocus',\n 'showSubmitButton',\n 'submitButtonText',\n 'cancelButtonText',\n 'resetButtonText',\n 'firstDay',\n 'link',\n 'size',\n 'sync',\n 'addonElement',\n 'shortcuts',\n 'opened',\n 'direction',\n 'alignPicker',\n 'onDaysRender',\n 'showInput',\n 'onDaysRender',\n 'onType',\n 'onShow',\n 'onHide',\n 'onSubmit',\n 'onCancel',\n 'onReset',\n 'skipPortal',\n]\n\nfunction pickDatePickerProps(props: DateProps) {\n const datePickerProps = Object.keys(props).reduce(\n (datePickerProps, key) => {\n if (datePickerPropKeys.includes(key)) {\n datePickerProps[key] = props[key]\n }\n\n return datePickerProps\n },\n {}\n )\n\n return datePickerProps\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Date.js","names":["React","useCallback","useContext","useMemo","DatePicker","useFieldProps","pickSpacingProps","classnames","FieldBlock","SharedContext","parseISO","isValid","isBefore","isAfter","useTranslation","convertStringToDate","formatDate","FormError","startOfDay","useInvalidDates","DateComponent","props","errorRequired","label","defaultLabel","Date","locale","invalidDatesRef","setInvalidDates","errorMessages","_objectSpread","schema","_props$schema","type","pattern","validateRequired","value","required","error","undefined","dateValidator","invalidDateErrors","validateDate","current","minDate","maxDate","dateLimitErrors","validateDateLimit","isRange","range","onBlurValidator","fromInput","date","start_date","end_date","invalidDate","invalidStartDate","invalidEndDate","preparedProps","exportValidators","_useFieldProps","id","path","itemPath","className","valueProp","hasError","disabled","htmlAttributes","handleFocus","handleBlur","handleChange","setDisplayValue","showCancelButton","showResetButton","showInput","onReset","rest","_objectWithoutProperties","_excluded","datePickerProps","pickDatePickerProps","startDate","endDate","parseRangeValue","fieldBlockProps","forId","createElement","_extends","status","onChange","event","onFocus","onBlur","split","map","test","_ref","dates","_excluded2","startDateParsed","endDateParsed","isoDates","toISOString","options","variant","messages","push","messageValues","errors","datePickerPropKeys","Object","keys","reduce","key","includes","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport { DatePicker } from '../../../../components'\nimport { useFieldProps } from '../../hooks'\nimport type {\n FieldProps,\n AllJSONSchemaVersions,\n ValidatorDisableable,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport classnames from 'classnames'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport SharedContext from '../../../../shared/Context'\nimport { parseISO, isValid, isBefore, isAfter } from 'date-fns'\nimport useTranslation from '../../hooks/useTranslation'\nimport {\n DatePickerEvent,\n DatePickerProps,\n} from '../../../../components/DatePicker'\nimport {\n FormatDateOptions,\n convertStringToDate,\n formatDate,\n} from '../../../../components/date-picker/DatePickerCalc'\nimport { ProviderProps } from '../../../../shared/Provider'\nimport { FormError } from '../../utils'\nimport startOfDay from 'date-fns/startOfDay'\nimport { InvalidDates } from '../../../../components/date-picker/DatePickerInput'\nimport useInvalidDates from './hooks/useInvalidDates'\n\n// `range`, `showInput`, `showCancelButton` and `showResetButton` are not picked from the `DatePickerProps`\n// Since they require `Field.Date` specific comments, due to them having different default values\nexport type DateProps = Omit<\n FieldProps<string, undefined | string>,\n 'onBlurValidator'\n> & {\n // Validation\n pattern?: string\n /**\n * Defines if the Date field should support a value of two dates (starting and ending date).\n * The value needs to be a string containing two dates, separated by a pipe character (`|`) i.e. (`01-09-2024|30-09-2024`) when this is set to `true`.\n * Defaults to `false`.\n */\n range?: DatePickerProps['range']\n /**\n * If the input fields with the mask should be visible. Defaults to `true`.\n */\n showInput?: DatePickerProps['showInput']\n\n /**\n * If set to `true`, a cancel button will be shown. You can change the default text by using `cancel_button_text=\"Avbryt\"` Defaults to `true`. If the `range` prop is `true`, then the cancel button is shown.\n */\n showCancelButton?: DatePickerProps['showCancelButton']\n /**\n * If set to `true`, a reset button will be shown. You can change the default text by using `reset_button_text=\"Tilbakestill\"` Defaults to `true`.\n */\n showResetButton?: DatePickerProps['showResetButton']\n onBlurValidator?: ValidatorDisableable<string>\n} & Pick<\n DatePickerProps,\n | 'month'\n | 'startMonth'\n | 'endMonth'\n | 'minDate'\n | 'maxDate'\n | 'correctInvalidDate'\n | 'maskOrder'\n | 'maskPlaceholder'\n | 'dateFormat'\n | 'returnFormat'\n | 'hideNavigation'\n | 'hideDays'\n | 'onlyMonth'\n | 'hideLastWeek'\n | 'disableAutofocus'\n | 'showSubmitButton'\n | 'submitButtonText'\n | 'cancelButtonText'\n | 'resetButtonText'\n | 'firstDay'\n | 'link'\n | 'size'\n | 'sync'\n | 'addonElement'\n | 'shortcuts'\n | 'opened'\n | 'direction'\n | 'alignPicker'\n | 'onDaysRender'\n | 'onType'\n | 'onShow'\n | 'onHide'\n | 'onSubmit'\n | 'onCancel'\n | 'onReset'\n | 'skipPortal'\n >\n\nfunction DateComponent(props: DateProps) {\n const { errorRequired, label: defaultLabel } = useTranslation().Date\n const { locale } = useContext(SharedContext)\n\n const { invalidDatesRef, setInvalidDates } = useInvalidDates()\n\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }\n }, [props.errorMessages, errorRequired])\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n if (required && (!value || !isValid(parseISO(value)))) {\n return error\n }\n\n return undefined\n },\n []\n )\n\n const dateValidator = useCallback(\n (value: string) => {\n const invalidDateErrors = validateDate(invalidDatesRef.current)\n\n // No need to validate min/max date if they are not provided\n if (!props.minDate && !props.maxDate) {\n return invalidDateErrors\n }\n\n const dateLimitErrors = validateDateLimit({\n value,\n locale,\n minDate: props.minDate,\n maxDate: props.maxDate,\n isRange: props.range,\n })\n\n return [...invalidDateErrors, ...dateLimitErrors]\n },\n [props.maxDate, props.minDate, props.range, invalidDatesRef, locale]\n )\n\n const onBlurValidator = useMemo(() => {\n if (props.onBlurValidator === false) {\n return undefined\n }\n\n if (props.onBlurValidator) {\n return props.onBlurValidator\n }\n\n return dateValidator\n }, [props.onBlurValidator, dateValidator])\n\n const fromInput = useCallback(\n ({\n date,\n start_date,\n end_date,\n invalidDate,\n invalidStartDate,\n invalidEndDate,\n }: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>) => {\n // Add to ref, for use in onBlurValidator, would be better if there was a way to add this to additional args\n setInvalidDates({\n invalidDate,\n invalidStartDate,\n invalidEndDate,\n })\n\n return props.range ? `${start_date}|${end_date}` : date\n },\n [props.range, setInvalidDates]\n )\n\n const preparedProps = {\n ...props,\n errorMessages,\n schema,\n fromInput,\n validateRequired,\n onBlurValidator,\n exportValidators: { dateValidator },\n invalidDatesRef,\n }\n\n const {\n id,\n path,\n itemPath,\n className,\n label,\n value: valueProp,\n hasError,\n disabled,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n range,\n showCancelButton = true,\n showResetButton = true,\n showInput = true,\n onReset,\n minDate,\n maxDate,\n ...rest\n } = useFieldProps(preparedProps)\n\n const datePickerProps = pickDatePickerProps(rest)\n\n const { value, startDate, endDate } = useMemo(() => {\n if (!range || !valueProp) {\n return {\n // Assign to null if falsy value, to properly clear input values\n value: valueProp ?? null,\n startDate: undefined,\n endDate: undefined,\n }\n }\n\n const [startDate, endDate] = parseRangeValue(valueProp)\n\n return {\n value: undefined,\n startDate,\n endDate,\n }\n }, [range, valueProp])\n\n useMemo(() => {\n if ((path || itemPath) && valueProp) {\n setDisplayValue(formatDate(valueProp, { locale }), undefined)\n }\n }, [itemPath, locale, path, setDisplayValue, valueProp])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n label: label ?? defaultLabel,\n className: classnames('dnb-forms-field-string', className),\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <DatePicker\n id={id}\n date={value}\n disabled={disabled}\n showInput={showInput}\n showCancelButton={showCancelButton}\n showResetButton={showResetButton}\n startDate={startDate}\n endDate={endDate}\n minDate={minDate}\n maxDate={maxDate}\n status={hasError ? 'error' : undefined}\n range={range}\n onChange={handleChange}\n onReset={(event) => {\n handleChange(event)\n onReset?.(event)\n }}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...datePickerProps}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\nexport function parseRangeValue(value: DateProps['value']) {\n return (\n value\n .split('|')\n // Assign to null if falsy value, to properly clear input values\n .map((value) => (/(undefined|null)/.test(value) ? null : value))\n )\n}\n\n// Validators\nfunction validateDateLimit({\n value,\n isRange,\n locale,\n ...dates\n}: {\n value: DateProps['value']\n minDate: DateProps['minDate']\n maxDate: DateProps['maxDate']\n isRange: DateProps['range']\n locale: ProviderProps['locale']\n}) {\n if ((!dates.minDate && !dates.maxDate) || !value) {\n return []\n }\n\n const [startDateParsed, endDateParsed] = parseRangeValue(value)\n\n // Set dates to the start of the day to compare the actual days, and not day and time\n const minDate = startOfDay(convertStringToDate(dates.minDate))\n const maxDate = startOfDay(convertStringToDate(dates.maxDate))\n\n const startDate = startOfDay(convertStringToDate(startDateParsed))\n const endDate = startOfDay(convertStringToDate(endDateParsed))\n\n const isoDates = {\n minDate:\n dates.minDate instanceof Date\n ? dates.minDate.toISOString()\n : dates.minDate,\n maxDate:\n dates.maxDate instanceof Date\n ? dates.maxDate.toISOString()\n : dates.maxDate,\n }\n\n const options: FormatDateOptions = {\n locale,\n variant: 'long',\n }\n\n const messages: Array<FormError> = []\n\n // Handle non range validation\n if (!isRange) {\n if (isBefore(startDate, minDate)) {\n messages.push(\n new FormError('Date.errorMinDate', {\n messageValues: { date: formatDate(isoDates.minDate, options) },\n })\n )\n }\n\n if (isAfter(startDate, maxDate)) {\n messages.push(\n new FormError('Date.errorMaxDate', {\n messageValues: { date: formatDate(isoDates.maxDate, options) },\n })\n )\n }\n\n return messages\n }\n\n // Start date validation\n if (isBefore(startDate, minDate)) {\n messages.push(\n new FormError('Date.errorStartDateMinDate', {\n messageValues: { date: formatDate(isoDates.minDate, options) },\n })\n )\n }\n\n if (isAfter(startDate, maxDate)) {\n messages.push(\n new FormError('Date.errorStartDateMaxDate', {\n messageValues: { date: formatDate(isoDates.maxDate, options) },\n })\n )\n }\n\n // End date validation\n if (isBefore(endDate, minDate)) {\n messages.push(\n new FormError('Date.errorEndDateMinDate', {\n messageValues: { date: formatDate(isoDates.minDate, options) },\n })\n )\n }\n\n if (isAfter(endDate, maxDate)) {\n messages.push(\n new FormError('Date.errorEndDateMaxDate', {\n messageValues: { date: formatDate(isoDates.maxDate, options) },\n })\n )\n }\n\n return messages\n}\n\nfunction validateDate({\n invalidDate,\n invalidStartDate,\n invalidEndDate,\n}: InvalidDates) {\n if (invalidDate) {\n return [\n new FormError('Date.errorInvalidDate', {\n messageValues: { date: invalidDate },\n }),\n ]\n }\n\n const errors: Array<FormError> = []\n\n if (invalidStartDate) {\n errors.push(\n new FormError('Date.errorInvalidStartDate', {\n messageValues: { date: invalidStartDate },\n })\n )\n }\n\n if (invalidEndDate) {\n errors.push(\n new FormError('Date.errorInvalidEndDate', {\n messageValues: { date: invalidEndDate },\n })\n )\n }\n\n return errors\n}\n\n// Used to filter out DatePickerProps from the FieldProps.\n// Includes DatePickerProps that are not destructured in useFieldProps\nconst datePickerPropKeys = [\n 'month',\n 'startMonth',\n 'endMonth',\n 'minDate',\n 'maxDate',\n 'correctInvalidDate',\n 'maskOrder',\n 'maskPlaceholder',\n 'dateFormat',\n 'returnFormat',\n 'hideNavigation',\n 'hideDays',\n 'onlyMonth',\n 'hideLastWeek',\n 'disableAutofocus',\n 'showSubmitButton',\n 'submitButtonText',\n 'cancelButtonText',\n 'resetButtonText',\n 'firstDay',\n 'link',\n 'size',\n 'sync',\n 'addonElement',\n 'shortcuts',\n 'opened',\n 'direction',\n 'alignPicker',\n 'onDaysRender',\n 'showInput',\n 'onDaysRender',\n 'onType',\n 'onShow',\n 'onHide',\n 'onSubmit',\n 'onCancel',\n 'onReset',\n 'skipPortal',\n]\n\nfunction pickDatePickerProps(props: DateProps) {\n const datePickerProps = Object.keys(props).reduce(\n (datePickerProps, key) => {\n if (datePickerPropKeys.includes(key)) {\n datePickerProps[key] = props[key]\n }\n\n return datePickerProps\n },\n {}\n )\n\n return datePickerProps\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":";;;;;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC/D,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,aAAa,QAAQ,aAAa;AAM3C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,UAAU,MAAoC,kBAAkB;AACvE,OAAOC,aAAa,MAAM,4BAA4B;AACtD,SAASC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,UAAU;AAC/D,OAAOC,cAAc,MAAM,4BAA4B;AAKvD,SAEEC,mBAAmB,EACnBC,UAAU,QACL,mDAAmD;AAE1D,SAASC,SAAS,QAAQ,aAAa;AACvC,OAAOC,UAAU,MAAM,qBAAqB;AAE5C,OAAOC,eAAe,MAAM,yBAAyB;AAsErD,SAASC,aAAaA,CAACC,KAAgB,EAAE;EACvC,MAAM;IAAEC,aAAa;IAAEC,KAAK,EAAEC;EAAa,CAAC,GAAGV,cAAc,CAAC,CAAC,CAACW,IAAI;EACpE,MAAM;IAAEC;EAAO,CAAC,GAAGxB,UAAU,CAACO,aAAa,CAAC;EAE5C,MAAM;IAAEkB,eAAe;IAAEC;EAAgB,CAAC,GAAGT,eAAe,CAAC,CAAC;EAE9D,MAAMU,aAAa,GAAG1B,OAAO,CAAC,MAAM;IAClC,OAAA2B,aAAA;MACE,qBAAqB,EAAER,aAAa;MACpC,oBAAoB,EAAEA;IAAa,GAChCD,KAAK,CAACQ,aAAa;EAE1B,CAAC,EAAE,CAACR,KAAK,CAACQ,aAAa,EAAEP,aAAa,CAAC,CAAC;EAExC,MAAMS,MAAM,GAAG5B,OAAO,CACpB;IAAA,IAAA6B,aAAA;IAAA,QAAAA,aAAA,GACEX,KAAK,CAACU,MAAM,cAAAC,aAAA,cAAAA,aAAA,GAAI;MACdC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAEb,KAAK,CAACa;IACjB,CAAC;EAAA,GACH,CAACb,KAAK,CAACU,MAAM,EAAEV,KAAK,CAACa,OAAO,CAC9B,CAAC;EAED,MAAMC,gBAAgB,GAAGlC,WAAW,CAClC,CAACmC,KAAa,EAAE;IAAEC,QAAQ;IAAEC;EAAM,CAAC,KAAK;IACtC,IAAID,QAAQ,KAAK,CAACD,KAAK,IAAI,CAACzB,OAAO,CAACD,QAAQ,CAAC0B,KAAK,CAAC,CAAC,CAAC,EAAE;MACrD,OAAOE,KAAK;IACd;IAEA,OAAOC,SAAS;EAClB,CAAC,EACD,EACF,CAAC;EAED,MAAMC,aAAa,GAAGvC,WAAW,CAC9BmC,KAAa,IAAK;IACjB,MAAMK,iBAAiB,GAAGC,YAAY,CAACf,eAAe,CAACgB,OAAO,CAAC;IAG/D,IAAI,CAACtB,KAAK,CAACuB,OAAO,IAAI,CAACvB,KAAK,CAACwB,OAAO,EAAE;MACpC,OAAOJ,iBAAiB;IAC1B;IAEA,MAAMK,eAAe,GAAGC,iBAAiB,CAAC;MACxCX,KAAK;MACLV,MAAM;MACNkB,OAAO,EAAEvB,KAAK,CAACuB,OAAO;MACtBC,OAAO,EAAExB,KAAK,CAACwB,OAAO;MACtBG,OAAO,EAAE3B,KAAK,CAAC4B;IACjB,CAAC,CAAC;IAEF,OAAO,CAAC,GAAGR,iBAAiB,EAAE,GAAGK,eAAe,CAAC;EACnD,CAAC,EACD,CAACzB,KAAK,CAACwB,OAAO,EAAExB,KAAK,CAACuB,OAAO,EAAEvB,KAAK,CAAC4B,KAAK,EAAEtB,eAAe,EAAED,MAAM,CACrE,CAAC;EAED,MAAMwB,eAAe,GAAG/C,OAAO,CAAC,MAAM;IACpC,IAAIkB,KAAK,CAAC6B,eAAe,KAAK,KAAK,EAAE;MACnC,OAAOX,SAAS;IAClB;IAEA,IAAIlB,KAAK,CAAC6B,eAAe,EAAE;MACzB,OAAO7B,KAAK,CAAC6B,eAAe;IAC9B;IAEA,OAAOV,aAAa;EACtB,CAAC,EAAE,CAACnB,KAAK,CAAC6B,eAAe,EAAEV,aAAa,CAAC,CAAC;EAE1C,MAAMW,SAAS,GAAGlD,WAAW,CAC3B,CAAC;IACCmD,IAAI;IACJC,UAAU;IACVC,QAAQ;IACRC,WAAW;IACXC,gBAAgB;IAChBC;EACoD,CAAC,KAAK;IAE1D7B,eAAe,CAAC;MACd2B,WAAW;MACXC,gBAAgB;MAChBC;IACF,CAAC,CAAC;IAEF,OAAOpC,KAAK,CAAC4B,KAAK,GAAG,GAAGI,UAAU,IAAIC,QAAQ,EAAE,GAAGF,IAAI;EACzD,CAAC,EACD,CAAC/B,KAAK,CAAC4B,KAAK,EAAErB,eAAe,CAC/B,CAAC;EAED,MAAM8B,aAAa,GAAA5B,aAAA,CAAAA,aAAA,KACdT,KAAK;IACRQ,aAAa;IACbE,MAAM;IACNoB,SAAS;IACThB,gBAAgB;IAChBe,eAAe;IACfS,gBAAgB,EAAE;MAAEnB;IAAc,CAAC;IACnCb;EAAe,EAChB;EAED,MAAAiC,cAAA,GAsBIvD,aAAa,CAACqD,aAAa,CAAC;IAtB1B;MACJG,EAAE;MACFC,IAAI;MACJC,QAAQ;MACRC,SAAS;MACTzC,KAAK;MACLa,KAAK,EAAE6B,SAAS;MAChBC,QAAQ;MACRC,QAAQ;MACRC,cAAc;MACdC,WAAW;MACXC,UAAU;MACVC,YAAY;MACZC,eAAe;MACfvB,KAAK;MACLwB,gBAAgB,GAAG,IAAI;MACvBC,eAAe,GAAG,IAAI;MACtBC,SAAS,GAAG,IAAI;MAChBC,OAAO;MACPhC,OAAO;MACPC;IAEF,CAAC,GAAAe,cAAA;IADIiB,IAAI,GAAAC,wBAAA,CAAAlB,cAAA,EAAAmB,SAAA;EAGT,MAAMC,eAAe,GAAGC,mBAAmB,CAACJ,IAAI,CAAC;EAEjD,MAAM;IAAEzC,KAAK;IAAE8C,SAAS;IAAEC;EAAQ,CAAC,GAAGhF,OAAO,CAAC,MAAM;IAClD,IAAI,CAAC8C,KAAK,IAAI,CAACgB,SAAS,EAAE;MACxB,OAAO;QAEL7B,KAAK,EAAE6B,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,IAAI;QACxBiB,SAAS,EAAE3C,SAAS;QACpB4C,OAAO,EAAE5C;MACX,CAAC;IACH;IAEA,MAAM,CAAC2C,SAAS,EAAEC,OAAO,CAAC,GAAGC,eAAe,CAACnB,SAAS,CAAC;IAEvD,OAAO;MACL7B,KAAK,EAAEG,SAAS;MAChB2C,SAAS;MACTC;IACF,CAAC;EACH,CAAC,EAAE,CAAClC,KAAK,EAAEgB,SAAS,CAAC,CAAC;EAEtB9D,OAAO,CAAC,MAAM;IACZ,IAAI,CAAC2D,IAAI,IAAIC,QAAQ,KAAKE,SAAS,EAAE;MACnCO,eAAe,CAACxD,UAAU,CAACiD,SAAS,EAAE;QAAEvC;MAAO,CAAC,CAAC,EAAEa,SAAS,CAAC;IAC/D;EACF,CAAC,EAAE,CAACwB,QAAQ,EAAErC,MAAM,EAAEoC,IAAI,EAAEU,eAAe,EAAEP,SAAS,CAAC,CAAC;EAExD,MAAMoB,eAAgC,GAAAvD,aAAA;IACpCwD,KAAK,EAAEzB,EAAE;IACTtC,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAIC,YAAY;IAC5BwC,SAAS,EAAEzD,UAAU,CAAC,wBAAwB,EAAEyD,SAAS;EAAC,GACvD1D,gBAAgB,CAACe,KAAK,CAAC,CAC3B;EAED,OACErB,KAAA,CAAAuF,aAAA,CAAC/E,UAAU,EAAK6E,eAAe,EAC7BrF,KAAA,CAAAuF,aAAA,CAACnF,UAAU,EAAAoF,QAAA;IACT3B,EAAE,EAAEA,EAAG;IACPT,IAAI,EAAEhB,KAAM;IACZ+B,QAAQ,EAAEA,QAAS;IACnBQ,SAAS,EAAEA,SAAU;IACrBF,gBAAgB,EAAEA,gBAAiB;IACnCC,eAAe,EAAEA,eAAgB;IACjCQ,SAAS,EAAEA,SAAU;IACrBC,OAAO,EAAEA,OAAQ;IACjBvC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjB4C,MAAM,EAAEvB,QAAQ,GAAG,OAAO,GAAG3B,SAAU;IACvCU,KAAK,EAAEA,KAAM;IACbyC,QAAQ,EAAEnB,YAAa;IACvBK,OAAO,EAAGe,KAAK,IAAK;MAClBpB,YAAY,CAACoB,KAAK,CAAC;MACnBf,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGe,KAAK,CAAC;IAClB,CAAE;IACFC,OAAO,EAAEvB,WAAY;IACrBwB,MAAM,EAAEvB;EAAW,GACfU,eAAe,EACfZ,cAAc,CACnB,CACS,CAAC;AAEjB;AAEA,OAAO,SAASgB,eAAeA,CAAChD,KAAyB,EAAE;EACzD,OACEA,KAAK,CACF0D,KAAK,CAAC,GAAG,CAAC,CAEVC,GAAG,CAAE3D,KAAK,IAAM,kBAAkB,CAAC4D,IAAI,CAAC5D,KAAK,CAAC,GAAG,IAAI,GAAGA,KAAM,CAAC;AAEtE;AAGA,SAASW,iBAAiBA,CAAAkD,IAAA,EAWvB;EAAA,IAXwB;MACzB7D,KAAK;MACLY,OAAO;MACPtB;IAQF,CAAC,GAAAuE,IAAA;IAPIC,KAAK,GAAApB,wBAAA,CAAAmB,IAAA,EAAAE,UAAA;EAQR,IAAK,CAACD,KAAK,CAACtD,OAAO,IAAI,CAACsD,KAAK,CAACrD,OAAO,IAAK,CAACT,KAAK,EAAE;IAChD,OAAO,EAAE;EACX;EAEA,MAAM,CAACgE,eAAe,EAAEC,aAAa,CAAC,GAAGjB,eAAe,CAAChD,KAAK,CAAC;EAG/D,MAAMQ,OAAO,GAAG1B,UAAU,CAACH,mBAAmB,CAACmF,KAAK,CAACtD,OAAO,CAAC,CAAC;EAC9D,MAAMC,OAAO,GAAG3B,UAAU,CAACH,mBAAmB,CAACmF,KAAK,CAACrD,OAAO,CAAC,CAAC;EAE9D,MAAMqC,SAAS,GAAGhE,UAAU,CAACH,mBAAmB,CAACqF,eAAe,CAAC,CAAC;EAClE,MAAMjB,OAAO,GAAGjE,UAAU,CAACH,mBAAmB,CAACsF,aAAa,CAAC,CAAC;EAE9D,MAAMC,QAAQ,GAAG;IACf1D,OAAO,EACLsD,KAAK,CAACtD,OAAO,YAAYnB,IAAI,GACzByE,KAAK,CAACtD,OAAO,CAAC2D,WAAW,CAAC,CAAC,GAC3BL,KAAK,CAACtD,OAAO;IACnBC,OAAO,EACLqD,KAAK,CAACrD,OAAO,YAAYpB,IAAI,GACzByE,KAAK,CAACrD,OAAO,CAAC0D,WAAW,CAAC,CAAC,GAC3BL,KAAK,CAACrD;EACd,CAAC;EAED,MAAM2D,OAA0B,GAAG;IACjC9E,MAAM;IACN+E,OAAO,EAAE;EACX,CAAC;EAED,MAAMC,QAA0B,GAAG,EAAE;EAGrC,IAAI,CAAC1D,OAAO,EAAE;IACZ,IAAIpC,QAAQ,CAACsE,SAAS,EAAEtC,OAAO,CAAC,EAAE;MAChC8D,QAAQ,CAACC,IAAI,CACX,IAAI1F,SAAS,CAAC,mBAAmB,EAAE;QACjC2F,aAAa,EAAE;UAAExD,IAAI,EAAEpC,UAAU,CAACsF,QAAQ,CAAC1D,OAAO,EAAE4D,OAAO;QAAE;MAC/D,CAAC,CACH,CAAC;IACH;IAEA,IAAI3F,OAAO,CAACqE,SAAS,EAAErC,OAAO,CAAC,EAAE;MAC/B6D,QAAQ,CAACC,IAAI,CACX,IAAI1F,SAAS,CAAC,mBAAmB,EAAE;QACjC2F,aAAa,EAAE;UAAExD,IAAI,EAAEpC,UAAU,CAACsF,QAAQ,CAACzD,OAAO,EAAE2D,OAAO;QAAE;MAC/D,CAAC,CACH,CAAC;IACH;IAEA,OAAOE,QAAQ;EACjB;EAGA,IAAI9F,QAAQ,CAACsE,SAAS,EAAEtC,OAAO,CAAC,EAAE;IAChC8D,QAAQ,CAACC,IAAI,CACX,IAAI1F,SAAS,CAAC,4BAA4B,EAAE;MAC1C2F,aAAa,EAAE;QAAExD,IAAI,EAAEpC,UAAU,CAACsF,QAAQ,CAAC1D,OAAO,EAAE4D,OAAO;MAAE;IAC/D,CAAC,CACH,CAAC;EACH;EAEA,IAAI3F,OAAO,CAACqE,SAAS,EAAErC,OAAO,CAAC,EAAE;IAC/B6D,QAAQ,CAACC,IAAI,CACX,IAAI1F,SAAS,CAAC,4BAA4B,EAAE;MAC1C2F,aAAa,EAAE;QAAExD,IAAI,EAAEpC,UAAU,CAACsF,QAAQ,CAACzD,OAAO,EAAE2D,OAAO;MAAE;IAC/D,CAAC,CACH,CAAC;EACH;EAGA,IAAI5F,QAAQ,CAACuE,OAAO,EAAEvC,OAAO,CAAC,EAAE;IAC9B8D,QAAQ,CAACC,IAAI,CACX,IAAI1F,SAAS,CAAC,0BAA0B,EAAE;MACxC2F,aAAa,EAAE;QAAExD,IAAI,EAAEpC,UAAU,CAACsF,QAAQ,CAAC1D,OAAO,EAAE4D,OAAO;MAAE;IAC/D,CAAC,CACH,CAAC;EACH;EAEA,IAAI3F,OAAO,CAACsE,OAAO,EAAEtC,OAAO,CAAC,EAAE;IAC7B6D,QAAQ,CAACC,IAAI,CACX,IAAI1F,SAAS,CAAC,0BAA0B,EAAE;MACxC2F,aAAa,EAAE;QAAExD,IAAI,EAAEpC,UAAU,CAACsF,QAAQ,CAACzD,OAAO,EAAE2D,OAAO;MAAE;IAC/D,CAAC,CACH,CAAC;EACH;EAEA,OAAOE,QAAQ;AACjB;AAEA,SAAShE,YAAYA,CAAC;EACpBa,WAAW;EACXC,gBAAgB;EAChBC;AACY,CAAC,EAAE;EACf,IAAIF,WAAW,EAAE;IACf,OAAO,CACL,IAAItC,SAAS,CAAC,uBAAuB,EAAE;MACrC2F,aAAa,EAAE;QAAExD,IAAI,EAAEG;MAAY;IACrC,CAAC,CAAC,CACH;EACH;EAEA,MAAMsD,MAAwB,GAAG,EAAE;EAEnC,IAAIrD,gBAAgB,EAAE;IACpBqD,MAAM,CAACF,IAAI,CACT,IAAI1F,SAAS,CAAC,4BAA4B,EAAE;MAC1C2F,aAAa,EAAE;QAAExD,IAAI,EAAEI;MAAiB;IAC1C,CAAC,CACH,CAAC;EACH;EAEA,IAAIC,cAAc,EAAE;IAClBoD,MAAM,CAACF,IAAI,CACT,IAAI1F,SAAS,CAAC,0BAA0B,EAAE;MACxC2F,aAAa,EAAE;QAAExD,IAAI,EAAEK;MAAe;IACxC,CAAC,CACH,CAAC;EACH;EAEA,OAAOoD,MAAM;AACf;AAIA,MAAMC,kBAAkB,GAAG,CACzB,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,EACT,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,MAAM,EACN,MAAM,EACN,cAAc,EACd,WAAW,EACX,QAAQ,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,CACb;AAED,SAAS7B,mBAAmBA,CAAC5D,KAAgB,EAAE;EAC7C,MAAM2D,eAAe,GAAG+B,MAAM,CAACC,IAAI,CAAC3F,KAAK,CAAC,CAAC4F,MAAM,CAC/C,CAACjC,eAAe,EAAEkC,GAAG,KAAK;IACxB,IAAIJ,kBAAkB,CAACK,QAAQ,CAACD,GAAG,CAAC,EAAE;MACpClC,eAAe,CAACkC,GAAG,CAAC,GAAG7F,KAAK,CAAC6F,GAAG,CAAC;IACnC;IAEA,OAAOlC,eAAe;EACxB,CAAC,EACD,CAAC,CACH,CAAC;EAED,OAAOA,eAAe;AACxB;AAEA5D,aAAa,CAACgG,qBAAqB,GAAG,IAAI;AAC1C,eAAehG,aAAa","ignoreList":[]}
|
|
@@ -89,7 +89,8 @@ function Password(_ref) {
|
|
|
89
89
|
"aria-describedby": id + '-submit-button',
|
|
90
90
|
submitElement: React.createElement(ToggleVisibilityButton, null),
|
|
91
91
|
disabled: disabled,
|
|
92
|
-
size: size
|
|
92
|
+
size: size,
|
|
93
|
+
autoComplete: "current-password"
|
|
93
94
|
}, props));
|
|
94
95
|
}
|
|
95
96
|
export default Password;
|