@dnb/eufemia 10.65.0 → 10.66.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 +39 -0
- package/cjs/components/card/Card.js +1 -1
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/date-picker/DatePicker.d.ts +3 -1
- package/cjs/components/date-picker/DatePicker.js +3 -1
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerAddon.js +8 -1
- package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.d.ts +5 -0
- package/cjs/components/date-picker/DatePickerInput.js +54 -36
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.d.ts +4 -3
- package/cjs/components/date-picker/DatePickerProvider.js +7 -2
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
- package/cjs/components/flex/Container.d.ts +2 -1
- package/cjs/components/flex/Container.js +31 -24
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/flex/ContainerDocs.d.ts +2 -0
- package/cjs/components/flex/ContainerDocs.js +81 -0
- package/cjs/components/flex/ContainerDocs.js.map +1 -0
- package/cjs/components/flex/style/dnb-flex.css +36 -4
- package/cjs/components/flex/style/dnb-flex.min.css +1 -1
- package/cjs/components/flex/style/flex-container.scss +39 -4
- package/cjs/components/help-button/HelpButtonInline.d.ts +6 -0
- package/cjs/components/help-button/HelpButtonInline.js +51 -19
- package/cjs/components/help-button/HelpButtonInline.js.map +1 -1
- package/cjs/components/help-button/HelpButtonInstance.js +1 -1
- package/cjs/components/help-button/HelpButtonInstance.js.map +1 -1
- package/cjs/components/slider/SliderDocs.js +2 -2
- package/cjs/components/slider/SliderDocs.js.map +1 -1
- package/cjs/components/slider/SliderProvider.js +0 -2
- package/cjs/components/slider/SliderProvider.js.map +1 -1
- package/cjs/components/slider/types.d.ts +2 -2
- package/cjs/components/slider/types.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicator.d.ts +6 -0
- package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorContext.d.ts +2 -0
- package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButton.d.ts +9 -1
- package/cjs/components/toggle-button/ToggleButtonDocs.js +1 -0
- package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +11 -5
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +46 -42
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Slider/Slider.js +13 -4
- package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +17 -13
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/cjs/extensions/forms/Value/ValueDocs.js +5 -0
- package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +40 -10
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +78 -0
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +94 -0
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
- package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +67 -0
- package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +102 -206
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/types.d.ts +35 -0
- package/cjs/extensions/forms/Wizard/Context/types.js +1 -0
- package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -0
- package/cjs/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
- package/cjs/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.d.ts +4 -0
- package/cjs/extensions/forms/Wizard/Step/Step.js +28 -9
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
- package/cjs/extensions/forms/Wizard/Step/StepContext.js +12 -0
- package/cjs/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +2 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +2 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +41 -23
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +17 -0
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +9 -1
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +6 -1
- package/cjs/fragments/drawer-list/DrawerList.js +1 -0
- package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/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 +53 -4
- package/cjs/style/dnb-ui-components.min.css +2 -2
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +17 -0
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +17 -0
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +70 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +17 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +17 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +70 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +17 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +17 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +70 -4
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +17 -0
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +17 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/card/Card.js +1 -1
- package/components/card/Card.js.map +1 -1
- package/components/date-picker/DatePicker.d.ts +3 -1
- package/components/date-picker/DatePicker.js +3 -1
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerAddon.js +6 -1
- package/components/date-picker/DatePickerAddon.js.map +1 -1
- package/components/date-picker/DatePickerInput.d.ts +5 -0
- package/components/date-picker/DatePickerInput.js +54 -36
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/date-picker/DatePickerProvider.d.ts +4 -3
- package/components/date-picker/DatePickerProvider.js +7 -2
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/hooks/useDates.js.map +1 -1
- package/components/flex/Container.d.ts +2 -1
- package/components/flex/Container.js +32 -25
- package/components/flex/Container.js.map +1 -1
- package/components/flex/ContainerDocs.d.ts +2 -0
- package/components/flex/ContainerDocs.js +74 -0
- package/components/flex/ContainerDocs.js.map +1 -0
- package/components/flex/style/dnb-flex.css +36 -4
- package/components/flex/style/dnb-flex.min.css +1 -1
- package/components/flex/style/flex-container.scss +39 -4
- package/components/help-button/HelpButtonInline.d.ts +6 -0
- package/components/help-button/HelpButtonInline.js +51 -19
- package/components/help-button/HelpButtonInline.js.map +1 -1
- package/components/help-button/HelpButtonInstance.js +1 -1
- package/components/help-button/HelpButtonInstance.js.map +1 -1
- package/components/slider/SliderDocs.js +2 -2
- package/components/slider/SliderDocs.js.map +1 -1
- package/components/slider/SliderProvider.js +0 -2
- package/components/slider/SliderProvider.js.map +1 -1
- package/components/slider/types.d.ts +2 -2
- package/components/slider/types.js.map +1 -1
- package/components/step-indicator/StepIndicator.d.ts +6 -0
- package/components/step-indicator/StepIndicator.js.map +1 -1
- package/components/step-indicator/StepIndicatorContext.d.ts +2 -0
- package/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
- package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/components/toggle-button/ToggleButton.d.ts +9 -1
- package/components/toggle-button/ToggleButtonDocs.js +1 -0
- package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/es/components/card/Card.js +1 -1
- package/es/components/card/Card.js.map +1 -1
- package/es/components/date-picker/DatePicker.d.ts +3 -1
- package/es/components/date-picker/DatePicker.js +3 -1
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerAddon.js +6 -1
- package/es/components/date-picker/DatePickerAddon.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.d.ts +5 -0
- package/es/components/date-picker/DatePickerInput.js +54 -36
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.d.ts +4 -3
- package/es/components/date-picker/DatePickerProvider.js +7 -2
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/hooks/useDates.js.map +1 -1
- package/es/components/flex/Container.d.ts +2 -1
- package/es/components/flex/Container.js +32 -25
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/flex/ContainerDocs.d.ts +2 -0
- package/es/components/flex/ContainerDocs.js +74 -0
- package/es/components/flex/ContainerDocs.js.map +1 -0
- package/es/components/flex/style/dnb-flex.css +36 -4
- package/es/components/flex/style/dnb-flex.min.css +1 -1
- package/es/components/flex/style/flex-container.scss +39 -4
- package/es/components/help-button/HelpButtonInline.d.ts +6 -0
- package/es/components/help-button/HelpButtonInline.js +50 -18
- package/es/components/help-button/HelpButtonInline.js.map +1 -1
- package/es/components/help-button/HelpButtonInstance.js +1 -1
- package/es/components/help-button/HelpButtonInstance.js.map +1 -1
- package/es/components/slider/SliderDocs.js +2 -2
- package/es/components/slider/SliderDocs.js.map +1 -1
- package/es/components/slider/SliderProvider.js +0 -2
- package/es/components/slider/SliderProvider.js.map +1 -1
- package/es/components/slider/types.d.ts +2 -2
- package/es/components/slider/types.js.map +1 -1
- package/es/components/step-indicator/StepIndicator.d.ts +6 -0
- package/es/components/step-indicator/StepIndicator.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorContext.d.ts +2 -0
- package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
- package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/es/components/toggle-button/ToggleButton.d.ts +9 -1
- package/es/components/toggle-button/ToggleButtonDocs.js +1 -0
- package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +11 -5
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
- package/es/extensions/forms/DataContext/Provider/Provider.js +36 -35
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/Slider/Slider.js +13 -4
- package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +17 -13
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/es/extensions/forms/Value/ValueDocs.js +5 -0
- package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +40 -10
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
- package/es/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js +66 -0
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +85 -0
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
- package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +54 -0
- package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +97 -194
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/types.d.ts +35 -0
- package/es/extensions/forms/Wizard/Context/types.js +1 -0
- package/es/extensions/forms/Wizard/Context/types.js.map +1 -0
- package/es/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
- package/es/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.d.ts +4 -0
- package/es/extensions/forms/Wizard/Step/Step.js +29 -10
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
- package/es/extensions/forms/Wizard/Step/StepContext.js +4 -0
- package/es/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
- package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/es/extensions/forms/constants/locales/en-GB.js +2 -1
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/es/extensions/forms/constants/locales/index.d.ts +2 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +42 -22
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +17 -0
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +9 -1
- package/es/extensions/forms/types.js.map +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +6 -1
- package/es/fragments/drawer-list/DrawerList.js +1 -0
- package/es/fragments/drawer-list/DrawerList.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/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 +53 -4
- package/es/style/dnb-ui-components.min.css +2 -2
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +17 -0
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +17 -0
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +70 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +17 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +17 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +70 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +17 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +17 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +70 -4
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.css +17 -0
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +17 -0
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +11 -5
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
- package/extensions/forms/DataContext/Provider/Provider.js +46 -42
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/Slider/Slider.js +13 -4
- package/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +17 -13
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/extensions/forms/Value/ValueDocs.js +5 -0
- package/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +40 -10
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
- package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
- package/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
- package/extensions/forms/Wizard/Container/DisplaySteps.js +70 -0
- package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
- package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
- package/extensions/forms/Wizard/Container/IterateOverSteps.js +86 -0
- package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
- package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
- package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +57 -0
- package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
- package/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +103 -207
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/Context/types.d.ts +35 -0
- package/extensions/forms/Wizard/Context/types.js +1 -0
- package/extensions/forms/Wizard/Context/types.js.map +1 -0
- package/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
- package/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.d.ts +4 -0
- package/extensions/forms/Wizard/Step/Step.js +29 -10
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
- package/extensions/forms/Wizard/Step/StepContext.js +4 -0
- package/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
- package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/extensions/forms/constants/locales/en-GB.js +2 -1
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/extensions/forms/constants/locales/index.d.ts +2 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +41 -23
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +17 -0
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +9 -1
- package/extensions/forms/types.js.map +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +6 -1
- package/fragments/drawer-list/DrawerList.js +1 -0
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/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 +53 -4
- package/style/dnb-ui-components.min.css +2 -2
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +17 -0
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +17 -0
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +70 -4
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +17 -0
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +17 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +70 -4
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +17 -0
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +17 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +70 -4
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.css +17 -0
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +17 -0
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -3,24 +3,25 @@
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
5
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
6
|
-
const _excluded = ["className", "id", "mode", "initialActiveIndex", "omitScrollManagement", "omitFocusManagement", "onStepChange", "children", "noAnimation", "prerenderFieldProps", "variant", "sidebarId"];
|
|
6
|
+
const _excluded = ["className", "id", "mode", "initialActiveIndex", "omitScrollManagement", "omitFocusManagement", "onStepChange", "children", "noAnimation", "prerenderFieldProps", "keepInDOM", "validationMode", "variant", "sidebarId"];
|
|
7
7
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
8
8
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
9
9
|
import React, { useContext, useCallback, useRef, useReducer, useMemo } from 'react';
|
|
10
|
-
import ReactDOM from 'react-dom';
|
|
11
10
|
import classnames from 'classnames';
|
|
12
|
-
import { Space
|
|
13
|
-
import {
|
|
11
|
+
import { Space } from '../../../../components';
|
|
12
|
+
import { warn } from '../../../../shared/component-helper';
|
|
14
13
|
import { isAsync } from '../../../../shared/helpers/isAsync';
|
|
15
14
|
import useId from '../../../../shared/helpers/useId';
|
|
16
|
-
import Step, { handleDeprecatedProps as handleDeprecatedStepProps } from '../Step';
|
|
17
15
|
import WizardContext from '../Context/WizardContext';
|
|
18
|
-
import DataContext
|
|
16
|
+
import DataContext from '../../DataContext/Context';
|
|
19
17
|
import Handler from '../../Form/Handler/Handler';
|
|
20
18
|
import { createReferenceKey, useSharedState } from '../../../../shared/helpers/useSharedState';
|
|
21
19
|
import useHandleLayoutEffect from './useHandleLayoutEffect';
|
|
22
20
|
import useStepAnimation from './useStepAnimation';
|
|
23
21
|
import useVisibility from '../../Form/Visibility/useVisibility';
|
|
22
|
+
import { DisplaySteps } from './DisplaySteps';
|
|
23
|
+
import { IterateOverSteps } from './IterateOverSteps';
|
|
24
|
+
import { PrerenderFieldPropsOfOtherSteps } from './PrerenderFieldPropsOfOtherSteps';
|
|
24
25
|
const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
|
|
25
26
|
function WizardContainer(props) {
|
|
26
27
|
var _dataContext$setHandl;
|
|
@@ -35,6 +36,8 @@ function WizardContainer(props) {
|
|
|
35
36
|
children,
|
|
36
37
|
noAnimation = true,
|
|
37
38
|
prerenderFieldProps = true,
|
|
39
|
+
keepInDOM,
|
|
40
|
+
validationMode,
|
|
38
41
|
variant = 'sidebar',
|
|
39
42
|
sidebarId
|
|
40
43
|
} = props,
|
|
@@ -45,14 +48,15 @@ function WizardContainer(props) {
|
|
|
45
48
|
setFormState,
|
|
46
49
|
handleSubmitCall,
|
|
47
50
|
setShowAllErrors,
|
|
48
|
-
showAllErrors,
|
|
49
51
|
setSubmitState
|
|
50
52
|
} = dataContext;
|
|
51
53
|
const id = useId(idProp);
|
|
52
54
|
const [, forceUpdate] = useReducer(() => ({}), {});
|
|
53
55
|
const activeIndexRef = useRef(initialActiveIndex);
|
|
54
56
|
const totalStepsRef = useRef(NaN);
|
|
55
|
-
const
|
|
57
|
+
const stepStatusRef = useRef({});
|
|
58
|
+
const fieldErrorRef = useRef({});
|
|
59
|
+
const visitedStepsRef = useRef({});
|
|
56
60
|
const elementRef = useRef();
|
|
57
61
|
const stepElementRef = useRef();
|
|
58
62
|
const preventNextStepRef = useRef(false);
|
|
@@ -60,9 +64,40 @@ function WizardContainer(props) {
|
|
|
60
64
|
const tmpStepsRef = useRef({});
|
|
61
65
|
const updateTitlesRef = useRef();
|
|
62
66
|
const prerenderFieldPropsRef = useRef({});
|
|
67
|
+
const bypassOnNavigation = validationMode === 'bypassOnNavigation';
|
|
63
68
|
const sharedStateRef = useRef();
|
|
64
69
|
sharedStateRef.current = useSharedState(hasContext && id ? createReferenceKey(id, 'wizard') : undefined);
|
|
65
|
-
|
|
70
|
+
visitedStepsRef.current[activeIndexRef.current] = true;
|
|
71
|
+
const setStepState = useCallback((index, state) => {
|
|
72
|
+
stepStatusRef.current[index] = state;
|
|
73
|
+
}, []);
|
|
74
|
+
const hasFieldErrorInStep = useCallback(index => {
|
|
75
|
+
return Object.values(fieldErrorRef.current).some(({
|
|
76
|
+
index: i,
|
|
77
|
+
hasError
|
|
78
|
+
}) => {
|
|
79
|
+
return i === index && hasError;
|
|
80
|
+
});
|
|
81
|
+
}, []);
|
|
82
|
+
const revealError = useCallback((index, path, hasError) => {
|
|
83
|
+
fieldErrorRef.current[path] = {
|
|
84
|
+
index,
|
|
85
|
+
hasError
|
|
86
|
+
};
|
|
87
|
+
if (hasFieldErrorInStep(index)) {
|
|
88
|
+
setStepState(index, 'error');
|
|
89
|
+
}
|
|
90
|
+
}, [hasFieldErrorInStep, setStepState]);
|
|
91
|
+
const activeIndex = activeIndexRef.current;
|
|
92
|
+
const hasErrorInActiveStep = hasFieldErrorInStep(activeIndex);
|
|
93
|
+
useMemo(() => {
|
|
94
|
+
const currentState = stepStatusRef.current[activeIndex];
|
|
95
|
+
if (!hasErrorInActiveStep && ['error', 'valid'].includes(currentState)) {
|
|
96
|
+
setStepState(activeIndex, 'valid');
|
|
97
|
+
} else {
|
|
98
|
+
setStepState(activeIndex, hasErrorInActiveStep ? 'error' : undefined);
|
|
99
|
+
}
|
|
100
|
+
}, [activeIndex, hasErrorInActiveStep, setStepState]);
|
|
66
101
|
const preventNavigation = useCallback((shouldPrevent = true) => {
|
|
67
102
|
preventNextStepRef.current = shouldPrevent;
|
|
68
103
|
}, []);
|
|
@@ -116,7 +151,7 @@ function WizardContainer(props) {
|
|
|
116
151
|
scrollToTop();
|
|
117
152
|
}
|
|
118
153
|
}, [omitScrollManagement, omitFocusManagement, setFocus, scrollToTop]);
|
|
119
|
-
const handleStepChange = useCallback(({
|
|
154
|
+
const handleStepChange = useCallback(async ({
|
|
120
155
|
index,
|
|
121
156
|
skipErrorCheck,
|
|
122
157
|
skipStepChangeCall,
|
|
@@ -124,33 +159,35 @@ function WizardContainer(props) {
|
|
|
124
159
|
skipStepChangeCallFromHook,
|
|
125
160
|
mode
|
|
126
161
|
}) => {
|
|
127
|
-
|
|
162
|
+
const onSubmit = async () => {
|
|
163
|
+
if (!skipStepChangeCallFromHook) {
|
|
164
|
+
var _sharedStateRef$curre, _sharedStateRef$curre2, _sharedStateRef$curre3;
|
|
165
|
+
(_sharedStateRef$curre = sharedStateRef.current) === null || _sharedStateRef$curre === void 0 ? void 0 : (_sharedStateRef$curre2 = _sharedStateRef$curre.data) === null || _sharedStateRef$curre2 === void 0 ? void 0 : (_sharedStateRef$curre3 = _sharedStateRef$curre2.onStepChange) === null || _sharedStateRef$curre3 === void 0 ? void 0 : _sharedStateRef$curre3.call(_sharedStateRef$curre2, index, mode, getStepChangeOptions(index));
|
|
166
|
+
}
|
|
167
|
+
let result = undefined;
|
|
168
|
+
if (!skipStepChangeCall && !(skipStepChangeCallBeforeMounted && !isInteractionRef.current)) {
|
|
169
|
+
result = await callOnStepChange(index, mode);
|
|
170
|
+
}
|
|
171
|
+
setFormState('abort');
|
|
172
|
+
setShowAllErrors(bypassOnNavigation ? false : stepStatusRef.current[index] === 'error');
|
|
173
|
+
if (!preventNextStepRef.current && !(result instanceof Error)) {
|
|
174
|
+
handleLayoutEffect();
|
|
175
|
+
activeIndexRef.current = index;
|
|
176
|
+
forceUpdate();
|
|
177
|
+
}
|
|
178
|
+
preventNextStepRef.current = false;
|
|
179
|
+
return result;
|
|
180
|
+
};
|
|
181
|
+
await handleSubmitCall({
|
|
128
182
|
skipErrorCheck,
|
|
129
183
|
skipFieldValidation: skipErrorCheck,
|
|
130
184
|
enableAsyncBehavior: isAsync(onStepChange),
|
|
131
|
-
onSubmit:
|
|
132
|
-
if (!skipStepChangeCallFromHook) {
|
|
133
|
-
var _sharedStateRef$curre, _sharedStateRef$curre2, _sharedStateRef$curre3;
|
|
134
|
-
(_sharedStateRef$curre = sharedStateRef.current) === null || _sharedStateRef$curre === void 0 ? void 0 : (_sharedStateRef$curre2 = _sharedStateRef$curre.data) === null || _sharedStateRef$curre2 === void 0 ? void 0 : (_sharedStateRef$curre3 = _sharedStateRef$curre2.onStepChange) === null || _sharedStateRef$curre3 === void 0 ? void 0 : _sharedStateRef$curre3.call(_sharedStateRef$curre2, index, mode, getStepChangeOptions(index));
|
|
135
|
-
}
|
|
136
|
-
let result = undefined;
|
|
137
|
-
if (!skipStepChangeCall && !(skipStepChangeCallBeforeMounted && !isInteractionRef.current)) {
|
|
138
|
-
result = await callOnStepChange(index, mode);
|
|
139
|
-
}
|
|
140
|
-
setFormState('abort');
|
|
141
|
-
if (!skipErrorCheck) {
|
|
142
|
-
setShowAllErrors(Boolean(errorOnStepRef.current[index]));
|
|
143
|
-
}
|
|
144
|
-
if (!preventNextStepRef.current && !(result instanceof Error)) {
|
|
145
|
-
handleLayoutEffect();
|
|
146
|
-
activeIndexRef.current = index;
|
|
147
|
-
forceUpdate();
|
|
148
|
-
}
|
|
149
|
-
preventNextStepRef.current = false;
|
|
150
|
-
return result;
|
|
151
|
-
}
|
|
185
|
+
onSubmit: bypassOnNavigation ? () => null : onSubmit
|
|
152
186
|
});
|
|
153
|
-
|
|
187
|
+
if (bypassOnNavigation) {
|
|
188
|
+
await onSubmit();
|
|
189
|
+
}
|
|
190
|
+
}, [bypassOnNavigation, callOnStepChange, getStepChangeOptions, handleLayoutEffect, handleSubmitCall, isInteractionRef, onStepChange, setFormState, setShowAllErrors]);
|
|
154
191
|
const setActiveIndex = useCallback((index, options) => {
|
|
155
192
|
if (index === activeIndexRef.current) {
|
|
156
193
|
return;
|
|
@@ -171,46 +208,66 @@ function WizardContainer(props) {
|
|
|
171
208
|
const handleChange = useCallback(({
|
|
172
209
|
current_step
|
|
173
210
|
}) => {
|
|
174
|
-
setActiveIndex(current_step, {
|
|
211
|
+
setActiveIndex(current_step, mode === 'loose' ? {
|
|
175
212
|
skipErrorCheck: true
|
|
176
|
-
});
|
|
177
|
-
}, [setActiveIndex]);
|
|
213
|
+
} : undefined);
|
|
214
|
+
}, [mode, setActiveIndex]);
|
|
178
215
|
const setFormError = useCallback(error => {
|
|
179
216
|
setSubmitState === null || setSubmitState === void 0 ? void 0 : setSubmitState({
|
|
180
217
|
error
|
|
181
218
|
});
|
|
182
219
|
}, [setSubmitState]);
|
|
220
|
+
const handleUnknownStepsState = useCallback(() => {
|
|
221
|
+
const index = activeIndexRef.current;
|
|
222
|
+
for (let i = 0; i < totalStepsRef.current; i++) {
|
|
223
|
+
if (!visitedStepsRef.current[i] && stepStatusRef.current[i] === undefined && i < index && i !== index) {
|
|
224
|
+
setStepState(i, 'unknown');
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}, [setStepState]);
|
|
228
|
+
const hasInvalidStepsState = useCallback(forStates => {
|
|
229
|
+
const steps = Object.values(stepStatusRef.current);
|
|
230
|
+
return (forStates || ['unknown', 'error']).some(state => steps.includes(state));
|
|
231
|
+
}, []);
|
|
183
232
|
const handleSubmit = useCallback(({
|
|
184
233
|
preventSubmit
|
|
185
234
|
}) => {
|
|
235
|
+
handleUnknownStepsState();
|
|
236
|
+
if (hasInvalidStepsState()) {
|
|
237
|
+
return preventSubmit();
|
|
238
|
+
}
|
|
186
239
|
if (activeIndexRef.current + 1 < totalStepsRef.current) {
|
|
187
240
|
handleNext();
|
|
188
241
|
preventSubmit();
|
|
189
242
|
}
|
|
190
|
-
}, [handleNext]);
|
|
243
|
+
}, [handleUnknownStepsState, hasInvalidStepsState, handleNext]);
|
|
191
244
|
(_dataContext$setHandl = dataContext.setHandleSubmit) === null || _dataContext$setHandl === void 0 ? void 0 : _dataContext$setHandl.call(dataContext, handleSubmit);
|
|
192
245
|
const {
|
|
193
246
|
check
|
|
194
247
|
} = useVisibility();
|
|
195
|
-
const activeIndex = activeIndexRef.current;
|
|
196
248
|
const providerValue = useMemo(() => {
|
|
197
249
|
return {
|
|
198
250
|
id,
|
|
199
251
|
activeIndex,
|
|
252
|
+
initialActiveIndex,
|
|
200
253
|
stepElementRef,
|
|
201
254
|
stepsRef,
|
|
202
255
|
updateTitlesRef,
|
|
203
256
|
activeIndexRef,
|
|
204
257
|
totalStepsRef,
|
|
258
|
+
stepStatusRef,
|
|
205
259
|
prerenderFieldProps,
|
|
206
260
|
prerenderFieldPropsRef,
|
|
261
|
+
keepInDOM,
|
|
207
262
|
check,
|
|
208
263
|
setActiveIndex,
|
|
209
264
|
handlePrevious,
|
|
265
|
+
hasInvalidStepsState,
|
|
266
|
+
revealError,
|
|
210
267
|
handleNext,
|
|
211
268
|
setFormError
|
|
212
269
|
};
|
|
213
|
-
}, [
|
|
270
|
+
}, [id, activeIndex, initialActiveIndex, prerenderFieldProps, keepInDOM, check, setActiveIndex, handlePrevious, hasInvalidStepsState, revealError, handleNext, setFormError]);
|
|
214
271
|
useLayoutEffect(() => {
|
|
215
272
|
if (id && hasContext) {
|
|
216
273
|
sharedStateRef.current.extend(providerValue);
|
|
@@ -252,164 +309,10 @@ function WizardContainer(props) {
|
|
|
252
309
|
sidebarId: sidebarId
|
|
253
310
|
}), React.createElement("div", {
|
|
254
311
|
className: "dnb-forms-wizard-layout__contents"
|
|
255
|
-
}, React.createElement(IterateOverSteps, null, children))), prerenderFieldProps && React.createElement(PrerenderFieldPropsOfOtherSteps, {
|
|
312
|
+
}, React.createElement(IterateOverSteps, null, children))), prerenderFieldProps && !keepInDOM && React.createElement(PrerenderFieldPropsOfOtherSteps, {
|
|
256
313
|
prerenderFieldPropsRef: prerenderFieldPropsRef
|
|
257
314
|
}));
|
|
258
315
|
}
|
|
259
|
-
function DisplaySteps({
|
|
260
|
-
mode,
|
|
261
|
-
variant,
|
|
262
|
-
noAnimation,
|
|
263
|
-
handleChange,
|
|
264
|
-
sidebarId
|
|
265
|
-
}) {
|
|
266
|
-
const [, forceUpdate] = useReducer(() => ({}), {});
|
|
267
|
-
const {
|
|
268
|
-
id,
|
|
269
|
-
activeIndexRef,
|
|
270
|
-
stepsRef,
|
|
271
|
-
updateTitlesRef
|
|
272
|
-
} = useContext(WizardContext) || {};
|
|
273
|
-
updateTitlesRef.current = () => {
|
|
274
|
-
forceUpdate();
|
|
275
|
-
};
|
|
276
|
-
const sidebar_id = variant === 'drawer' && !sidebarId ? undefined : sidebarId !== null && sidebarId !== void 0 ? sidebarId : id;
|
|
277
|
-
return React.createElement("aside", {
|
|
278
|
-
className: "dnb-forms-wizard-layout__indicator"
|
|
279
|
-
}, React.createElement(StepIndicator.Sidebar, {
|
|
280
|
-
sidebar_id: sidebar_id
|
|
281
|
-
}), React.createElement(StepIndicator, {
|
|
282
|
-
bottom: true,
|
|
283
|
-
current_step: activeIndexRef.current,
|
|
284
|
-
data: Object.values(stepsRef.current).map(({
|
|
285
|
-
title,
|
|
286
|
-
inactive
|
|
287
|
-
}) => ({
|
|
288
|
-
title,
|
|
289
|
-
inactive
|
|
290
|
-
})),
|
|
291
|
-
mode: mode,
|
|
292
|
-
no_animation: noAnimation,
|
|
293
|
-
on_change: handleChange,
|
|
294
|
-
sidebar_id: sidebar_id
|
|
295
|
-
}));
|
|
296
|
-
}
|
|
297
|
-
function IterateOverSteps({
|
|
298
|
-
children
|
|
299
|
-
}) {
|
|
300
|
-
const {
|
|
301
|
-
check,
|
|
302
|
-
stepsRef,
|
|
303
|
-
activeIndexRef,
|
|
304
|
-
totalStepsRef,
|
|
305
|
-
prerenderFieldProps,
|
|
306
|
-
prerenderFieldPropsRef
|
|
307
|
-
} = useContext(WizardContext);
|
|
308
|
-
stepsRef.current = {};
|
|
309
|
-
let incrementIndex = -1;
|
|
310
|
-
const childrenArray = React.Children.map(children, child => {
|
|
311
|
-
if (React.isValidElement(child)) {
|
|
312
|
-
var _child, _child2;
|
|
313
|
-
let step = child;
|
|
314
|
-
if (((_child = child) === null || _child === void 0 ? void 0 : _child.type) !== Step && typeof child.type === 'function') {
|
|
315
|
-
var _step;
|
|
316
|
-
step = child.type.apply(child.type, [child.props]);
|
|
317
|
-
if (((_step = step) === null || _step === void 0 ? void 0 : _step.type) === Step) {
|
|
318
|
-
child = step;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
if (((_child2 = child) === null || _child2 === void 0 ? void 0 : _child2.type) === Step) {
|
|
322
|
-
const {
|
|
323
|
-
title,
|
|
324
|
-
inactive,
|
|
325
|
-
include,
|
|
326
|
-
includeWhen,
|
|
327
|
-
id
|
|
328
|
-
} = handleDeprecatedStepProps(child.props);
|
|
329
|
-
if (include === false) {
|
|
330
|
-
return null;
|
|
331
|
-
}
|
|
332
|
-
if (includeWhen && !check({
|
|
333
|
-
visibleWhen: includeWhen
|
|
334
|
-
})) {
|
|
335
|
-
return null;
|
|
336
|
-
}
|
|
337
|
-
incrementIndex++;
|
|
338
|
-
const index = incrementIndex;
|
|
339
|
-
stepsRef.current[index] = {
|
|
340
|
-
id,
|
|
341
|
-
title: title !== undefined ? convertJsxToString(title) : 'Title missing',
|
|
342
|
-
inactive
|
|
343
|
-
};
|
|
344
|
-
const key = `${index}-${activeIndexRef.current}`;
|
|
345
|
-
const clone = props => React.cloneElement(child, props);
|
|
346
|
-
if (prerenderFieldProps && typeof document !== 'undefined' && index !== activeIndexRef.current && typeof prerenderFieldPropsRef.current['step-' + index] === 'undefined') {
|
|
347
|
-
prerenderFieldPropsRef.current['step-' + index] = () => clone({
|
|
348
|
-
key,
|
|
349
|
-
index,
|
|
350
|
-
prerenderFieldProps: true
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
return clone({
|
|
354
|
-
key,
|
|
355
|
-
index
|
|
356
|
-
});
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
return child;
|
|
360
|
-
});
|
|
361
|
-
if ((childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray.length) === 0) {
|
|
362
|
-
activeIndexRef.current = 0;
|
|
363
|
-
} else if ((childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray.length) < activeIndexRef.current + 1) {
|
|
364
|
-
activeIndexRef.current = childrenArray.length - 1;
|
|
365
|
-
}
|
|
366
|
-
totalStepsRef.current = childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray.length;
|
|
367
|
-
return childrenArray;
|
|
368
|
-
}
|
|
369
|
-
function PrerenderFieldPropsOfOtherSteps({
|
|
370
|
-
prerenderFieldPropsRef
|
|
371
|
-
}) {
|
|
372
|
-
const hasRenderedRef = useRef(true);
|
|
373
|
-
if (!hasRenderedRef.current) {
|
|
374
|
-
return null;
|
|
375
|
-
}
|
|
376
|
-
hasRenderedRef.current = false;
|
|
377
|
-
return React.createElement(WizardPortal, null, React.createElement(PrerenderFieldPropsProvider, null, React.createElement("iframe", {
|
|
378
|
-
title: "Wizard Prerender",
|
|
379
|
-
hidden: true
|
|
380
|
-
}, Object.values(prerenderFieldPropsRef.current).map((Fn, i) => React.createElement(Fn, {
|
|
381
|
-
key: i
|
|
382
|
-
})))));
|
|
383
|
-
}
|
|
384
|
-
function WizardPortal({
|
|
385
|
-
children
|
|
386
|
-
}) {
|
|
387
|
-
if (typeof document !== 'undefined') {
|
|
388
|
-
return ReactDOM.createPortal(children, document.body);
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
function PrerenderFieldPropsProvider({
|
|
392
|
-
children
|
|
393
|
-
}) {
|
|
394
|
-
const {
|
|
395
|
-
data,
|
|
396
|
-
setFieldInternals,
|
|
397
|
-
updateDataValue
|
|
398
|
-
} = useContext(DataContext);
|
|
399
|
-
return React.createElement(DataContext.Provider, {
|
|
400
|
-
value: _objectSpread(_objectSpread({}, defaultContextState), {}, {
|
|
401
|
-
data,
|
|
402
|
-
setFieldInternals,
|
|
403
|
-
updateDataValue,
|
|
404
|
-
prerenderFieldProps: true,
|
|
405
|
-
hasContext: true
|
|
406
|
-
})
|
|
407
|
-
}, React.createElement(WizardContext.Provider, {
|
|
408
|
-
value: {
|
|
409
|
-
prerenderFieldProps: true
|
|
410
|
-
}
|
|
411
|
-
}, children));
|
|
412
|
-
}
|
|
413
316
|
WizardContainer._supportsSpacingProps = true;
|
|
414
317
|
export default WizardContainer;
|
|
415
318
|
//# sourceMappingURL=WizardContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardContainer.js","names":["React","useContext","useCallback","useRef","useReducer","useMemo","ReactDOM","classnames","Space","StepIndicator","convertJsxToString","warn","isAsync","useId","Step","handleDeprecatedProps","handleDeprecatedStepProps","WizardContext","DataContext","defaultContextState","Handler","createReferenceKey","useSharedState","useHandleLayoutEffect","useStepAnimation","useVisibility","useLayoutEffect","window","useEffect","WizardContainer","props","_dataContext$setHandl","className","id","idProp","mode","initialActiveIndex","omitScrollManagement","omitFocusManagement","onStepChange","children","noAnimation","prerenderFieldProps","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","showAllErrors","setSubmitState","forceUpdate","activeIndexRef","totalStepsRef","NaN","errorOnStepRef","elementRef","stepElementRef","preventNextStepRef","stepsRef","tmpStepsRef","updateTitlesRef","prerenderFieldPropsRef","sharedStateRef","current","undefined","preventNavigation","shouldPrevent","getStepChangeOptions","index","_stepsRef$current$ind","previousIndex","options","previousStep","_stepsRef$current$pre","previousId","Object","assign","callOnStepChange","setFocus","scrollToTop","isInteractionRef","executeLayoutAnimationRef","handleLayoutEffect","handleStepChange","skipErrorCheck","skipStepChangeCall","skipStepChangeCallBeforeMounted","skipStepChangeCallFromHook","skipFieldValidation","enableAsyncBehavior","onSubmit","_sharedStateRef$curre","_sharedStateRef$curre2","_sharedStateRef$curre3","data","call","result","Boolean","Error","setActiveIndex","_objectSpread","handlePrevious","handleNext","handleChange","current_step","setFormError","error","handleSubmit","preventSubmit","setHandleSubmit","check","activeIndex","providerValue","extend","_updateTitlesRef$curr","stepsLengthDidChange","count","keys","length","tmpCount","_executeLayoutAnimati","createElement","_extends","Provider","value","innerRef","DisplaySteps","IterateOverSteps","PrerenderFieldPropsOfOtherSteps","sidebar_id","Sidebar","bottom","values","map","title","inactive","no_animation","on_change","incrementIndex","childrenArray","Children","child","isValidElement","_child","_child2","step","type","_step","apply","include","includeWhen","visibleWhen","key","clone","cloneElement","document","hasRenderedRef","WizardPortal","PrerenderFieldPropsProvider","hidden","Fn","i","createPortal","body","setFieldInternals","updateDataValue","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainer.tsx"],"sourcesContent":["import React, {\n useContext,\n useCallback,\n useRef,\n useReducer,\n useMemo,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport classnames from 'classnames'\nimport { Space, StepIndicator } from '../../../../components'\nimport {\n convertJsxToString,\n warn,\n} from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport Step, {\n Props as StepProps,\n handleDeprecatedProps as handleDeprecatedStepProps,\n} from '../Step'\nimport WizardContext, {\n OnStepChange,\n OnStepChangeOptions,\n OnStepsChangeMode,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n WizardContextState,\n} from '../Context/WizardContext'\nimport DataContext, {\n defaultContextState,\n} from '../../DataContext/Context'\nimport Handler from '../../Form/Handler/Handler'\nimport {\n SharedStateReturn,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useHandleLayoutEffect from './useHandleLayoutEffect'\nimport useStepAnimation from './useStepAnimation'\nimport { ComponentProps } from '../../types'\nimport useVisibility from '../../Form/Visibility/useVisibility'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps & {\n id?: string\n\n /**\n * The mode of the wizard.\n */\n mode?: 'static' | 'strict' | 'loose'\n\n /**\n * If set to `true`, the wizard will not scroll to the first step when the user clicks on the next button.\n */\n omitScrollManagement?: boolean\n\n /**\n * If set to `true`, the wizard will not focus on the next step when the user clicks on the next button.\n */\n omitFocusManagement?: boolean\n\n /**\n * The index of the first step to be rendered.\n */\n initialActiveIndex?: StepIndex\n\n /**\n * The callback function that will be called when the user clicks on the next button.\n */\n onStepChange?: OnStepChange\n\n /**\n * The sidebar variant.\n */\n variant?: 'sidebar' | 'drawer'\n sidebarId?: string\n\n /**\n * If set to `true`, the wizard will not animate the steps.\n */\n noAnimation?: boolean\n\n /**\n * If set to `true`, the wizard pre-render all steps so the props of each field is available in the data context.\n * Defaults to `true`.\n */\n prerenderFieldProps?: boolean\n\n /**\n * The children of the wizard container.\n */\n children: React.ReactNode\n\n /**\n * @deprecated Is enabled by default. You can disable it with \"omitScrollManagement\"\n */\n scrollTopOnStepChange?: boolean\n}\n\nfunction WizardContainer(props: Props) {\n const {\n className,\n id: idProp,\n mode = 'strict',\n initialActiveIndex = 0,\n omitScrollManagement,\n omitFocusManagement,\n onStepChange,\n children,\n noAnimation = true,\n prerenderFieldProps = true,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n\n const dataContext = useContext(DataContext)\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n showAllErrors,\n setSubmitState,\n } = dataContext\n\n const id = useId(idProp)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<StepIndex>(initialActiveIndex)\n const totalStepsRef = useRef<number>(NaN)\n const errorOnStepRef = useRef<Record<StepIndex, boolean | number>>({})\n const elementRef = useRef<HTMLElement>()\n const stepElementRef = useRef<HTMLElement>()\n const preventNextStepRef = useRef(false)\n const stepsRef = useRef<Steps>({})\n const tmpStepsRef = useRef<Steps>({})\n const updateTitlesRef = useRef<() => void>()\n const prerenderFieldPropsRef = useRef<\n Record<string, () => React.ReactElement>\n >({})\n\n // - Handle shared state\n const sharedStateRef =\n useRef<\n SharedStateReturn<\n WizardContextState & { onStepChange?: OnStepChange }\n >\n >()\n sharedStateRef.current = useSharedState<WizardContextState>(\n hasContext && id ? createReferenceKey(id, 'wizard') : undefined\n )\n\n // Store the current state of showAllErrors\n errorOnStepRef.current[activeIndexRef.current] = showAllErrors\n\n const preventNavigation = useCallback((shouldPrevent = true) => {\n preventNextStepRef.current = shouldPrevent\n }, [])\n\n const getStepChangeOptions: (index: StepIndex) => OnStepChangeOptions =\n useCallback(\n (index) => {\n const previousIndex = activeIndexRef.current\n const options = {\n preventNavigation,\n previousStep: { index: previousIndex },\n }\n\n const id = stepsRef.current[index]?.id\n if (id) {\n const previousId = stepsRef.current[previousIndex]?.id\n Object.assign(options, { id })\n Object.assign(options.previousStep, { id: previousId })\n }\n\n return options\n },\n [preventNavigation]\n )\n\n const callOnStepChange = useCallback(\n async (index: StepIndex, mode: OnStepsChangeMode) => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode, getStepChangeOptions(index))\n }\n\n return onStepChange?.(index, mode, getStepChangeOptions(index))\n },\n [getStepChangeOptions, onStepChange]\n )\n\n const { setFocus, scrollToTop, isInteractionRef } =\n useHandleLayoutEffect({ elementRef, stepElementRef })\n\n const executeLayoutAnimationRef = useRef<() => void>()\n useStepAnimation({\n activeIndexRef,\n stepElementRef,\n executeLayoutAnimationRef,\n })\n\n const handleLayoutEffect = useCallback(() => {\n if (!omitFocusManagement) {\n setFocus()\n }\n if (!omitScrollManagement) {\n scrollToTop()\n }\n }, [omitScrollManagement, omitFocusManagement, setFocus, scrollToTop])\n\n const handleStepChange = useCallback(\n ({\n index,\n skipErrorCheck,\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n mode,\n }: {\n index: StepIndex\n mode: OnStepsChangeMode\n } & SetActiveIndexOptions) => {\n handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehavior: isAsync(onStepChange),\n onSubmit: async () => {\n if (!skipStepChangeCallFromHook) {\n sharedStateRef.current?.data?.onStepChange?.(\n index,\n mode,\n getStepChangeOptions(index)\n )\n }\n\n let result = undefined\n\n if (\n !skipStepChangeCall &&\n !(skipStepChangeCallBeforeMounted && !isInteractionRef.current)\n ) {\n result = await callOnStepChange(index, mode)\n }\n\n // Hide async indicator\n setFormState('abort')\n\n if (!skipErrorCheck) {\n // Set the showAllErrors to the step we got to\n setShowAllErrors(Boolean(errorOnStepRef.current[index]))\n }\n\n if (!preventNextStepRef.current && !(result instanceof Error)) {\n handleLayoutEffect()\n\n activeIndexRef.current = index\n forceUpdate()\n }\n\n preventNextStepRef.current = false\n\n return result\n },\n })\n },\n [\n callOnStepChange,\n getStepChangeOptions,\n handleLayoutEffect,\n handleSubmitCall,\n isInteractionRef,\n onStepChange,\n setFormState,\n setShowAllErrors,\n ]\n )\n\n const setActiveIndex = useCallback(\n (index: StepIndex, options?: SetActiveIndexOptions) => {\n if (index === activeIndexRef.current) {\n return\n }\n\n const mode = index > activeIndexRef.current ? 'next' : 'previous'\n\n handleStepChange({\n index,\n skipErrorCheck: mode === 'previous',\n mode,\n ...options,\n })\n },\n [handleStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n setActiveIndex(activeIndexRef.current - 1)\n }, [setActiveIndex])\n\n const handleNext = useCallback(() => {\n setActiveIndex(activeIndexRef.current + 1)\n }, [setActiveIndex])\n\n const handleChange = useCallback(\n ({ current_step }) => {\n setActiveIndex(current_step, { skipErrorCheck: true })\n },\n [setActiveIndex]\n )\n\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n const handleSubmit = useCallback(\n ({ preventSubmit }) => {\n if (activeIndexRef.current + 1 < totalStepsRef.current) {\n handleNext()\n preventSubmit()\n }\n },\n [handleNext]\n )\n dataContext.setHandleSubmit?.(handleSubmit)\n\n const { check } = useVisibility()\n\n const activeIndex = activeIndexRef.current\n const providerValue = useMemo<WizardContextState>(() => {\n return {\n id,\n activeIndex,\n stepElementRef,\n stepsRef,\n updateTitlesRef,\n activeIndexRef,\n totalStepsRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n check,\n setActiveIndex,\n handlePrevious,\n handleNext,\n setFormError,\n }\n }, [\n activeIndex,\n handleNext,\n handlePrevious,\n id,\n prerenderFieldProps,\n check,\n setActiveIndex,\n setFormError,\n ])\n\n // - Handle shared state\n useLayoutEffect(() => {\n if (id && hasContext) {\n sharedStateRef.current.extend(providerValue)\n }\n }, [hasContext, id, providerValue])\n\n useLayoutEffect(() => {\n updateTitlesRef.current?.()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current])\n\n const stepsLengthDidChange = useCallback(() => {\n const count = Object.keys(stepsRef.current).length\n const tmpCount = Object.keys(tmpStepsRef.current).length\n return count !== 0 && tmpCount !== 0 && count !== tmpCount\n }, [])\n\n // - Call onStepChange when step gets replaced or added (e.g. via includeWhen)\n useLayoutEffect(() => {\n if (stepsLengthDidChange()) {\n callOnStepChange(activeIndexRef.current, 'stepListModified')\n executeLayoutAnimationRef.current?.()\n }\n tmpStepsRef.current = stepsRef.current\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current, callOnStepChange, stepsLengthDidChange])\n\n if (!hasContext) {\n warn('You may wrap Wizard.Container in Form.Handler')\n return (\n <Handler>\n <WizardContainer {...props} id={id} />\n </Handler>\n )\n }\n\n return (\n <WizardContext.Provider value={providerValue}>\n <Space\n className={classnames(\n 'dnb-forms-wizard-layout',\n `dnb-forms-wizard-layout--${variant}`,\n className\n )}\n innerRef={elementRef}\n {...rest}\n >\n <DisplaySteps\n mode={mode}\n variant={variant}\n noAnimation={noAnimation}\n handleChange={handleChange}\n sidebarId={sidebarId}\n />\n\n <div className=\"dnb-forms-wizard-layout__contents\">\n <IterateOverSteps>{children}</IterateOverSteps>\n </div>\n </Space>\n\n {prerenderFieldProps && (\n <PrerenderFieldPropsOfOtherSteps\n prerenderFieldPropsRef={prerenderFieldPropsRef}\n />\n )}\n </WizardContext.Provider>\n )\n}\n\nfunction DisplaySteps({\n mode,\n variant,\n noAnimation,\n handleChange,\n sidebarId,\n}) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { id, activeIndexRef, stepsRef, updateTitlesRef } =\n useContext(WizardContext) || {}\n updateTitlesRef.current = () => {\n forceUpdate()\n }\n\n const sidebar_id =\n variant === 'drawer' && !sidebarId ? undefined : sidebarId ?? id\n\n return (\n <aside className=\"dnb-forms-wizard-layout__indicator\">\n <StepIndicator.Sidebar sidebar_id={sidebar_id} />\n <StepIndicator\n bottom\n current_step={activeIndexRef.current}\n data={Object.values(stepsRef.current).map(\n ({ title, inactive }) => ({ title, inactive })\n )}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={sidebar_id}\n />\n </aside>\n )\n}\n\nfunction IterateOverSteps({ children }) {\n const {\n check,\n stepsRef,\n activeIndexRef,\n totalStepsRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n } = useContext(WizardContext)\n\n stepsRef.current = {}\n let incrementIndex = -1\n\n const childrenArray = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n let step = child\n\n if (child?.type !== Step && typeof child.type === 'function') {\n step = child.type.apply(child.type, [\n child.props,\n ]) as React.ReactElement\n\n if (step?.type === Step) {\n child = step\n }\n }\n\n if (child?.type === Step) {\n const { title, inactive, include, includeWhen, id } =\n handleDeprecatedStepProps(child.props)\n\n if (include === false) {\n return null\n }\n\n if (\n includeWhen &&\n !check({\n visibleWhen: includeWhen,\n })\n ) {\n return null\n }\n\n incrementIndex++\n const index = incrementIndex\n\n stepsRef.current[index] = {\n id,\n title:\n title !== undefined\n ? convertJsxToString(title)\n : 'Title missing',\n inactive,\n }\n const key = `${index}-${activeIndexRef.current}`\n const clone = (props) =>\n React.cloneElement(child as React.ReactElement<StepProps>, props)\n\n if (\n prerenderFieldProps &&\n typeof document !== 'undefined' &&\n index !== activeIndexRef.current &&\n typeof prerenderFieldPropsRef.current['step-' + index] ===\n 'undefined'\n ) {\n prerenderFieldPropsRef.current['step-' + index] = () =>\n clone({\n key,\n index,\n prerenderFieldProps: true,\n })\n }\n\n return clone({\n key,\n index,\n })\n }\n }\n\n return child\n })\n\n // Ensure we never have a higher index than the available children\n // else we get a white screen\n if (childrenArray?.length === 0) {\n activeIndexRef.current = 0\n } else if (childrenArray?.length < activeIndexRef.current + 1) {\n activeIndexRef.current = childrenArray.length - 1\n }\n\n totalStepsRef.current = childrenArray?.length\n\n return childrenArray\n}\n\nfunction PrerenderFieldPropsOfOtherSteps({\n prerenderFieldPropsRef,\n}: {\n prerenderFieldPropsRef: WizardContextState['prerenderFieldPropsRef']\n}) {\n const hasRenderedRef = useRef(true)\n if (!hasRenderedRef.current) {\n return null\n }\n hasRenderedRef.current = false\n\n return (\n <WizardPortal>\n <PrerenderFieldPropsProvider>\n <iframe title=\"Wizard Prerender\" hidden>\n {Object.values(prerenderFieldPropsRef.current).map((Fn, i) => (\n <Fn key={i} />\n ))}\n </iframe>\n </PrerenderFieldPropsProvider>\n </WizardPortal>\n )\n}\n\nfunction WizardPortal({ children }) {\n if (typeof document !== 'undefined') {\n return ReactDOM.createPortal(children, document.body)\n }\n}\n\nfunction PrerenderFieldPropsProvider({ children }) {\n const { data, setFieldInternals, updateDataValue } =\n useContext(DataContext)\n\n return (\n <DataContext.Provider\n value={{\n ...defaultContextState,\n\n // Only update the props and the data value\n data,\n setFieldInternals,\n updateDataValue,\n prerenderFieldProps: true,\n hasContext: true,\n }}\n >\n <WizardContext.Provider value={{ prerenderFieldProps: true }}>\n {children}\n </WizardContext.Provider>\n </DataContext.Provider>\n )\n}\n\nWizardContainer._supportsSpacingProps = true\n\nexport default WizardContainer\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WizardContainer.js","names":["React","useContext","useCallback","useRef","useReducer","useMemo","classnames","Space","warn","isAsync","useId","WizardContext","DataContext","Handler","createReferenceKey","useSharedState","useHandleLayoutEffect","useStepAnimation","useVisibility","DisplaySteps","IterateOverSteps","PrerenderFieldPropsOfOtherSteps","useLayoutEffect","window","useEffect","WizardContainer","props","_dataContext$setHandl","className","id","idProp","mode","initialActiveIndex","omitScrollManagement","omitFocusManagement","onStepChange","children","noAnimation","prerenderFieldProps","keepInDOM","validationMode","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","setSubmitState","forceUpdate","activeIndexRef","totalStepsRef","NaN","stepStatusRef","fieldErrorRef","visitedStepsRef","elementRef","stepElementRef","preventNextStepRef","stepsRef","tmpStepsRef","updateTitlesRef","prerenderFieldPropsRef","bypassOnNavigation","sharedStateRef","current","undefined","setStepState","index","state","hasFieldErrorInStep","Object","values","some","i","hasError","revealError","path","activeIndex","hasErrorInActiveStep","currentState","includes","preventNavigation","shouldPrevent","getStepChangeOptions","_stepsRef$current$ind","previousIndex","options","previousStep","_stepsRef$current$pre","previousId","assign","callOnStepChange","setFocus","scrollToTop","isInteractionRef","executeLayoutAnimationRef","handleLayoutEffect","handleStepChange","skipErrorCheck","skipStepChangeCall","skipStepChangeCallBeforeMounted","skipStepChangeCallFromHook","onSubmit","_sharedStateRef$curre","_sharedStateRef$curre2","_sharedStateRef$curre3","data","call","result","Error","skipFieldValidation","enableAsyncBehavior","setActiveIndex","_objectSpread","handlePrevious","handleNext","handleChange","current_step","setFormError","error","handleUnknownStepsState","hasInvalidStepsState","forStates","steps","handleSubmit","preventSubmit","setHandleSubmit","check","providerValue","extend","_updateTitlesRef$curr","stepsLengthDidChange","count","keys","length","tmpCount","_executeLayoutAnimati","createElement","_extends","Provider","value","innerRef","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainer.tsx"],"sourcesContent":["import React, {\n useContext,\n useCallback,\n useRef,\n useReducer,\n useMemo,\n} from 'react'\nimport classnames from 'classnames'\nimport { Space } from '../../../../components'\nimport { warn } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport WizardContext, {\n WizardContextState,\n} from '../Context/WizardContext'\nimport type {\n OnStepChange,\n OnStepChangeOptions,\n OnStepsChangeMode,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n InternalFieldError,\n InternalStepStatus,\n InternalStepStatuses,\n InternalVisitedSteps,\n} from '../Context/types'\nimport DataContext from '../../DataContext/Context'\nimport Handler from '../../Form/Handler/Handler'\nimport {\n SharedStateReturn,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useHandleLayoutEffect from './useHandleLayoutEffect'\nimport useStepAnimation from './useStepAnimation'\nimport { ComponentProps } from '../../types'\nimport useVisibility from '../../Form/Visibility/useVisibility'\nimport { DisplaySteps } from './DisplaySteps'\nimport { IterateOverSteps } from './IterateOverSteps'\nimport { PrerenderFieldPropsOfOtherSteps } from './PrerenderFieldPropsOfOtherSteps'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps & {\n id?: string\n\n /**\n * The mode of the wizard.\n */\n mode?: 'static' | 'strict' | 'loose'\n\n /**\n * If set to `true`, the wizard will not scroll to the first step when the user clicks on the next button.\n */\n omitScrollManagement?: boolean\n\n /**\n * If set to `true`, the wizard will not focus on the next step when the user clicks on the next button.\n */\n omitFocusManagement?: boolean\n\n /**\n * The index of the first step to be rendered.\n */\n initialActiveIndex?: StepIndex\n\n /**\n * The callback function that will be called when the user clicks on the next button.\n */\n onStepChange?: OnStepChange\n\n /**\n * The sidebar variant.\n */\n variant?: 'sidebar' | 'drawer'\n sidebarId?: string\n\n /**\n * If set to `true`, the wizard will not animate the steps.\n */\n noAnimation?: boolean\n\n /**\n * If set to `true`, the wizard will not unmount the steps when navigating back and forth.\n */\n keepInDOM?: boolean\n\n /**\n * If set to `true`, the wizard pre-render all steps so the props of each field is available in the data context.\n * Defaults to `true`.\n */\n prerenderFieldProps?: boolean\n\n /**\n * Determines if and how the validation will be bypassed.\n */\n validationMode?: 'bypassOnNavigation'\n\n /**\n * The children of the wizard container.\n */\n children: React.ReactNode\n\n /**\n * @deprecated Is enabled by default. You can disable it with \"omitScrollManagement\"\n */\n scrollTopOnStepChange?: boolean\n}\n\nfunction WizardContainer(props: Props) {\n const {\n className,\n id: idProp,\n mode = 'strict',\n initialActiveIndex = 0,\n omitScrollManagement,\n omitFocusManagement,\n onStepChange,\n children,\n noAnimation = true,\n prerenderFieldProps = true,\n keepInDOM,\n validationMode,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n\n const dataContext = useContext(DataContext)\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n setSubmitState,\n } = dataContext\n\n const id = useId(idProp)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<StepIndex>(initialActiveIndex)\n const totalStepsRef = useRef<number>(NaN)\n const stepStatusRef = useRef<InternalStepStatuses>({})\n const fieldErrorRef = useRef<InternalFieldError>({})\n const visitedStepsRef = useRef<InternalVisitedSteps>({})\n const elementRef = useRef<HTMLElement>()\n const stepElementRef = useRef<HTMLElement>()\n const preventNextStepRef = useRef(false)\n const stepsRef = useRef<Steps>({})\n const tmpStepsRef = useRef<Steps>({})\n const updateTitlesRef = useRef<() => void>()\n const prerenderFieldPropsRef = useRef<\n Record<string, () => React.ReactElement>\n >({})\n\n const bypassOnNavigation = validationMode === 'bypassOnNavigation'\n\n // - Handle shared state\n const sharedStateRef =\n useRef<\n SharedStateReturn<\n WizardContextState & { onStepChange?: OnStepChange }\n >\n >()\n sharedStateRef.current = useSharedState<WizardContextState>(\n hasContext && id ? createReferenceKey(id, 'wizard') : undefined\n )\n\n visitedStepsRef.current[activeIndexRef.current] = true\n\n const setStepState = useCallback(\n (index: number, state: InternalStepStatus) => {\n stepStatusRef.current[index] = state\n },\n []\n )\n const hasFieldErrorInStep = useCallback((index: StepIndex) => {\n return Object.values(fieldErrorRef.current).some(\n ({ index: i, hasError }) => {\n return i === index && hasError\n }\n )\n }, [])\n const revealError: WizardContextState['revealError'] = useCallback(\n (index, path, hasError) => {\n fieldErrorRef.current[path] = { index, hasError }\n\n if (hasFieldErrorInStep(index)) {\n setStepState(index, 'error')\n }\n },\n [hasFieldErrorInStep, setStepState]\n )\n\n const activeIndex = activeIndexRef.current\n const hasErrorInActiveStep = hasFieldErrorInStep(activeIndex)\n useMemo(() => {\n const currentState = stepStatusRef.current[activeIndex]\n if (\n !hasErrorInActiveStep &&\n ['error', 'valid'].includes(currentState)\n ) {\n setStepState(activeIndex, 'valid')\n } else {\n setStepState(activeIndex, hasErrorInActiveStep ? 'error' : undefined)\n }\n }, [activeIndex, hasErrorInActiveStep, setStepState])\n\n const preventNavigation = useCallback((shouldPrevent = true) => {\n preventNextStepRef.current = shouldPrevent\n }, [])\n\n const getStepChangeOptions: (index: StepIndex) => OnStepChangeOptions =\n useCallback(\n (index) => {\n const previousIndex = activeIndexRef.current\n const options = {\n preventNavigation,\n previousStep: { index: previousIndex },\n }\n\n const id = stepsRef.current[index]?.id\n if (id) {\n const previousId = stepsRef.current[previousIndex]?.id\n Object.assign(options, { id })\n Object.assign(options.previousStep, { id: previousId })\n }\n\n return options\n },\n [preventNavigation]\n )\n\n const callOnStepChange = useCallback(\n async (index: StepIndex, mode: OnStepsChangeMode) => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode, getStepChangeOptions(index))\n }\n\n return onStepChange?.(index, mode, getStepChangeOptions(index))\n },\n [getStepChangeOptions, onStepChange]\n )\n\n const { setFocus, scrollToTop, isInteractionRef } =\n useHandleLayoutEffect({ elementRef, stepElementRef })\n\n const executeLayoutAnimationRef = useRef<() => void>()\n useStepAnimation({\n activeIndexRef,\n stepElementRef,\n executeLayoutAnimationRef,\n })\n\n const handleLayoutEffect = useCallback(() => {\n if (!omitFocusManagement) {\n setFocus()\n }\n if (!omitScrollManagement) {\n scrollToTop()\n }\n }, [omitScrollManagement, omitFocusManagement, setFocus, scrollToTop])\n\n const handleStepChange = useCallback(\n async ({\n index,\n skipErrorCheck,\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n mode,\n }: {\n index: StepIndex\n mode: OnStepsChangeMode\n } & SetActiveIndexOptions) => {\n const onSubmit = async () => {\n if (!skipStepChangeCallFromHook) {\n sharedStateRef.current?.data?.onStepChange?.(\n index,\n mode,\n getStepChangeOptions(index)\n )\n }\n\n let result = undefined\n\n if (\n !skipStepChangeCall &&\n !(skipStepChangeCallBeforeMounted && !isInteractionRef.current)\n ) {\n result = await callOnStepChange(index, mode)\n }\n\n // Hide async indicator\n setFormState('abort')\n\n // Set the \"showAllErrors\" to the step we got to\n setShowAllErrors(\n bypassOnNavigation\n ? false\n : stepStatusRef.current[index] === 'error'\n )\n\n if (!preventNextStepRef.current && !(result instanceof Error)) {\n handleLayoutEffect()\n\n activeIndexRef.current = index\n forceUpdate()\n }\n\n preventNextStepRef.current = false\n\n return result\n }\n\n await handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehavior: isAsync(onStepChange),\n onSubmit: bypassOnNavigation ? () => null : onSubmit,\n })\n\n if (bypassOnNavigation) {\n await onSubmit()\n }\n },\n [\n bypassOnNavigation,\n callOnStepChange,\n getStepChangeOptions,\n handleLayoutEffect,\n handleSubmitCall,\n isInteractionRef,\n onStepChange,\n setFormState,\n setShowAllErrors,\n ]\n )\n\n const setActiveIndex = useCallback(\n (index: StepIndex, options?: SetActiveIndexOptions) => {\n if (index === activeIndexRef.current) {\n return\n }\n\n const mode = index > activeIndexRef.current ? 'next' : 'previous'\n\n handleStepChange({\n index,\n skipErrorCheck: mode === 'previous',\n mode,\n ...options,\n })\n },\n [handleStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n setActiveIndex(activeIndexRef.current - 1)\n }, [setActiveIndex])\n\n const handleNext = useCallback(() => {\n setActiveIndex(activeIndexRef.current + 1)\n }, [setActiveIndex])\n\n const handleChange = useCallback(\n ({ current_step }) => {\n setActiveIndex(\n current_step,\n mode === 'loose' ? { skipErrorCheck: true } : undefined\n )\n },\n [mode, setActiveIndex]\n )\n\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n const handleUnknownStepsState = useCallback(() => {\n const index = activeIndexRef.current\n for (let i = 0; i < totalStepsRef.current; i++) {\n // - Check if the step was visited before,\n // - if, not check if the step has already an state,\n // - if, not check if the step is before the active step and and below.\n // - Only then set the state to \"unknown\"\n if (\n !visitedStepsRef.current[i] &&\n stepStatusRef.current[i] === undefined &&\n i < index &&\n i !== index\n ) {\n setStepState(i, 'unknown')\n }\n }\n }, [setStepState])\n\n const hasInvalidStepsState: WizardContextState['hasInvalidStepsState'] =\n useCallback((forStates) => {\n const steps = Object.values(stepStatusRef.current)\n return (forStates || ['unknown', 'error']).some((state) =>\n steps.includes(state)\n )\n }, [])\n\n const handleSubmit = useCallback(\n ({ preventSubmit }) => {\n handleUnknownStepsState()\n\n // - If there is an unknown step state, we need to prevent the submit\n if (hasInvalidStepsState()) {\n return preventSubmit()\n }\n\n if (activeIndexRef.current + 1 < totalStepsRef.current) {\n handleNext()\n preventSubmit()\n }\n },\n [handleUnknownStepsState, hasInvalidStepsState, handleNext]\n )\n dataContext.setHandleSubmit?.(handleSubmit)\n\n const { check } = useVisibility()\n\n const providerValue = useMemo<WizardContextState>(() => {\n return {\n id,\n activeIndex,\n initialActiveIndex,\n stepElementRef,\n stepsRef,\n updateTitlesRef,\n activeIndexRef,\n totalStepsRef,\n stepStatusRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n keepInDOM,\n check,\n setActiveIndex,\n handlePrevious,\n hasInvalidStepsState,\n revealError,\n handleNext,\n setFormError,\n }\n }, [\n id,\n activeIndex,\n initialActiveIndex,\n prerenderFieldProps,\n keepInDOM,\n check,\n setActiveIndex,\n handlePrevious,\n hasInvalidStepsState,\n revealError,\n handleNext,\n setFormError,\n ])\n\n // - Handle shared state\n useLayoutEffect(() => {\n if (id && hasContext) {\n sharedStateRef.current.extend(providerValue)\n }\n }, [hasContext, id, providerValue])\n\n useLayoutEffect(() => {\n updateTitlesRef.current?.()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current])\n\n const stepsLengthDidChange = useCallback(() => {\n const count = Object.keys(stepsRef.current).length\n const tmpCount = Object.keys(tmpStepsRef.current).length\n return count !== 0 && tmpCount !== 0 && count !== tmpCount\n }, [])\n\n // - Call onStepChange when step gets replaced or added (e.g. via includeWhen)\n useLayoutEffect(() => {\n if (stepsLengthDidChange()) {\n callOnStepChange(activeIndexRef.current, 'stepListModified')\n executeLayoutAnimationRef.current?.()\n }\n tmpStepsRef.current = stepsRef.current\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current, callOnStepChange, stepsLengthDidChange])\n\n if (!hasContext) {\n warn('You may wrap Wizard.Container in Form.Handler')\n return (\n <Handler>\n <WizardContainer {...props} id={id} />\n </Handler>\n )\n }\n\n return (\n <WizardContext.Provider value={providerValue}>\n <Space\n className={classnames(\n 'dnb-forms-wizard-layout',\n `dnb-forms-wizard-layout--${variant}`,\n className\n )}\n innerRef={elementRef}\n {...rest}\n >\n <DisplaySteps\n mode={mode}\n variant={variant}\n noAnimation={noAnimation}\n handleChange={handleChange}\n sidebarId={sidebarId}\n />\n\n <div className=\"dnb-forms-wizard-layout__contents\">\n <IterateOverSteps>{children}</IterateOverSteps>\n </div>\n </Space>\n\n {prerenderFieldProps && !keepInDOM && (\n <PrerenderFieldPropsOfOtherSteps\n prerenderFieldPropsRef={prerenderFieldPropsRef}\n />\n )}\n </WizardContext.Provider>\n )\n}\n\nWizardContainer._supportsSpacingProps = true\n\nexport default WizardContainer\n"],"mappings":"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"}
|
|
@@ -34,6 +34,16 @@ export const WizardContainerProperties = {
|
|
|
34
34
|
type: 'boolean',
|
|
35
35
|
status: 'optional'
|
|
36
36
|
},
|
|
37
|
+
keepInDOM: {
|
|
38
|
+
doc: 'Determines if all steps should be kept in the DOM. Defaults to `false`.',
|
|
39
|
+
type: 'boolean',
|
|
40
|
+
status: 'optional'
|
|
41
|
+
},
|
|
42
|
+
validationMode: {
|
|
43
|
+
doc: 'Determines if and how the validation will be bypassed.',
|
|
44
|
+
type: ['bypassOnNavigation'],
|
|
45
|
+
status: 'optional'
|
|
46
|
+
},
|
|
37
47
|
children: {
|
|
38
48
|
doc: 'Contents (Step components).',
|
|
39
49
|
type: 'React.Node',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardContainerDocs.js","names":["WizardContainerProperties","initialActiveIndex","doc","type","status","mode","variant","omitScrollManagement","omitFocusManagement","sidebarId","noAnimation","children","WizardContainerEvents","onStepChange"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainerDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const WizardContainerProperties: PropertiesTableProps = {\n initialActiveIndex: {\n doc: 'What step should show initially (defaults to 0 for the first one).',\n type: 'number',\n status: 'optional',\n },\n mode: {\n doc: 'How to show the wizard. Inherited from StepIndicator. Defaults to `strict`.',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Sets the StepIndicator to be either `sidebar` or `drawer`. Defaults to `sidebar`.',\n type: 'string',\n status: 'optional',\n },\n omitScrollManagement: {\n doc: 'True to omit scroll management.',\n type: 'boolean',\n status: 'optional',\n },\n omitFocusManagement: {\n doc: 'True to omit focus management.',\n type: 'boolean',\n status: 'optional',\n },\n sidebarId: {\n doc: 'Sets the id for `<StepIndicator.Sidebar />` Inherited from StepIndicator.',\n type: 'string',\n status: 'required',\n },\n noAnimation: {\n doc: 'Determines if the height animation for step items and the drawer button will run. Inherited from StepIndicator. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n children: {\n doc: 'Contents (Step components).',\n type: 'React.Node',\n status: 'required',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const WizardContainerEvents: PropertiesTableProps = {\n onStepChange: {\n doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (or `stepListModified` when a step gets replaced) as the second argument, and as the third parameter an options object containing a `preventNavigation` function, an `id` if given on the `Wizard.Step` and a `previousStep` object containing the previous `index` (and `id` if given on the `Wizard.Step`). When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,yBAA+C,GAAG;EAC7DC,kBAAkB,EAAE;IAClBC,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,oBAAoB,EAAE;IACpBL,GAAG,EAAE,iCAAiC;IACtCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,mBAAmB,EAAE;IACnBN,GAAG,EAAE,gCAAgC;IACrCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,2EAA2E;IAChFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,WAAW,EAAE;IACXR,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"WizardContainerDocs.js","names":["WizardContainerProperties","initialActiveIndex","doc","type","status","mode","variant","omitScrollManagement","omitFocusManagement","sidebarId","noAnimation","keepInDOM","validationMode","children","WizardContainerEvents","onStepChange"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainerDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const WizardContainerProperties: PropertiesTableProps = {\n initialActiveIndex: {\n doc: 'What step should show initially (defaults to 0 for the first one).',\n type: 'number',\n status: 'optional',\n },\n mode: {\n doc: 'How to show the wizard. Inherited from StepIndicator. Defaults to `strict`.',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Sets the StepIndicator to be either `sidebar` or `drawer`. Defaults to `sidebar`.',\n type: 'string',\n status: 'optional',\n },\n omitScrollManagement: {\n doc: 'True to omit scroll management.',\n type: 'boolean',\n status: 'optional',\n },\n omitFocusManagement: {\n doc: 'True to omit focus management.',\n type: 'boolean',\n status: 'optional',\n },\n sidebarId: {\n doc: 'Sets the id for `<StepIndicator.Sidebar />` Inherited from StepIndicator.',\n type: 'string',\n status: 'required',\n },\n noAnimation: {\n doc: 'Determines if the height animation for step items and the drawer button will run. Inherited from StepIndicator. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: 'Determines if all steps should be kept in the DOM. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n validationMode: {\n doc: 'Determines if and how the validation will be bypassed.',\n type: ['bypassOnNavigation'],\n status: 'optional',\n },\n children: {\n doc: 'Contents (Step components).',\n type: 'React.Node',\n status: 'required',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const WizardContainerEvents: PropertiesTableProps = {\n onStepChange: {\n doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (or `stepListModified` when a step gets replaced) as the second argument, and as the third parameter an options object containing a `preventNavigation` function, an `id` if given on the `Wizard.Step` and a `previousStep` object containing the previous `index` (and `id` if given on the `Wizard.Step`). When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,yBAA+C,GAAG;EAC7DC,kBAAkB,EAAE;IAClBC,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,oBAAoB,EAAE;IACpBL,GAAG,EAAE,iCAAiC;IACtCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,mBAAmB,EAAE;IACnBN,GAAG,EAAE,gCAAgC;IACrCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,2EAA2E;IAChFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,WAAW,EAAE;IACXR,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDQ,cAAc,EAAE;IACdV,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,CAAC,oBAAoB,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDS,QAAQ,EAAE;IACRX,GAAG,EAAE,6BAA6B;IAClCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMU,qBAA2C,GAAG;EACzDC,YAAY,EAAE;IACZb,GAAG,EAAE,mtBAAmtB;IACxtBC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -1,43 +1,27 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { Path } from '../../types';
|
|
3
3
|
import { VisibleWhen } from '../../Form/Visibility';
|
|
4
|
-
|
|
5
|
-
export type OnStepChangeOptions = {
|
|
6
|
-
preventNavigation: (shouldPrevent?: boolean) => void;
|
|
7
|
-
id?: string;
|
|
8
|
-
previousStep: {
|
|
9
|
-
index: StepIndex;
|
|
10
|
-
id?: string;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
export type OnStepChange = (index: StepIndex, mode: OnStepsChangeMode, options: OnStepChangeOptions) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
|
|
14
|
-
export type StepIndex = number;
|
|
15
|
-
export type Steps = Record<string, {
|
|
16
|
-
title: string;
|
|
17
|
-
id: string;
|
|
18
|
-
inactive?: boolean;
|
|
19
|
-
}>;
|
|
20
|
-
export type SetActiveIndexOptions = {
|
|
21
|
-
skipStepChangeCall?: boolean;
|
|
22
|
-
skipStepChangeCallBeforeMounted?: boolean;
|
|
23
|
-
skipStepChangeCallFromHook?: boolean;
|
|
24
|
-
skipErrorCheck?: boolean;
|
|
25
|
-
};
|
|
4
|
+
import { InternalStepStatus, InternalStepStatuses, SetActiveIndexOptions, StepIndex, Steps } from './types';
|
|
26
5
|
export interface WizardContextState {
|
|
27
6
|
id?: string;
|
|
28
7
|
totalSteps?: number;
|
|
29
8
|
activeIndex?: StepIndex;
|
|
9
|
+
initialActiveIndex?: StepIndex;
|
|
30
10
|
stepElementRef?: React.MutableRefObject<HTMLElement>;
|
|
31
11
|
stepsRef?: React.MutableRefObject<Steps>;
|
|
32
12
|
updateTitlesRef?: React.MutableRefObject<() => void>;
|
|
33
13
|
activeIndexRef?: React.MutableRefObject<StepIndex>;
|
|
34
14
|
totalStepsRef?: React.MutableRefObject<number>;
|
|
15
|
+
stepStatusRef?: React.MutableRefObject<InternalStepStatuses>;
|
|
35
16
|
prerenderFieldPropsRef?: React.MutableRefObject<Record<string, () => React.ReactElement>>;
|
|
36
17
|
prerenderFieldProps?: boolean;
|
|
18
|
+
keepInDOM?: boolean;
|
|
37
19
|
handlePrevious?: () => void;
|
|
38
20
|
handleNext?: () => void;
|
|
39
21
|
setActiveIndex?: (index: StepIndex, { skipStepChangeCall, skipStepChangeCallBeforeMounted, skipStepChangeCallFromHook, }?: SetActiveIndexOptions) => void;
|
|
40
22
|
setFormError?: (error: Error) => void;
|
|
23
|
+
revealError?: (index: StepIndex, path: Path, hasError: boolean) => void;
|
|
24
|
+
hasInvalidStepsState?: (forStates?: Array<InternalStepStatus>) => boolean;
|
|
41
25
|
check?: ({ visibleWhen }: {
|
|
42
26
|
visibleWhen: VisibleWhen;
|
|
43
27
|
}) => boolean;
|