@dnb/eufemia 10.65.1 → 10.66.1
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 +43 -0
- package/cjs/components/card/Card.js +1 -1
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.d.ts +5 -0
- package/cjs/components/date-picker/DatePickerInput.js +103 -76
- 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 +7 -0
- package/cjs/components/help-button/HelpButtonInline.js +53 -20
- 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/components/upload/Upload.js +4 -5
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/UploadFileInput.d.ts +4 -1
- package/cjs/components/upload/UploadFileInput.js +11 -3
- package/cjs/components/upload/UploadFileInput.js.map +1 -1
- package/cjs/components/upload/types.d.ts +1 -1
- package/cjs/components/upload/types.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +10 -4
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +44 -40
- 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/Composition/Composition.js +2 -1
- package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +1 -1
- package/cjs/extensions/forms/Field/Date/Date.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/Field/Upload/Upload.js +2 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/style/dnb-upload.css +5 -0
- package/cjs/extensions/forms/Field/Upload/style/dnb-upload.min.css +1 -1
- package/cjs/extensions/forms/Field/Upload/style/dnb-upload.scss +6 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +17 -13
- package/cjs/extensions/forms/FieldBlock/FieldBlock.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 +35 -17
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +22 -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 +58 -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 +22 -0
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +22 -0
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +80 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +22 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +22 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +80 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +22 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +22 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +80 -4
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +22 -0
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +22 -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/DatePickerInput.d.ts +5 -0
- package/components/date-picker/DatePickerInput.js +103 -76
- 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 +7 -0
- package/components/help-button/HelpButtonInline.js +53 -20
- 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/components/upload/Upload.js +3 -4
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/UploadFileInput.d.ts +4 -1
- package/components/upload/UploadFileInput.js +10 -3
- package/components/upload/UploadFileInput.js.map +1 -1
- package/components/upload/types.d.ts +1 -1
- package/components/upload/types.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/DatePickerInput.d.ts +5 -0
- package/es/components/date-picker/DatePickerInput.js +103 -76
- 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 +7 -0
- package/es/components/help-button/HelpButtonInline.js +52 -19
- 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/components/upload/Upload.js +3 -4
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/UploadFileInput.d.ts +4 -1
- package/es/components/upload/UploadFileInput.js +10 -3
- package/es/components/upload/UploadFileInput.js.map +1 -1
- package/es/components/upload/types.d.ts +1 -1
- package/es/components/upload/types.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +10 -4
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
- package/es/extensions/forms/DataContext/Provider/Provider.js +34 -33
- 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/Composition/Composition.js +2 -1
- package/es/extensions/forms/Field/Composition/Composition.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/es/extensions/forms/Field/Date/Date.js +1 -1
- package/es/extensions/forms/Field/Date/Date.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/Field/Upload/Upload.js +2 -1
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/Field/Upload/style/dnb-upload.css +5 -0
- package/es/extensions/forms/Field/Upload/style/dnb-upload.min.css +1 -1
- package/es/extensions/forms/Field/Upload/style/dnb-upload.scss +6 -0
- package/es/extensions/forms/FieldBlock/FieldBlock.js +17 -13
- package/es/extensions/forms/FieldBlock/FieldBlock.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 +36 -16
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +22 -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 +58 -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 +22 -0
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +22 -0
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +80 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +22 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +22 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +80 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +22 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +22 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +80 -4
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.css +22 -0
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +22 -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 +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +10 -4
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
- package/extensions/forms/DataContext/Provider/Provider.js +44 -40
- 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/Composition/Composition.js +2 -1
- package/extensions/forms/Field/Composition/Composition.js.map +1 -1
- package/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/extensions/forms/Field/Date/Date.js +1 -1
- package/extensions/forms/Field/Date/Date.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/Field/Upload/Upload.js +2 -1
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/Field/Upload/style/dnb-upload.css +5 -0
- package/extensions/forms/Field/Upload/style/dnb-upload.min.css +1 -1
- package/extensions/forms/Field/Upload/style/dnb-upload.scss +6 -0
- package/extensions/forms/FieldBlock/FieldBlock.js +17 -13
- package/extensions/forms/FieldBlock/FieldBlock.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 +35 -17
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +22 -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 +58 -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 +22 -0
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +22 -0
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +80 -4
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +22 -0
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +22 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +80 -4
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +22 -0
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +22 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +80 -4
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.css +22 -0
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +22 -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 +2 -2
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepIndicator.js","names":["React","StepIndicatorSidebar","StepIndicatorModal","StepIndicatorProvider","stepIndicatorDefaultProps","useId","StepIndicator","_ref","data","skeleton","current_step","hide_numbers","no_animation","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","sidebarId","sidebar_id","createElement","_extends","_div","className","Sidebar","_supportsSpacingProps"],"sources":["../../../../src/components/step-indicator/StepIndicator.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport React from 'react'\n\nimport StepIndicatorSidebar from './StepIndicatorSidebar'\n\nimport StepIndicatorModal from './StepIndicatorModal'\nimport {\n StepIndicatorContextValues,\n StepIndicatorProvider,\n} from './StepIndicatorContext'\n\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\nimport type {\n StepIndicatorItemProps,\n StepItemWrapper,\n} from './StepIndicatorItem'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport useId from '../../shared/helpers/useId'\n\nexport type StepIndicatorMode = 'static' | 'strict' | 'loose'\nexport type StepIndicatorDataItem = Pick<\n StepIndicatorItemProps,\n | 'title'\n | 'is_current'\n | 'inactive'\n | 'disabled'\n | 'status'\n | 'status_state'\n | 'on_click'\n | 'on_render'\n>\nexport type StepIndicatorData = string | string[] | StepIndicatorDataItem[]\n\nexport type StepIndicatorMouseEvent = {\n event: React.MouseEvent<HTMLButtonElement>\n item: StepIndicatorItemProps\n currentStep: number\n current_step: number\n}\n\nexport type StepIndicatorRenderCallback = {\n StepItem: typeof StepItemWrapper\n element: React.ReactNode\n attributes: React.HTMLProps<HTMLElement>\n props: StepIndicatorItemProps\n context: StepIndicatorContextValues\n}\n\nexport type StepIndicatorProps = Omit<\n React.HTMLProps<HTMLAnchorElement>,\n 'ref' | 'data'\n> &\n SpacingProps & {\n /**\n * <em>(required with `<StepIndicator.Sidebar />`)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id?: string\n /**\n * <em>(required)</em> defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.\n */\n mode: StepIndicatorMode\n /**\n * <em>(required)</em> defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.\n */\n data: StepIndicatorData\n /**\n * The title shown inside the `<StepIndicatorModal />` supplemental screen reader text for the `<StepIndicatorTriggerButton />`\n * Defaults to `Steps Overview`\n */\n overview_title?: string\n /**\n * The label for `<StepIndicatorTriggerButton />` and supplemental screen reader text for `<StepIndicatorItem />`\n * This value need to contain `%step` and `%count` if you want to display the current step and total amount of steps\n * `%step` is used to place the current step into the text\n * `%count` is used to place the step total into the text\n * Defaults to `Step %step of %count`\n */\n step_title?: string\n /**\n * A descriptive label used in `<StepIndicatorModal />`\n * This value need to contain `%step` and `%count` if you want to display the current step and total amount of steps\n * `%step` is used to place the current step into the text\n * `%count` is used to place the step total into the text\n * Defaults to `You are on step %step of %count`\n */\n step_title_extended?: string\n /**\n * Defines the active number marked step starting by 0. Defaults to `0`.\n */\n current_step?: number\n /**\n * Define whether to show automatically counted numbers or not. Defaults to `false`.\n */\n hide_numbers?: boolean\n /**\n * Will be called once the user clicks on the current or another step. Will be emitted on every click. Returns an object `{ event, item, current_step, currentStep }`.\n */\n on_click?: ({\n event,\n item,\n current_step,\n currentStep,\n }: StepIndicatorMouseEvent) => void\n /**\n * Callback function to manipulate or wrap every item. Has to return a React Node. You receive an object you can use in your custom HOC `{ StepItem, element, attributes, props, context }`.\n */\n on_item_render?: ({\n StepItem,\n element,\n attributes,\n props,\n context,\n }: StepIndicatorRenderCallback) => React.ReactNode\n /**\n * Will be called once the user visits actively a new step. Will be emitted only once. Returns an object `{ event, item, current_step, currentStep }`.\n */\n on_change?: ({\n event,\n item,\n current_step,\n currentStep,\n }: StepIndicatorMouseEvent) => void\n\n /**\n * If set to `true`, the height animation on the step items and the drawer button will be omitted. Defaults to `false`.\n */\n no_animation?: boolean\n skeleton?: SkeletonShow\n className?: string\n children?: React.ReactNode\n }\n\nfunction StepIndicator({\n data = stepIndicatorDefaultProps.data,\n skeleton = stepIndicatorDefaultProps.skeleton,\n current_step = stepIndicatorDefaultProps.current_step,\n hide_numbers = stepIndicatorDefaultProps.hide_numbers,\n no_animation = stepIndicatorDefaultProps.no_animation,\n ...restOfProps\n}: StepIndicatorProps) {\n const props = {\n data,\n skeleton,\n current_step,\n hide_numbers,\n no_animation,\n ...restOfProps,\n }\n\n const sidebarId = useId(props.sidebar_id)\n\n return (\n <StepIndicatorProvider {...props} sidebar_id={sidebarId}>\n <div className=\"dnb-step-indicator-wrapper\">\n <StepIndicatorModal />\n </div>\n </StepIndicatorProvider>\n )\n}\n\nStepIndicator.Sidebar = StepIndicatorSidebar\n\nStepIndicator._supportsSpacingProps = true\n\nexport default StepIndicator\n"],"mappings":";;;;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,oBAAoB,MAAM,wBAAwB;AAEzD,OAAOC,kBAAkB,MAAM,sBAAsB;AACrD,SAEEC,qBAAqB,QAChB,wBAAwB;AAQ/B,SAASC,yBAAyB,QAAQ,sBAAsB;AAChE,OAAOC,KAAK,MAAM,4BAA4B;
|
|
1
|
+
{"version":3,"file":"StepIndicator.js","names":["React","StepIndicatorSidebar","StepIndicatorModal","StepIndicatorProvider","stepIndicatorDefaultProps","useId","StepIndicator","_ref","data","skeleton","current_step","hide_numbers","no_animation","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","sidebarId","sidebar_id","createElement","_extends","_div","className","Sidebar","_supportsSpacingProps"],"sources":["../../../../src/components/step-indicator/StepIndicator.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport React from 'react'\n\nimport StepIndicatorSidebar from './StepIndicatorSidebar'\n\nimport StepIndicatorModal from './StepIndicatorModal'\nimport {\n StepIndicatorContextValues,\n StepIndicatorProvider,\n} from './StepIndicatorContext'\n\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\nimport type {\n StepIndicatorItemProps,\n StepItemWrapper,\n} from './StepIndicatorItem'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport useId from '../../shared/helpers/useId'\nimport { StepIndicatorTriggerButtonProps } from './StepIndicatorTriggerButton'\n\nexport type StepIndicatorMode = 'static' | 'strict' | 'loose'\nexport type StepIndicatorDataItem = Pick<\n StepIndicatorItemProps,\n | 'title'\n | 'is_current'\n | 'inactive'\n | 'disabled'\n | 'status'\n | 'status_state'\n | 'on_click'\n | 'on_render'\n>\nexport type StepIndicatorData = string | string[] | StepIndicatorDataItem[]\n\nexport type StepIndicatorMouseEvent = {\n event: React.MouseEvent<HTMLButtonElement>\n item: StepIndicatorItemProps\n currentStep: number\n current_step: number\n}\n\nexport type StepIndicatorRenderCallback = {\n StepItem: typeof StepItemWrapper\n element: React.ReactNode\n attributes: React.HTMLProps<HTMLElement>\n props: StepIndicatorItemProps\n context: StepIndicatorContextValues\n}\n\nexport type StepIndicatorProps = Omit<\n React.HTMLProps<HTMLAnchorElement>,\n 'ref' | 'data'\n> &\n SpacingProps & {\n /**\n * <em>(required with `<StepIndicator.Sidebar />`)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id?: string\n /**\n * <em>(required)</em> defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.\n */\n mode: StepIndicatorMode\n /**\n * <em>(required)</em> defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.\n */\n data: StepIndicatorData\n /**\n * The title shown inside the `<StepIndicatorModal />` supplemental screen reader text for the `<StepIndicatorTriggerButton />`\n * Defaults to `Steps Overview`\n */\n overview_title?: string\n /**\n * The label for `<StepIndicatorTriggerButton />` and supplemental screen reader text for `<StepIndicatorItem />`\n * This value need to contain `%step` and `%count` if you want to display the current step and total amount of steps\n * `%step` is used to place the current step into the text\n * `%count` is used to place the step total into the text\n * Defaults to `Step %step of %count`\n */\n step_title?: string\n /**\n * A descriptive label used in `<StepIndicatorModal />`\n * This value need to contain `%step` and `%count` if you want to display the current step and total amount of steps\n * `%step` is used to place the current step into the text\n * `%count` is used to place the step total into the text\n * Defaults to `You are on step %step of %count`\n */\n step_title_extended?: string\n /**\n * Defines the active number marked step starting by 0. Defaults to `0`.\n */\n current_step?: number\n /**\n * Define whether to show automatically counted numbers or not. Defaults to `false`.\n */\n hide_numbers?: boolean\n /**\n * Will be called once the user clicks on the current or another step. Will be emitted on every click. Returns an object `{ event, item, current_step, currentStep }`.\n */\n on_click?: ({\n event,\n item,\n current_step,\n currentStep,\n }: StepIndicatorMouseEvent) => void\n /**\n * Callback function to manipulate or wrap every item. Has to return a React Node. You receive an object you can use in your custom HOC `{ StepItem, element, attributes, props, context }`.\n */\n on_item_render?: ({\n StepItem,\n element,\n attributes,\n props,\n context,\n }: StepIndicatorRenderCallback) => React.ReactNode\n /**\n * Will be called once the user visits actively a new step. Will be emitted only once. Returns an object `{ event, item, current_step, currentStep }`.\n */\n on_change?: ({\n event,\n item,\n current_step,\n currentStep,\n }: StepIndicatorMouseEvent) => void\n\n /**\n * The props for the trigger button.\n * Used internally to pass the props such as a status to the trigger button.\n */\n triggerButtonProps?: StepIndicatorTriggerButtonProps\n\n /**\n * If set to `true`, the height animation on the step items and the drawer button will be omitted. Defaults to `false`.\n */\n no_animation?: boolean\n skeleton?: SkeletonShow\n className?: string\n children?: React.ReactNode\n }\n\nfunction StepIndicator({\n data = stepIndicatorDefaultProps.data,\n skeleton = stepIndicatorDefaultProps.skeleton,\n current_step = stepIndicatorDefaultProps.current_step,\n hide_numbers = stepIndicatorDefaultProps.hide_numbers,\n no_animation = stepIndicatorDefaultProps.no_animation,\n ...restOfProps\n}: StepIndicatorProps) {\n const props = {\n data,\n skeleton,\n current_step,\n hide_numbers,\n no_animation,\n ...restOfProps,\n }\n\n const sidebarId = useId(props.sidebar_id)\n\n return (\n <StepIndicatorProvider {...props} sidebar_id={sidebarId}>\n <div className=\"dnb-step-indicator-wrapper\">\n <StepIndicatorModal />\n </div>\n </StepIndicatorProvider>\n )\n}\n\nStepIndicator.Sidebar = StepIndicatorSidebar\n\nStepIndicator._supportsSpacingProps = true\n\nexport default StepIndicator\n"],"mappings":";;;;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,oBAAoB,MAAM,wBAAwB;AAEzD,OAAOC,kBAAkB,MAAM,sBAAsB;AACrD,SAEEC,qBAAqB,QAChB,wBAAwB;AAQ/B,SAASC,yBAAyB,QAAQ,sBAAsB;AAChE,OAAOC,KAAK,MAAM,4BAA4B;AA0H9C,SAASC,aAAaA,CAAAC,IAAA,EAOC;EAAA,IAPA;MACrBC,IAAI,GAAGJ,yBAAyB,CAACI,IAAI;MACrCC,QAAQ,GAAGL,yBAAyB,CAACK,QAAQ;MAC7CC,YAAY,GAAGN,yBAAyB,CAACM,YAAY;MACrDC,YAAY,GAAGP,yBAAyB,CAACO,YAAY;MACrDC,YAAY,GAAGR,yBAAyB,CAACQ;IAEvB,CAAC,GAAAL,IAAA;IADhBM,WAAW,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAEd,MAAMC,KAAK,GAAAC,aAAA;IACTT,IAAI;IACJC,QAAQ;IACRC,YAAY;IACZC,YAAY;IACZC;EAAY,GACTC,WAAW,CACf;EAED,MAAMK,SAAS,GAAGb,KAAK,CAACW,KAAK,CAACG,UAAU,CAAC;EAEzC,OACEnB,KAAA,CAAAoB,aAAA,CAACjB,qBAAqB,EAAAkB,QAAA,KAAKL,KAAK;IAAEG,UAAU,EAAED;EAAU,IAAAI,IAAA,KAAAA,IAAA,GACtDtB,KAAA,CAAAoB,aAAA;IAAKG,SAAS,EAAC;EAA4B,GACzCvB,KAAA,CAAAoB,aAAA,CAAClB,kBAAkB,MAAE,CAClB,CAAC,CACe,CAAC;AAE5B;AAEAI,aAAa,CAACkB,OAAO,GAAGvB,oBAAoB;AAE5CK,aAAa,CAACmB,qBAAqB,GAAG,IAAI;AAE1C,eAAenB,aAAa"}
|
|
@@ -6,6 +6,7 @@ import React from 'react';
|
|
|
6
6
|
import { ContextProps } from '../../shared/Context';
|
|
7
7
|
import { StepIndicatorData, StepIndicatorMode, StepIndicatorProps } from './StepIndicator';
|
|
8
8
|
import { StepIndicatorItemProps } from './StepIndicatorItem';
|
|
9
|
+
import { StepIndicatorTriggerButtonProps } from './StepIndicatorTriggerButton';
|
|
9
10
|
export type StepIndicatorContextValues = StepIndicatorProviderProps & StepIndicatorProviderStates & ContextProps;
|
|
10
11
|
declare const StepIndicatorContext: React.Context<StepIndicatorContextValues>;
|
|
11
12
|
export default StepIndicatorContext;
|
|
@@ -24,6 +25,7 @@ export type StepIndicatorProviderProps = Omit<StepIndicatorProps, 'mode' | 'data
|
|
|
24
25
|
mode?: StepIndicatorMode;
|
|
25
26
|
children: React.ReactNode;
|
|
26
27
|
isSidebar?: boolean;
|
|
28
|
+
triggerButtonProps?: StepIndicatorTriggerButtonProps;
|
|
27
29
|
};
|
|
28
30
|
export type StepIndicatorProviderStates = {
|
|
29
31
|
data: (string | StepIndicatorItemProps)[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepIndicatorContext.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","useState","Context","stepIndicatorDefaultProps","extendPropsWithContext","onMediaQueryChange","filterAttributes","Object","keys","filter","item","includes","concat","StepIndicatorContext","createContext","StepIndicatorProvider","_ref","isSidebar","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","data","JSON","parse","hasSidebar","setHasSidebar","hideSidebar","setHideSidebar","openState","setOpenState","onChangeState","openHandler","closeHandler","getActiveStepFromProps","current_step","dataWithItems","itemWithCurrentStep","find","is_current","indexOf","countSteps","length","activeStepRef","forceUpdate","setActiveStep","step","current","listOfReachedSteps","Boolean","mediaQueryListener","context","updateStepTitle","title","replace","String","makeContextValue","globalContext","skeleton","getTranslation","StepIndicator","value","extendSafe","defaultProps","activeStep","stepsLabel","step_title","stepsLabelExtended","step_title_extended","sidebarIsVisible","contextValue","_document","container","document","getElementById","sidebar_id","min","max","runOnInit","currentStepFromProps","push","window","forEach","key","startsWith","createElement","Provider","children","objects","obj","itm","entries","reduce","acc","k","v"],"sources":["../../../../src/components/step-indicator/StepIndicatorContext.tsx"],"sourcesContent":["/**\n * Web StepIndicator Context\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport Context, { ContextProps } from '../../shared/Context'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport { onMediaQueryChange } from '../../shared/MediaQueryUtils'\nimport {\n StepIndicatorData,\n StepIndicatorDataItem,\n StepIndicatorMode,\n StepIndicatorProps,\n} from './StepIndicator'\nimport { StepIndicatorItemProps } from './StepIndicatorItem'\n\n// We use this array to filter out unwanted properties\nconst filterAttributes = Object.keys(stepIndicatorDefaultProps)\n .filter((item) => {\n return !['class', 'className'].includes(item)\n })\n .concat([\n 'internalId',\n 'isSidebar',\n 'hasSidebar',\n 'hideSidebar',\n 'sidebarIsVisible',\n 'mainTitle',\n 'stepsLabel',\n 'stepsLabelExtended',\n 'listOfReachedSteps',\n 'setActiveStep',\n 'activeStep',\n 'countSteps',\n 'openState',\n 'onChangeState',\n 'openHandler',\n 'closeHandler',\n 'innerRef',\n 'hasSkeletonData',\n 'filterAttributes',\n 'onChangeState',\n ])\n\nexport type StepIndicatorContextValues = StepIndicatorProviderProps &\n StepIndicatorProviderStates &\n ContextProps\n\nconst StepIndicatorContext =\n React.createContext<StepIndicatorContextValues>(null)\n\nexport default StepIndicatorContext\n\nexport type StepIndicatorProviderProps = Omit<\n StepIndicatorProps,\n 'mode' | 'data'\n> & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id: string\n /**\n * <em>(required)</em> defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.\n */\n data?: StepIndicatorData\n /**\n * <em>(required)</em> defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.\n */\n mode?: StepIndicatorMode\n children: React.ReactNode\n isSidebar?: boolean\n}\n\nexport type StepIndicatorProviderStates = {\n data: (string | StepIndicatorItemProps)[]\n hasSidebar: boolean\n hideSidebar: boolean\n activeStep: number\n openState: boolean\n listOfReachedSteps: number[]\n countSteps: number\n stepsLabel: string\n stepsLabelExtended: string\n filterAttributes: string[]\n setActiveStep: React.Dispatch<React.SetStateAction<number>>\n sidebarIsVisible: boolean\n onChangeState: () => void\n openHandler: () => void\n closeHandler: () => void\n}\n\nexport function StepIndicatorProvider({\n isSidebar = false,\n ...restOfProps\n}: StepIndicatorProviderProps) {\n const props = useMemo(() => {\n return { isSidebar, ...restOfProps }\n }, [isSidebar, restOfProps])\n\n const data = useMemo(() => {\n if (typeof props.data === 'string') {\n return props.data[0] === '[' ? JSON.parse(props.data) : []\n }\n\n return props.data || []\n }, [props])\n\n const [hasSidebar, setHasSidebar] = useState<boolean>(true)\n const [hideSidebar, setHideSidebar] = useState<boolean>(false)\n const [openState, setOpenState] = useState<boolean>(false)\n\n const onChangeState = useCallback(() => {\n setOpenState(false)\n }, [])\n\n const openHandler = useCallback(() => {\n setOpenState(true)\n }, [])\n\n const closeHandler = useCallback(() => {\n setOpenState(false)\n }, [])\n\n const getActiveStepFromProps = useCallback(() => {\n if (typeof data[0] === 'string') {\n return props.current_step\n }\n\n const dataWithItems = data as StepIndicatorDataItem[]\n\n const itemWithCurrentStep = dataWithItems.find(\n (item) => item.is_current\n )\n // Is current on data item has precedence(?) over current_step prop\n return itemWithCurrentStep\n ? dataWithItems.indexOf(itemWithCurrentStep)\n : props.current_step\n }, [data, props.current_step])\n\n const countSteps = data.length\n const activeStepRef = useRef<number>(getActiveStepFromProps())\n const [, forceUpdate] = useReducer(() => ({}), {})\n const setActiveStep = useCallback((step: number) => {\n activeStepRef.current = step\n forceUpdate()\n }, [])\n const listOfReachedSteps = useRef(\n [activeStepRef.current].filter(Boolean)\n ).current\n const mediaQueryListener = useRef(null)\n const context = useContext(Context)\n\n const updateStepTitle = useCallback(\n (title: string) => {\n return title\n ?.replace('%step', String((activeStepRef.current || 0) + 1))\n .replace('%count', String(data?.length || 1))\n },\n [data?.length]\n )\n\n const makeContextValue = useCallback(() => {\n const globalContext = extendPropsWithContext(\n props,\n stepIndicatorDefaultProps,\n { skeleton: context?.skeleton },\n context.getTranslation(context).StepIndicator,\n context.StepIndicator\n )\n\n const value = extendSafe(\n { filterAttributes },\n globalContext,\n // Props\n {\n defaultProps: stepIndicatorDefaultProps,\n props,\n },\n // State\n {\n hasSidebar,\n hideSidebar,\n activeStep: activeStepRef.current,\n openState,\n listOfReachedSteps,\n data,\n countSteps,\n stepsLabel: updateStepTitle(globalContext.step_title),\n stepsLabelExtended: updateStepTitle(\n globalContext.step_title_extended\n ),\n },\n // Functions\n {\n setActiveStep,\n onChangeState,\n openHandler,\n closeHandler,\n }\n ) as StepIndicatorContextValues\n\n value.sidebarIsVisible = value.hasSidebar && !value.hideSidebar\n\n return value\n }, [\n closeHandler,\n context,\n countSteps,\n data,\n hasSidebar,\n hideSidebar,\n listOfReachedSteps,\n onChangeState,\n openHandler,\n openState,\n props,\n setActiveStep,\n updateStepTitle,\n ])\n\n const contextValue = makeContextValue() as StepIndicatorContextValues\n\n // Mount and dismount\n useEffect(() => {\n const container = document?.getElementById(\n 'sidebar__' + props.sidebar_id\n )\n\n setHasSidebar(Boolean(container))\n\n mediaQueryListener.current = onMediaQueryChange(\n {\n min: '0',\n max: 'medium',\n },\n (hideSidebar) => {\n setHideSidebar(hideSidebar)\n },\n { runOnInit: true }\n )\n\n return () => {\n if (mediaQueryListener.current) {\n mediaQueryListener.current()\n }\n }\n }, [props.sidebar_id])\n\n // Keeps the activeStep state updated with changes to the current_step and data props\n useEffect(() => {\n const currentStepFromProps = getActiveStepFromProps()\n\n if (currentStepFromProps !== activeStepRef.current) {\n setActiveStep(currentStepFromProps)\n }\n }, [props.current_step, data, getActiveStepFromProps, setActiveStep])\n\n // Keeps the listOfReachedSteps state up to date with the activeStep state\n const activeStep = activeStepRef.current\n useEffect(() => {\n if (!listOfReachedSteps.includes(activeStep)) {\n listOfReachedSteps.push(activeStep)\n }\n }, [activeStep, listOfReachedSteps])\n\n if (typeof window !== 'undefined' && window['IS_TEST']) {\n contextValue['no_animation'] = true\n }\n\n // Filter out unwanted HTML attributes\n Object.keys(contextValue).forEach((key) => {\n if (key.startsWith('_')) {\n delete contextValue[key]\n }\n })\n\n return (\n <StepIndicatorContext.Provider value={contextValue}>\n {props.children}\n </StepIndicatorContext.Provider>\n )\n}\n\n/**\n * Like \"Object.assign\" – but safe\n * A new falsy value will not be used, if it exists already\n *\n * @param {...object} objects\n * @returns object\n */\nfunction extendSafe(...objects): Record<string, unknown> {\n const obj = {}\n\n objects.forEach((itm) => {\n if (itm.defaultProps && itm.props) {\n itm = Object.entries(itm.props).reduce((acc, [k, v]) => {\n if (itm.defaultProps[k] !== v) {\n acc[k] = v\n }\n return acc\n }, {})\n }\n\n Object.entries(itm).forEach(([k, v]) => {\n if (!obj[k] || (obj[k] && v)) {\n obj[k] = v\n }\n })\n })\n\n return obj\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StepIndicatorContext.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","useState","Context","stepIndicatorDefaultProps","extendPropsWithContext","onMediaQueryChange","filterAttributes","Object","keys","filter","item","includes","concat","StepIndicatorContext","createContext","StepIndicatorProvider","_ref","isSidebar","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","data","JSON","parse","hasSidebar","setHasSidebar","hideSidebar","setHideSidebar","openState","setOpenState","onChangeState","openHandler","closeHandler","getActiveStepFromProps","current_step","dataWithItems","itemWithCurrentStep","find","is_current","indexOf","countSteps","length","activeStepRef","forceUpdate","setActiveStep","step","current","listOfReachedSteps","Boolean","mediaQueryListener","context","updateStepTitle","title","replace","String","makeContextValue","globalContext","skeleton","getTranslation","StepIndicator","value","extendSafe","defaultProps","activeStep","stepsLabel","step_title","stepsLabelExtended","step_title_extended","sidebarIsVisible","contextValue","_document","container","document","getElementById","sidebar_id","min","max","runOnInit","currentStepFromProps","push","window","forEach","key","startsWith","createElement","Provider","children","objects","obj","itm","entries","reduce","acc","k","v"],"sources":["../../../../src/components/step-indicator/StepIndicatorContext.tsx"],"sourcesContent":["/**\n * Web StepIndicator Context\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport Context, { ContextProps } from '../../shared/Context'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport { onMediaQueryChange } from '../../shared/MediaQueryUtils'\nimport {\n StepIndicatorData,\n StepIndicatorDataItem,\n StepIndicatorMode,\n StepIndicatorProps,\n} from './StepIndicator'\nimport { StepIndicatorItemProps } from './StepIndicatorItem'\nimport { StepIndicatorTriggerButtonProps } from './StepIndicatorTriggerButton'\n\n// We use this array to filter out unwanted properties\nconst filterAttributes = Object.keys(stepIndicatorDefaultProps)\n .filter((item) => {\n return !['class', 'className'].includes(item)\n })\n .concat([\n 'internalId',\n 'isSidebar',\n 'hasSidebar',\n 'hideSidebar',\n 'sidebarIsVisible',\n 'mainTitle',\n 'stepsLabel',\n 'stepsLabelExtended',\n 'listOfReachedSteps',\n 'setActiveStep',\n 'activeStep',\n 'countSteps',\n 'openState',\n 'onChangeState',\n 'openHandler',\n 'closeHandler',\n 'innerRef',\n 'hasSkeletonData',\n 'filterAttributes',\n 'onChangeState',\n ])\n\nexport type StepIndicatorContextValues = StepIndicatorProviderProps &\n StepIndicatorProviderStates &\n ContextProps\n\nconst StepIndicatorContext =\n React.createContext<StepIndicatorContextValues>(null)\n\nexport default StepIndicatorContext\n\nexport type StepIndicatorProviderProps = Omit<\n StepIndicatorProps,\n 'mode' | 'data'\n> & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id: string\n /**\n * <em>(required)</em> defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.\n */\n data?: StepIndicatorData\n /**\n * <em>(required)</em> defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.\n */\n mode?: StepIndicatorMode\n children: React.ReactNode\n isSidebar?: boolean\n triggerButtonProps?: StepIndicatorTriggerButtonProps\n}\n\nexport type StepIndicatorProviderStates = {\n data: (string | StepIndicatorItemProps)[]\n hasSidebar: boolean\n hideSidebar: boolean\n activeStep: number\n openState: boolean\n listOfReachedSteps: number[]\n countSteps: number\n stepsLabel: string\n stepsLabelExtended: string\n filterAttributes: string[]\n setActiveStep: React.Dispatch<React.SetStateAction<number>>\n sidebarIsVisible: boolean\n onChangeState: () => void\n openHandler: () => void\n closeHandler: () => void\n}\n\nexport function StepIndicatorProvider({\n isSidebar = false,\n ...restOfProps\n}: StepIndicatorProviderProps) {\n const props = useMemo(() => {\n return { isSidebar, ...restOfProps }\n }, [isSidebar, restOfProps])\n\n const data = useMemo(() => {\n if (typeof props.data === 'string') {\n return props.data[0] === '[' ? JSON.parse(props.data) : []\n }\n\n return props.data || []\n }, [props])\n\n const [hasSidebar, setHasSidebar] = useState<boolean>(true)\n const [hideSidebar, setHideSidebar] = useState<boolean>(false)\n const [openState, setOpenState] = useState<boolean>(false)\n\n const onChangeState = useCallback(() => {\n setOpenState(false)\n }, [])\n\n const openHandler = useCallback(() => {\n setOpenState(true)\n }, [])\n\n const closeHandler = useCallback(() => {\n setOpenState(false)\n }, [])\n\n const getActiveStepFromProps = useCallback(() => {\n if (typeof data[0] === 'string') {\n return props.current_step\n }\n\n const dataWithItems = data as StepIndicatorDataItem[]\n\n const itemWithCurrentStep = dataWithItems.find(\n (item) => item.is_current\n )\n // Is current on data item has precedence(?) over current_step prop\n return itemWithCurrentStep\n ? dataWithItems.indexOf(itemWithCurrentStep)\n : props.current_step\n }, [data, props.current_step])\n\n const countSteps = data.length\n const activeStepRef = useRef<number>(getActiveStepFromProps())\n const [, forceUpdate] = useReducer(() => ({}), {})\n const setActiveStep = useCallback((step: number) => {\n activeStepRef.current = step\n forceUpdate()\n }, [])\n const listOfReachedSteps = useRef(\n [activeStepRef.current].filter(Boolean)\n ).current\n const mediaQueryListener = useRef(null)\n const context = useContext(Context)\n\n const updateStepTitle = useCallback(\n (title: string) => {\n return title\n ?.replace('%step', String((activeStepRef.current || 0) + 1))\n .replace('%count', String(data?.length || 1))\n },\n [data?.length]\n )\n\n const makeContextValue = useCallback(() => {\n const globalContext = extendPropsWithContext(\n props,\n stepIndicatorDefaultProps,\n { skeleton: context?.skeleton },\n context.getTranslation(context).StepIndicator,\n context.StepIndicator\n )\n\n const value = extendSafe(\n { filterAttributes },\n globalContext,\n // Props\n {\n defaultProps: stepIndicatorDefaultProps,\n props,\n },\n // State\n {\n hasSidebar,\n hideSidebar,\n activeStep: activeStepRef.current,\n openState,\n listOfReachedSteps,\n data,\n countSteps,\n stepsLabel: updateStepTitle(globalContext.step_title),\n stepsLabelExtended: updateStepTitle(\n globalContext.step_title_extended\n ),\n },\n // Functions\n {\n setActiveStep,\n onChangeState,\n openHandler,\n closeHandler,\n }\n ) as StepIndicatorContextValues\n\n value.sidebarIsVisible = value.hasSidebar && !value.hideSidebar\n\n return value\n }, [\n closeHandler,\n context,\n countSteps,\n data,\n hasSidebar,\n hideSidebar,\n listOfReachedSteps,\n onChangeState,\n openHandler,\n openState,\n props,\n setActiveStep,\n updateStepTitle,\n ])\n\n const contextValue = makeContextValue() as StepIndicatorContextValues\n\n // Mount and dismount\n useEffect(() => {\n const container = document?.getElementById(\n 'sidebar__' + props.sidebar_id\n )\n\n setHasSidebar(Boolean(container))\n\n mediaQueryListener.current = onMediaQueryChange(\n {\n min: '0',\n max: 'medium',\n },\n (hideSidebar) => {\n setHideSidebar(hideSidebar)\n },\n { runOnInit: true }\n )\n\n return () => {\n if (mediaQueryListener.current) {\n mediaQueryListener.current()\n }\n }\n }, [props.sidebar_id])\n\n // Keeps the activeStep state updated with changes to the current_step and data props\n useEffect(() => {\n const currentStepFromProps = getActiveStepFromProps()\n\n if (currentStepFromProps !== activeStepRef.current) {\n setActiveStep(currentStepFromProps)\n }\n }, [props.current_step, data, getActiveStepFromProps, setActiveStep])\n\n // Keeps the listOfReachedSteps state up to date with the activeStep state\n const activeStep = activeStepRef.current\n useEffect(() => {\n if (!listOfReachedSteps.includes(activeStep)) {\n listOfReachedSteps.push(activeStep)\n }\n }, [activeStep, listOfReachedSteps])\n\n if (typeof window !== 'undefined' && window['IS_TEST']) {\n contextValue['no_animation'] = true\n }\n\n // Filter out unwanted HTML attributes\n Object.keys(contextValue).forEach((key) => {\n if (key.startsWith('_')) {\n delete contextValue[key]\n }\n })\n\n return (\n <StepIndicatorContext.Provider value={contextValue}>\n {props.children}\n </StepIndicatorContext.Provider>\n )\n}\n\n/**\n * Like \"Object.assign\" – but safe\n * A new falsy value will not be used, if it exists already\n *\n * @param {...object} objects\n * @returns object\n */\nfunction extendSafe(...objects): Record<string, unknown> {\n const obj = {}\n\n objects.forEach((itm) => {\n if (itm.defaultProps && itm.props) {\n itm = Object.entries(itm.props).reduce((acc, [k, v]) => {\n if (itm.defaultProps[k] !== v) {\n acc[k] = v\n }\n return acc\n }, {})\n }\n\n Object.entries(itm).forEach(([k, v]) => {\n if (!obj[k] || (obj[k] && v)) {\n obj[k] = v\n }\n })\n })\n\n return obj\n}\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
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 = ["data"];
|
|
6
|
+
const _excluded = ["data", "triggerButtonProps"];
|
|
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 classnames from 'classnames';
|
|
@@ -23,14 +23,15 @@ function StepIndicatorTriggerButton(props) {
|
|
|
23
23
|
const item = context.data[context.activeStep || 0];
|
|
24
24
|
const label = context.stepsLabel;
|
|
25
25
|
const {
|
|
26
|
-
data
|
|
26
|
+
data,
|
|
27
|
+
triggerButtonProps
|
|
27
28
|
} = context,
|
|
28
29
|
contextWithoutData = _objectWithoutProperties(context, _excluded);
|
|
29
30
|
const triggerParams = _objectSpread(_objectSpread({}, contextWithoutData), {}, {
|
|
30
31
|
className: classnames('dnb-step-indicator__trigger', createSkeletonClass('font', context.skeleton), createSpacingClasses(context)),
|
|
31
32
|
'aria-live': 'polite'
|
|
32
33
|
});
|
|
33
|
-
const buttonParams = _objectSpread(_objectSpread({}, props), {}, {
|
|
34
|
+
const buttonParams = _objectSpread(_objectSpread(_objectSpread({}, triggerButtonProps), props), {}, {
|
|
34
35
|
className: classnames('dnb-step-indicator__trigger__button', props.className)
|
|
35
36
|
});
|
|
36
37
|
buttonParams['aria-describedby'] = combineDescribedBy(buttonParams, context.sidebar_id + '-overview');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepIndicatorTriggerButton.js","names":["classnames","React","useContext","useRef","Button","chevron_icon","validateDOMAttributes","combineDescribedBy","HeightAnimation","createSpacingClasses","FormLabel","StepIndicatorContext","StepItemWrapper","skeletonDOMAttributes","createSkeletonClass","StepIndicatorTriggerButton","props","context","buttonRef","inner_ref","item","data","activeStep","label","stepsLabel","contextWithoutData","_objectWithoutProperties","_excluded","triggerParams","_objectSpread","className","skeleton","buttonParams","sidebar_id","Object","keys","forEach","key","filterAttributes","includes","createElement","id","overview_title","forId","_extends","wrap","stretch","variant","icon","icon_size","icon_position","number","hide_numbers","title"],"sources":["../../../../src/components/step-indicator/StepIndicatorTriggerButton.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport classnames from 'classnames'\nimport React, { useContext, useRef } from 'react'\nimport Button, { ButtonProps } from '../button/Button'\nimport chevron_icon from '../../icons/chevron_right_medium'\nimport {\n validateDOMAttributes,\n combineDescribedBy,\n} from '../../shared/component-helper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport FormLabel from '../form-label/FormLabel'\nimport StepIndicatorContext from './StepIndicatorContext'\nimport { StepItemWrapper } from './StepIndicatorItem'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nexport type StepIndicatorTriggerButtonProps = ButtonProps & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id?: string\n className?: string\n inner_ref?: React.RefObject<HTMLElement>\n}\nfunction StepIndicatorTriggerButton(\n props: StepIndicatorTriggerButtonProps\n) {\n const context = useContext(StepIndicatorContext)\n\n const buttonRef = useRef(props?.inner_ref || null)\n\n const item = context.data[context.activeStep || 0]\n const label = context.stepsLabel\n\n const {\n data, // eslint-disable-line\n ...contextWithoutData\n } = context\n\n const triggerParams = {\n ...contextWithoutData,\n className: classnames(\n 'dnb-step-indicator__trigger',\n createSkeletonClass('font', context.skeleton),\n createSpacingClasses(context)\n ),\n 'aria-live': 'polite',\n } as React.HTMLProps<HTMLElement>\n\n const buttonParams = {\n ...props,\n className: classnames(\n 'dnb-step-indicator__trigger__button',\n props.className\n ),\n }\n\n buttonParams['aria-describedby'] = combineDescribedBy(\n buttonParams,\n context.sidebar_id + '-overview'\n )\n\n Object.keys(triggerParams).forEach((key) => {\n if (context.filterAttributes.includes(key)) {\n delete triggerParams[key]\n }\n })\n\n skeletonDOMAttributes(triggerParams, context.skeleton)\n\n // also used for code markup simulation\n validateDOMAttributes(context, triggerParams)\n\n return (\n <div {...(triggerParams as React.HTMLProps<HTMLDivElement>)}>\n <span className=\"dnb-sr-only\" id={context.sidebar_id + '-overview'}>\n {context.overview_title}\n </span>\n <FormLabel\n aria-describedby={context.sidebar_id}\n forId={context.sidebar_id}\n className=\"dnb-step-indicator__label\"\n >\n {label}\n </FormLabel>\n <Button\n {...buttonParams}\n id={context.sidebar_id}\n wrap\n stretch\n variant=\"secondary\"\n icon={chevron_icon}\n icon_size=\"medium\"\n icon_position=\"right\"\n inner_ref={buttonRef}\n >\n <StepItemWrapper\n number={(context.activeStep || 0) + 1}\n hide_numbers={context.hide_numbers}\n >\n <HeightAnimation>\n {(typeof item === 'string' ? item : item && item.title) || ''}\n </HeightAnimation>\n </StepItemWrapper>\n </Button>\n </div>\n )\n}\n\nexport default StepIndicatorTriggerButton\n"],"mappings":";;;;;;;;AAKA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AACjD,OAAOC,MAAM,MAAuB,kBAAkB;AACtD,OAAOC,YAAY,MAAM,kCAAkC;AAC3D,SACEC,qBAAqB,EACrBC,kBAAkB,QACb,+BAA+B;AACtC,OAAOC,eAAe,MAAM,qCAAqC;AACjE,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,OAAOC,SAAS,MAAM,yBAAyB;AAC/C,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SACEC,qBAAqB,EACrBC,mBAAmB,QACd,4BAA4B;AAUnC,SAASC,0BAA0BA,CACjCC,KAAsC,EACtC;EACA,MAAMC,OAAO,GAAGf,UAAU,CAACS,oBAAoB,CAAC;EAEhD,MAAMO,SAAS,GAAGf,MAAM,CAAC,CAAAa,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,SAAS,KAAI,IAAI,CAAC;EAElD,MAAMC,IAAI,GAAGH,OAAO,CAACI,IAAI,CAACJ,OAAO,CAACK,UAAU,IAAI,CAAC,CAAC;EAClD,MAAMC,KAAK,GAAGN,OAAO,CAACO,UAAU;EAEhC,MAAM;MACJH;IAEF,CAAC,
|
|
1
|
+
{"version":3,"file":"StepIndicatorTriggerButton.js","names":["classnames","React","useContext","useRef","Button","chevron_icon","validateDOMAttributes","combineDescribedBy","HeightAnimation","createSpacingClasses","FormLabel","StepIndicatorContext","StepItemWrapper","skeletonDOMAttributes","createSkeletonClass","StepIndicatorTriggerButton","props","context","buttonRef","inner_ref","item","data","activeStep","label","stepsLabel","triggerButtonProps","contextWithoutData","_objectWithoutProperties","_excluded","triggerParams","_objectSpread","className","skeleton","buttonParams","sidebar_id","Object","keys","forEach","key","filterAttributes","includes","createElement","id","overview_title","forId","_extends","wrap","stretch","variant","icon","icon_size","icon_position","number","hide_numbers","title"],"sources":["../../../../src/components/step-indicator/StepIndicatorTriggerButton.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport classnames from 'classnames'\nimport React, { useContext, useRef } from 'react'\nimport Button, { ButtonProps } from '../button/Button'\nimport chevron_icon from '../../icons/chevron_right_medium'\nimport {\n validateDOMAttributes,\n combineDescribedBy,\n} from '../../shared/component-helper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport FormLabel from '../form-label/FormLabel'\nimport StepIndicatorContext from './StepIndicatorContext'\nimport { StepItemWrapper } from './StepIndicatorItem'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nexport type StepIndicatorTriggerButtonProps = ButtonProps & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id?: string\n className?: string\n inner_ref?: React.RefObject<HTMLElement>\n}\nfunction StepIndicatorTriggerButton(\n props: StepIndicatorTriggerButtonProps\n) {\n const context = useContext(StepIndicatorContext)\n\n const buttonRef = useRef(props?.inner_ref || null)\n\n const item = context.data[context.activeStep || 0]\n const label = context.stepsLabel\n\n const {\n data, // eslint-disable-line\n triggerButtonProps, // eslint-disable-line\n ...contextWithoutData\n } = context\n\n const triggerParams = {\n ...contextWithoutData,\n className: classnames(\n 'dnb-step-indicator__trigger',\n createSkeletonClass('font', context.skeleton),\n createSpacingClasses(context)\n ),\n 'aria-live': 'polite',\n } as React.HTMLProps<HTMLElement>\n\n const buttonParams = {\n ...triggerButtonProps,\n ...props,\n className: classnames(\n 'dnb-step-indicator__trigger__button',\n props.className\n ),\n }\n\n buttonParams['aria-describedby'] = combineDescribedBy(\n buttonParams,\n context.sidebar_id + '-overview'\n )\n\n Object.keys(triggerParams).forEach((key) => {\n if (context.filterAttributes.includes(key)) {\n delete triggerParams[key]\n }\n })\n\n skeletonDOMAttributes(triggerParams, context.skeleton)\n\n // also used for code markup simulation\n validateDOMAttributes(context, triggerParams)\n\n return (\n <div {...(triggerParams as React.HTMLProps<HTMLDivElement>)}>\n <span className=\"dnb-sr-only\" id={context.sidebar_id + '-overview'}>\n {context.overview_title}\n </span>\n <FormLabel\n aria-describedby={context.sidebar_id}\n forId={context.sidebar_id}\n className=\"dnb-step-indicator__label\"\n >\n {label}\n </FormLabel>\n <Button\n {...buttonParams}\n id={context.sidebar_id}\n wrap\n stretch\n variant=\"secondary\"\n icon={chevron_icon}\n icon_size=\"medium\"\n icon_position=\"right\"\n inner_ref={buttonRef}\n >\n <StepItemWrapper\n number={(context.activeStep || 0) + 1}\n hide_numbers={context.hide_numbers}\n >\n <HeightAnimation>\n {(typeof item === 'string' ? item : item && item.title) || ''}\n </HeightAnimation>\n </StepItemWrapper>\n </Button>\n </div>\n )\n}\n\nexport default StepIndicatorTriggerButton\n"],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
ButtonIconPosition,
|
|
4
|
+
ButtonSize,
|
|
5
|
+
ButtonTooltip
|
|
6
|
+
} from '../Button';
|
|
3
7
|
import type { FormLabelLabelDirection } from '../FormLabel';
|
|
4
8
|
import type {
|
|
5
9
|
FormStatusProps,
|
|
@@ -73,6 +77,10 @@ export interface ToggleButtonProps
|
|
|
73
77
|
* Text describing the content of the ToggleButton more than the label. You can also send in a React component, so it gets wrapped inside the ToggleButton component.
|
|
74
78
|
*/
|
|
75
79
|
suffix?: ToggleButtonSuffix;
|
|
80
|
+
/**
|
|
81
|
+
* Provide a string or a React Element to be shown as the tooltip content.
|
|
82
|
+
*/
|
|
83
|
+
tooltip?: ButtonTooltip;
|
|
76
84
|
/**
|
|
77
85
|
* Defines the `value` as a string. Use it to get the value during the `on_change` event listener callback in the **ToggleButtonGroup**.
|
|
78
86
|
*/
|
|
@@ -40,6 +40,7 @@ export const ToggleButtonProperties = {
|
|
|
40
40
|
type: 'string',
|
|
41
41
|
status: 'optional'
|
|
42
42
|
},
|
|
43
|
+
tooltip: ButtonProperties.tooltip,
|
|
43
44
|
size: ButtonProperties.size,
|
|
44
45
|
status: {
|
|
45
46
|
doc: 'Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleButtonDocs.js","names":["ButtonProperties","ToggleButtonProperties","value","doc","type","status","text","checked","title","label","icon","icon_position","icon_size","size","status_state","status_props","globalStatus","suffix","skeleton"],"sources":["../../../../src/components/toggle-button/ToggleButtonDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\nimport { ButtonProperties } from '../button/ButtonDocs'\n\nexport const ToggleButtonProperties: PropertiesTableProps = {\n value: {\n doc: 'Defines the `value` as a string. Use it to get the value during the `on_change` event listener callback in the **ToggleButtonGroup**.',\n type: 'string',\n status: 'required',\n },\n text: {\n doc: 'The text shown in the ToggleButton.',\n type: 'string',\n status: 'required',\n },\n checked: {\n doc: 'Determine whether the ToggleButton is checked or not. The default will be `false`.',\n type: 'boolean',\n status: 'optional',\n },\n title: {\n doc: 'The `title` of the input - describing it a bit further for accessibility reasons.',\n type: 'string',\n status: 'optional',\n },\n label: {\n doc: 'Use either the `label` property or provide a custom one.',\n type: 'string',\n status: 'optional',\n },\n icon: {\n doc: 'Icon to be included in the toggle button.',\n type: ['string', 'React.ReactNode'],\n status: 'optional',\n },\n icon_position: {\n doc: 'Position of the icon inside the toggle button. Set to `left` or `right`. Defaults to `right` if not set.',\n type: ['left', 'right'],\n status: 'optional',\n },\n icon_size: {\n doc: 'Define icon width and height. Defaults to 16px.',\n type: 'string',\n status: 'optional',\n },\n size: ButtonProperties.size,\n status: {\n doc: 'Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.',\n type: ['error', 'info', 'boolean'],\n status: 'optional',\n },\n status_state: {\n doc: 'Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.',\n type: ['error', 'info'],\n status: 'optional',\n },\n status_props: {\n doc: 'Use an object to define additional FormStatus properties.',\n type: 'object',\n status: 'optional',\n },\n globalStatus: {\n doc: 'The [configuration](/uilib/components/global-status/properties/#configuration-object) used for the target [GlobalStatus](/uilib/components/global-status).',\n type: 'object',\n status: 'optional',\n },\n suffix: {\n doc: 'Text describing the content of the ToggleButton more than the label. You can also send in a React component, so it gets wrapped inside the ToggleButton component.',\n type: ['string', 'React.ReactNode'],\n status: 'optional',\n },\n skeleton: {\n doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',\n type: 'boolean',\n status: 'optional',\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"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,sBAA4C,GAAG;EAC1DC,KAAK,EAAE;IACLC,GAAG,EAAE,uIAAuI;IAC5IC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,oFAAoF;IACzFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,KAAK,EAAE;IACLL,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,2CAA2C;IAChDC,IAAI,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACnCC,MAAM,EAAE;EACV,CAAC;EACDM,aAAa,EAAE;IACbR,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACvBC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,
|
|
1
|
+
{"version":3,"file":"ToggleButtonDocs.js","names":["ButtonProperties","ToggleButtonProperties","value","doc","type","status","text","checked","title","label","icon","icon_position","icon_size","tooltip","size","status_state","status_props","globalStatus","suffix","skeleton"],"sources":["../../../../src/components/toggle-button/ToggleButtonDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\nimport { ButtonProperties } from '../button/ButtonDocs'\n\nexport const ToggleButtonProperties: PropertiesTableProps = {\n value: {\n doc: 'Defines the `value` as a string. Use it to get the value during the `on_change` event listener callback in the **ToggleButtonGroup**.',\n type: 'string',\n status: 'required',\n },\n text: {\n doc: 'The text shown in the ToggleButton.',\n type: 'string',\n status: 'required',\n },\n checked: {\n doc: 'Determine whether the ToggleButton is checked or not. The default will be `false`.',\n type: 'boolean',\n status: 'optional',\n },\n title: {\n doc: 'The `title` of the input - describing it a bit further for accessibility reasons.',\n type: 'string',\n status: 'optional',\n },\n label: {\n doc: 'Use either the `label` property or provide a custom one.',\n type: 'string',\n status: 'optional',\n },\n icon: {\n doc: 'Icon to be included in the toggle button.',\n type: ['string', 'React.ReactNode'],\n status: 'optional',\n },\n icon_position: {\n doc: 'Position of the icon inside the toggle button. Set to `left` or `right`. Defaults to `right` if not set.',\n type: ['left', 'right'],\n status: 'optional',\n },\n icon_size: {\n doc: 'Define icon width and height. Defaults to 16px.',\n type: 'string',\n status: 'optional',\n },\n tooltip: ButtonProperties.tooltip,\n size: ButtonProperties.size,\n status: {\n doc: 'Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.',\n type: ['error', 'info', 'boolean'],\n status: 'optional',\n },\n status_state: {\n doc: 'Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.',\n type: ['error', 'info'],\n status: 'optional',\n },\n status_props: {\n doc: 'Use an object to define additional FormStatus properties.',\n type: 'object',\n status: 'optional',\n },\n globalStatus: {\n doc: 'The [configuration](/uilib/components/global-status/properties/#configuration-object) used for the target [GlobalStatus](/uilib/components/global-status).',\n type: 'object',\n status: 'optional',\n },\n suffix: {\n doc: 'Text describing the content of the ToggleButton more than the label. You can also send in a React component, so it gets wrapped inside the ToggleButton component.',\n type: ['string', 'React.ReactNode'],\n status: 'optional',\n },\n skeleton: {\n doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',\n type: 'boolean',\n status: 'optional',\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"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,sBAA4C,GAAG;EAC1DC,KAAK,EAAE;IACLC,GAAG,EAAE,uIAAuI;IAC5IC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,oFAAoF;IACzFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,KAAK,EAAE;IACLL,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,2CAA2C;IAChDC,IAAI,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACnCC,MAAM,EAAE;EACV,CAAC;EACDM,aAAa,EAAE;IACbR,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACvBC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,OAAO,EAAEb,gBAAgB,CAACa,OAAO;EACjCC,IAAI,EAAEd,gBAAgB,CAACc,IAAI;EAC3BT,MAAM,EAAE;IACNF,GAAG,EAAE,yIAAyI;IAC9IC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;IAClCC,MAAM,EAAE;EACV,CAAC;EACDU,YAAY,EAAE;IACZZ,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IACvBC,MAAM,EAAE;EACV,CAAC;EACDW,YAAY,EAAE;IACZb,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDY,YAAY,EAAE;IACZd,GAAG,EAAE,4JAA4J;IACjKC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,MAAM,EAAE;IACNf,GAAG,EAAE,oKAAoK;IACzKC,IAAI,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACnCC,MAAM,EAAE;EACV,CAAC;EACDc,QAAQ,EAAE;IACRhB,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,SAAS;IACfC,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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
3
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
6
|
-
var _UploadInfo,
|
|
5
|
+
var _UploadInfo, _UploadFileList;
|
|
7
6
|
const _excluded = ["buttonTextSingular", "textSingular"],
|
|
8
7
|
_excluded2 = ["id", "skeleton", "className", "acceptedFileTypes", "filesAmountLimit", "fileMaxSize", "onChange", "onFileDelete", "onFileClick", "download", "title", "text", "fileTypeTableCaption", "fileTypeDescription", "fileSizeDescription", "fileAmountDescription", "fileSizeContent", "buttonText", "loadingText", "errorLargeFile", "errorUnsupportedFile", "errorAmountLimit", "deleteButton", "fileListAriaLabel"];
|
|
9
8
|
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; }
|
|
@@ -108,9 +107,9 @@ const Upload = localProps => {
|
|
|
108
107
|
})
|
|
109
108
|
}, React.createElement(Provider, {
|
|
110
109
|
skeleton: skeleton
|
|
111
|
-
}, React.createElement(UploadDropzone,
|
|
110
|
+
}, React.createElement(UploadDropzone, {
|
|
112
111
|
className: classnames('dnb-upload', spacingClasses, className)
|
|
113
|
-
},
|
|
112
|
+
}, _UploadInfo || (_UploadInfo = React.createElement(UploadInfo, null)), React.createElement(UploadFileInput, props), _UploadFileList || (_UploadFileList = React.createElement(UploadFileList, null)))));
|
|
114
113
|
};
|
|
115
114
|
Upload.useUpload = useUpload;
|
|
116
115
|
Upload._formElement = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Upload.js","names":["React","useCallback","classnames","createSpacingClasses","Provider","Context","extendPropsWithContext","makeUniqueId","useId","UploadFileInput","useUpload","UploadDropzone","UploadContext","defaultProps","verifyFiles","UploadFileList","UploadInfo","Upload","localProps","context","useContext","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","_objectWithoutProperties","_excluded","filesAmountLimit","buttonText","text","extendedProps","skeleton","id","idProp","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","onFileClick","download","title","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","_excluded2","spacingClasses","files","setFiles","setInternalFiles","getExistingFile","onInputUpload","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","verifiedFiles","filter","validFiles","slice","createElement","value","_objectSpread","
|
|
1
|
+
{"version":3,"file":"Upload.js","names":["React","useCallback","classnames","createSpacingClasses","Provider","Context","extendPropsWithContext","makeUniqueId","useId","UploadFileInput","useUpload","UploadDropzone","UploadContext","defaultProps","verifyFiles","UploadFileList","UploadInfo","Upload","localProps","context","useContext","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","_objectWithoutProperties","_excluded","filesAmountLimit","buttonText","text","extendedProps","skeleton","id","idProp","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","onFileClick","download","title","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","_excluded2","spacingClasses","files","setFiles","setInternalFiles","getExistingFile","onInputUpload","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","verifiedFiles","filter","validFiles","slice","createElement","value","_objectSpread","_UploadInfo","_UploadFileList","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/upload/Upload.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Provider from '../../shared/Provider'\nimport Context from '../../shared/Context'\nimport {\n extendPropsWithContext,\n makeUniqueId,\n} from '../../shared/component-helper'\nimport useId from '../../shared/helpers/useId'\n\n// Internal\nimport UploadFileInput from './UploadFileInput'\nimport useUpload from './useUpload'\nimport UploadDropzone from './UploadDropzone'\nimport { UploadContext, defaultProps } from './UploadContext'\nimport { verifyFiles } from './UploadVerify'\n\nimport type { UploadFile, UploadAllProps } from './types'\nimport UploadFileList from './UploadFileList'\nimport UploadInfo from './UploadInfo'\n\nexport type * from './types'\nexport { defaultProps }\n\nconst Upload = (localProps: UploadAllProps) => {\n const context = React.useContext(Context)\n\n const { buttonTextSingular, textSingular, ...translations } =\n context.getTranslation(localProps).Upload\n\n if (localProps?.filesAmountLimit === 1) {\n translations.buttonText = buttonTextSingular\n translations.text = textSingular\n }\n\n const extendedProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n translations,\n context.Upload\n )\n\n const {\n id: idProp,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n onFileClick, // eslint-disable-line\n download, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeTableCaption, // eslint-disable-line\n fileTypeDescription, // eslint-disable-line\n fileSizeDescription, // eslint-disable-line\n fileAmountDescription, // eslint-disable-line\n fileSizeContent, // eslint-disable-line\n buttonText, // eslint-disable-line\n loadingText, // eslint-disable-line\n errorLargeFile,\n errorUnsupportedFile,\n errorAmountLimit, // eslint-disable-line\n deleteButton, // eslint-disable-line\n fileListAriaLabel, // eslint-disable-line\n ...props\n } = extendedProps\n\n const spacingClasses = createSpacingClasses(props)\n\n const id = useId(idProp)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const onInputUpload = useCallback(\n (newFiles: Array<UploadFile>) => {\n const mergedFiles = [\n ...files,\n ...newFiles.map((fileItem) => {\n const { file } = fileItem\n\n const existingFile = getExistingFile(file, files)\n\n fileItem.exists = Boolean(existingFile)\n fileItem.id = fileItem.exists ? existingFile.id : makeUniqueId()\n\n return fileItem\n }),\n ]\n\n const verifiedFiles = verifyFiles(\n mergedFiles.filter(({ exists }) => !exists),\n {\n fileMaxSize,\n acceptedFileTypes,\n errorUnsupportedFile,\n errorLargeFile,\n }\n )\n\n const validFiles = [...verifiedFiles].slice(\n 0,\n filesAmountLimit\n ) as Array<UploadFile>\n\n setFiles(validFiles)\n setInternalFiles(mergedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: validFiles })\n }\n\n return validFiles\n },\n [\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n fileMaxSize,\n files,\n filesAmountLimit,\n getExistingFile,\n onChange,\n setFiles,\n setInternalFiles,\n ]\n )\n\n return (\n <UploadContext.Provider\n value={{\n ...extendedProps,\n id,\n onInputUpload,\n }}\n >\n <Provider skeleton={skeleton}>\n <UploadDropzone\n className={classnames('dnb-upload', spacingClasses, className)}\n >\n <UploadInfo />\n\n <UploadFileInput {...props} />\n\n <UploadFileList />\n </UploadDropzone>\n </Provider>\n </UploadContext.Provider>\n )\n}\n\nUpload.useUpload = useUpload\n\nUpload._formElement = true\nUpload._supportsSpacingProps = true\n\nexport default Upload\n"],"mappings":"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"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const UploadFileInput: ({ children, ...rest }: {
|
|
3
|
+
children?: React.ReactNode;
|
|
4
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
2
5
|
export default UploadFileInput;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
5
|
var _UploadStatus;
|
|
6
|
+
const _excluded = ["children"];
|
|
4
7
|
import React, { useRef } from 'react';
|
|
5
8
|
import Button from '../button/Button';
|
|
6
9
|
import { folder as FolderIcon } from '../../icons';
|
|
@@ -8,7 +11,11 @@ import { makeUniqueId } from '../../shared/component-helper';
|
|
|
8
11
|
import { UploadContext } from './UploadContext';
|
|
9
12
|
import UploadStatus from './UploadStatus';
|
|
10
13
|
import { getAcceptedFileTypes } from './UploadVerify';
|
|
11
|
-
const UploadFileInput =
|
|
14
|
+
const UploadFileInput = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
children
|
|
17
|
+
} = _ref,
|
|
18
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
12
19
|
const fileInput = useRef(null);
|
|
13
20
|
const context = React.useContext(UploadContext);
|
|
14
21
|
const {
|
|
@@ -35,7 +42,7 @@ const UploadFileInput = () => {
|
|
|
35
42
|
variant: "secondary",
|
|
36
43
|
wrap: true,
|
|
37
44
|
onClick: openFileDialog
|
|
38
|
-
}, buttonText), _UploadStatus || (_UploadStatus = React.createElement(UploadStatus, null)), React.createElement("input", {
|
|
45
|
+
}, buttonText), _UploadStatus || (_UploadStatus = React.createElement(UploadStatus, null)), React.createElement("input", _extends({
|
|
39
46
|
"aria-labelledby": `${sharedId}-input`,
|
|
40
47
|
ref: fileInput,
|
|
41
48
|
accept: accept,
|
|
@@ -44,7 +51,7 @@ const UploadFileInput = () => {
|
|
|
44
51
|
onChange: onChangeHandler,
|
|
45
52
|
onClick: onClickHandler,
|
|
46
53
|
multiple: filesAmountLimit > 1
|
|
47
|
-
}));
|
|
54
|
+
}, rest)));
|
|
48
55
|
function onChangeHandler(event) {
|
|
49
56
|
const target = event.target;
|
|
50
57
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadFileInput.js","names":["React","useRef","Button","folder","FolderIcon","makeUniqueId","UploadContext","UploadStatus","getAcceptedFileTypes","UploadFileInput","fileInput","context","useContext","id","acceptedFileTypes","buttonText","onInputUpload","filesAmountLimit","openFileDialog","_fileInput$current","current","click","sharedId","accept","createElement","className","top","icon","icon_position","variant","wrap","onClick","_UploadStatus","ref","type","onChange","onChangeHandler","onClickHandler","multiple","event","target","files","Array","from","map","file","value"],"sources":["../../../../src/components/upload/UploadFileInput.tsx"],"sourcesContent":["import React, { useRef } from 'react'\n\n// Components\nimport Button from '../button/Button'\n\n// Icons\nimport { folder as FolderIcon } from '../../icons'\n\n// Shared\nimport { makeUniqueId } from '../../shared/component-helper'\n\n// Internal\nimport { UploadContext } from './UploadContext'\nimport UploadStatus from './UploadStatus'\nimport { getAcceptedFileTypes } from './UploadVerify'\n\nconst UploadFileInput = () => {\n const fileInput = useRef<HTMLInputElement>(null)\n\n const context = React.useContext(UploadContext)\n\n const {\n id,\n acceptedFileTypes,\n buttonText,\n onInputUpload,\n filesAmountLimit,\n } = context\n\n const openFileDialog = () => fileInput.current?.click()\n\n const sharedId = id || makeUniqueId()\n const accept = getAcceptedFileTypes(acceptedFileTypes)\n\n return (\n <div className=\"dnb-upload__file-input-area\">\n <Button\n top=\"medium\"\n id={`${sharedId}-input`}\n className=\"dnb-upload__file-input-button\"\n icon={FolderIcon}\n icon_position=\"left\"\n variant=\"secondary\"\n wrap\n onClick={openFileDialog}\n >\n {buttonText}\n </Button>\n\n <UploadStatus />\n\n <input\n aria-labelledby={`${sharedId}-input`}\n ref={fileInput}\n accept={accept}\n className=\"dnb-upload__file-input\"\n type=\"file\"\n onChange={onChangeHandler}\n onClick={onClickHandler}\n multiple={filesAmountLimit > 1}\n />\n </div>\n )\n\n function onChangeHandler(event: React.SyntheticEvent) {\n const target = event.target as HTMLInputElement\n const { files } = target\n\n onInputUpload(\n Array.from(files).map((file) => {\n return { file }\n })\n )\n }\n\n function onClickHandler(event: React.SyntheticEvent) {\n const target = event.target as HTMLInputElement\n\n /**\n * This resets the internal state.\n * Some browsers (chromium) to check for already selected files.\n * But we have our own logic for that.\n * We also align the UX to be the same to all browsers,\n * and to be same when the drag file API is used.\n */\n target.value = null\n }\n}\n\nexport default UploadFileInput\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"UploadFileInput.js","names":["React","useRef","Button","folder","FolderIcon","makeUniqueId","UploadContext","UploadStatus","getAcceptedFileTypes","UploadFileInput","_ref","children","rest","_objectWithoutProperties","_excluded","fileInput","context","useContext","id","acceptedFileTypes","buttonText","onInputUpload","filesAmountLimit","openFileDialog","_fileInput$current","current","click","sharedId","accept","createElement","className","top","icon","icon_position","variant","wrap","onClick","_UploadStatus","_extends","ref","type","onChange","onChangeHandler","onClickHandler","multiple","event","target","files","Array","from","map","file","value"],"sources":["../../../../src/components/upload/UploadFileInput.tsx"],"sourcesContent":["import React, { useRef } from 'react'\n\n// Components\nimport Button from '../button/Button'\n\n// Icons\nimport { folder as FolderIcon } from '../../icons'\n\n// Shared\nimport { makeUniqueId } from '../../shared/component-helper'\n\n// Internal\nimport { UploadContext } from './UploadContext'\nimport UploadStatus from './UploadStatus'\nimport { getAcceptedFileTypes } from './UploadVerify'\n\nconst UploadFileInput = ({\n children,\n ...rest\n}: {\n children?: React.ReactNode\n}) => {\n const fileInput = useRef<HTMLInputElement>(null)\n\n const context = React.useContext(UploadContext)\n\n const {\n id,\n acceptedFileTypes,\n buttonText,\n onInputUpload,\n filesAmountLimit,\n } = context\n\n const openFileDialog = () => fileInput.current?.click()\n\n const sharedId = id || makeUniqueId()\n const accept = getAcceptedFileTypes(acceptedFileTypes)\n\n return (\n <div className=\"dnb-upload__file-input-area\">\n <Button\n top=\"medium\"\n id={`${sharedId}-input`}\n className=\"dnb-upload__file-input-button\"\n icon={FolderIcon}\n icon_position=\"left\"\n variant=\"secondary\"\n wrap\n onClick={openFileDialog}\n >\n {buttonText}\n </Button>\n\n <UploadStatus />\n\n <input\n aria-labelledby={`${sharedId}-input`}\n ref={fileInput}\n accept={accept}\n className=\"dnb-upload__file-input\"\n type=\"file\"\n onChange={onChangeHandler}\n onClick={onClickHandler}\n multiple={filesAmountLimit > 1}\n {...rest}\n />\n </div>\n )\n\n function onChangeHandler(event: React.SyntheticEvent) {\n const target = event.target as HTMLInputElement\n const { files } = target\n\n onInputUpload(\n Array.from(files).map((file) => {\n return { file }\n })\n )\n }\n\n function onClickHandler(event: React.SyntheticEvent) {\n const target = event.target as HTMLInputElement\n\n /**\n * This resets the internal state.\n * Some browsers (chromium) to check for already selected files.\n * But we have our own logic for that.\n * We also align the UX to be the same to all browsers,\n * and to be same when the drag file API is used.\n */\n target.value = null\n }\n}\n\nexport default UploadFileInput\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AAGrC,OAAOC,MAAM,MAAM,kBAAkB;AAGrC,SAASC,MAAM,IAAIC,UAAU,QAAQ,aAAa;AAGlD,SAASC,YAAY,QAAQ,+BAA+B;AAG5D,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,OAAOC,YAAY,MAAM,gBAAgB;AACzC,SAASC,oBAAoB,QAAQ,gBAAgB;AAErD,MAAMC,eAAe,GAAGC,IAAA,IAKlB;EAAA,IALmB;MACvBC;IAIF,CAAC,GAAAD,IAAA;IAHIE,IAAI,GAAAC,wBAAA,CAAAH,IAAA,EAAAI,SAAA;EAIP,MAAMC,SAAS,GAAGd,MAAM,CAAmB,IAAI,CAAC;EAEhD,MAAMe,OAAO,GAAGhB,KAAK,CAACiB,UAAU,CAACX,aAAa,CAAC;EAE/C,MAAM;IACJY,EAAE;IACFC,iBAAiB;IACjBC,UAAU;IACVC,aAAa;IACbC;EACF,CAAC,GAAGN,OAAO;EAEX,MAAMO,cAAc,GAAGA,CAAA;IAAA,IAAAC,kBAAA;IAAA,QAAAA,kBAAA,GAAMT,SAAS,CAACU,OAAO,cAAAD,kBAAA,uBAAjBA,kBAAA,CAAmBE,KAAK,CAAC,CAAC;EAAA;EAEvD,MAAMC,QAAQ,GAAGT,EAAE,IAAIb,YAAY,CAAC,CAAC;EACrC,MAAMuB,MAAM,GAAGpB,oBAAoB,CAACW,iBAAiB,CAAC;EAEtD,OACEnB,KAAA,CAAA6B,aAAA;IAAKC,SAAS,EAAC;EAA6B,GAC1C9B,KAAA,CAAA6B,aAAA,CAAC3B,MAAM;IACL6B,GAAG,EAAC,QAAQ;IACZb,EAAE,EAAG,GAAES,QAAS,QAAQ;IACxBG,SAAS,EAAC,+BAA+B;IACzCE,IAAI,EAAE5B,UAAW;IACjB6B,aAAa,EAAC,MAAM;IACpBC,OAAO,EAAC,WAAW;IACnBC,IAAI;IACJC,OAAO,EAAEb;EAAe,GAEvBH,UACK,CAAC,EAAAiB,aAAA,KAAAA,aAAA,GAETrC,KAAA,CAAA6B,aAAA,CAACtB,YAAY,MAAE,CAAC,GAEhBP,KAAA,CAAA6B,aAAA,UAAAS,QAAA;IACE,mBAAkB,GAAEX,QAAS,QAAQ;IACrCY,GAAG,EAAExB,SAAU;IACfa,MAAM,EAAEA,MAAO;IACfE,SAAS,EAAC,wBAAwB;IAClCU,IAAI,EAAC,MAAM;IACXC,QAAQ,EAAEC,eAAgB;IAC1BN,OAAO,EAAEO,cAAe;IACxBC,QAAQ,EAAEtB,gBAAgB,GAAG;EAAE,GAC3BV,IAAI,CACT,CACE,CAAC;EAGR,SAAS8B,eAAeA,CAACG,KAA2B,EAAE;IACpD,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAA0B;IAC/C,MAAM;MAAEC;IAAM,CAAC,GAAGD,MAAM;IAExBzB,aAAa,CACX2B,KAAK,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,GAAG,CAAEC,IAAI,IAAK;MAC9B,OAAO;QAAEA;MAAK,CAAC;IACjB,CAAC,CACH,CAAC;EACH;EAEA,SAASR,cAAcA,CAACE,KAA2B,EAAE;IACnD,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAA0B;IAS/CA,MAAM,CAACM,KAAK,GAAG,IAAI;EACrB;AACF,CAAC;AAED,eAAe3C,eAAe"}
|
|
@@ -78,7 +78,7 @@ export type UploadAllProps = UploadProps & SpacingProps & LocaleProps & Omit<Rea
|
|
|
78
78
|
export type UploadContextProps = {
|
|
79
79
|
id?: string;
|
|
80
80
|
onInputUpload: (files: Array<UploadFileNative>) => void;
|
|
81
|
-
} & Partial<
|
|
81
|
+
} & Partial<UploadAllProps>;
|
|
82
82
|
export type UploadFile = {
|
|
83
83
|
file: File;
|
|
84
84
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\nimport type { SharedStateId } from '../../shared/helpers/useSharedState'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadAcceptedFileTypesWithFileMaxSize =\n UploadAcceptedFileTypeObject[]\n\nexport type UploadAcceptedFileTypeObject = {\n fileType: string\n fileMaxSize?: number | false\n}\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id?: SharedStateId\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * Defines the max file size of each file in MB. Use either `0` or `false` to disable.\n * Default: 5 MB\n */\n fileMaxSize?: number | false\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: Array<UploadFile> }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({\n fileItem,\n }: {\n fileItem: UploadFile\n }) => void | Promise<void>\n\n /**\n * Will be called once a file gets clicked on by the user. Access the clicked file with `{ fileItem }`.\n */\n onFileClick?: ({\n fileItem,\n }: {\n fileItem: UploadFile\n }) => void | Promise<void>\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeTableCaption?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n children?: React.ReactNode\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: Array<UploadFileNative>) => void\n} & Partial<
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\nimport type { SharedStateId } from '../../shared/helpers/useSharedState'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadAcceptedFileTypesWithFileMaxSize =\n UploadAcceptedFileTypeObject[]\n\nexport type UploadAcceptedFileTypeObject = {\n fileType: string\n fileMaxSize?: number | false\n}\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id?: SharedStateId\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * Defines the max file size of each file in MB. Use either `0` or `false` to disable.\n * Default: 5 MB\n */\n fileMaxSize?: number | false\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: Array<UploadFile> }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({\n fileItem,\n }: {\n fileItem: UploadFile\n }) => void | Promise<void>\n\n /**\n * Will be called once a file gets clicked on by the user. Access the clicked file with `{ fileItem }`.\n */\n onFileClick?: ({\n fileItem,\n }: {\n fileItem: UploadFile\n }) => void | Promise<void>\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeTableCaption?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n children?: React.ReactNode\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: Array<UploadFileNative>) => void\n} & Partial<UploadAllProps>\n\nexport type UploadFile = {\n file: File\n id: string\n exists: boolean\n isLoading?: boolean\n errorMessage?: React.ReactNode\n}\n\nexport type UploadFileNative = Omit<UploadFile, 'id' | 'exists'> &\n Partial<Pick<UploadFile, 'id' | 'exists'>>\n"],"mappings":""}
|
|
@@ -26,21 +26,27 @@ export type VisibleDataOptions = {
|
|
|
26
26
|
export type MutateDataHandler<Data> = (data: Data, mutate: TransformData) => Partial<Data>;
|
|
27
27
|
export type FilterDataHandler<Data> = (data: Data, filter: FilterData) => Partial<Data>;
|
|
28
28
|
export type FilterDataHandlerCallback<R> = (parameters: FilterDataHandlerParameters) => R;
|
|
29
|
-
export type FilterDataHandlerParameters =
|
|
29
|
+
export type FilterDataHandlerParameters = DataPathHandlerParameters & {
|
|
30
30
|
path: Path;
|
|
31
31
|
};
|
|
32
|
-
export type
|
|
33
|
-
export type
|
|
32
|
+
export type DataPathHandler<Data = unknown> = (parameters: DataPathHandlerParameters<Data>) => boolean | undefined;
|
|
33
|
+
export type DataPathHandlerParameters<Data = unknown> = {
|
|
34
|
+
path: Path;
|
|
34
35
|
value: unknown;
|
|
35
36
|
displayValue: undefined | React.ReactNode | Array<React.ReactNode>;
|
|
36
37
|
label: React.ReactNode;
|
|
37
38
|
props: FieldProps;
|
|
39
|
+
error: Error | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Used in the "filterData" given by the "useData" hook.
|
|
42
|
+
*/
|
|
38
43
|
data: Data;
|
|
44
|
+
/** @deprecated – can be removed in v11 */
|
|
39
45
|
internal: {
|
|
40
46
|
error: Error | undefined;
|
|
41
47
|
};
|
|
42
48
|
};
|
|
43
|
-
export type FilterDataPathObject<Data> = Record<Path,
|
|
49
|
+
export type FilterDataPathObject<Data> = Record<Path, DataPathHandler<Data> | boolean | undefined>;
|
|
44
50
|
export type FilterData<Data = unknown> = FilterDataPathObject<Data> | FilterDataHandlerCallback<boolean | undefined>;
|
|
45
51
|
export type VisibleData<Data = unknown> = Partial<Data>;
|
|
46
52
|
export type TransformData = FilterDataHandlerCallback<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","handleSubmitCall","setShowAllErrors","setMountedFieldState","hasErrors","hasFieldState","hasFieldError","ajvInstance","contextErrorMessages","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, FormError, JsonObject, makeAjvInstance } from '../utils'\nimport {\n AllJSONSchemaVersions,\n GlobalErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n FieldProps,\n ValueProps,\n OnChange,\n OnSubmitParams,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\nimport { SnapshotName } from '../Form/Snapshot'\nimport { SharedStateId } from '../../../shared/helpers/useSharedState'\n\nexport type MountState = {\n isPreMounted?: boolean\n isMounted?: boolean\n isVisible?: boolean\n isFocused?: boolean\n wasStepChange?: boolean\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit' | 'onPathChange' | 'onMount'\n callback: (params?: { value: unknown }) => void | Promise<void | Error>\n}\n\nexport type VisibleDataHandler<Data> = (\n data?: Data,\n options?: VisibleDataOptions\n) => Partial<Data>\nexport type VisibleDataOptions = {\n keepPaths?: Array<Path>\n removePaths?: Array<Path>\n}\nexport type MutateDataHandler<Data> = (\n data: Data,\n mutate: TransformData\n) => Partial<Data>\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters
|
|
1
|
+
{"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","handleSubmitCall","setShowAllErrors","setMountedFieldState","hasErrors","hasFieldState","hasFieldError","ajvInstance","contextErrorMessages","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, FormError, JsonObject, makeAjvInstance } from '../utils'\nimport {\n AllJSONSchemaVersions,\n GlobalErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n FieldProps,\n ValueProps,\n OnChange,\n OnSubmitParams,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\nimport { SnapshotName } from '../Form/Snapshot'\nimport { SharedStateId } from '../../../shared/helpers/useSharedState'\n\nexport type MountState = {\n isPreMounted?: boolean\n isMounted?: boolean\n isVisible?: boolean\n isFocused?: boolean\n wasStepChange?: boolean\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit' | 'onPathChange' | 'onMount'\n callback: (params?: { value: unknown }) => void | Promise<void | Error>\n}\n\nexport type VisibleDataHandler<Data> = (\n data?: Data,\n options?: VisibleDataOptions\n) => Partial<Data>\nexport type VisibleDataOptions = {\n keepPaths?: Array<Path>\n removePaths?: Array<Path>\n}\nexport type MutateDataHandler<Data> = (\n data: Data,\n mutate: TransformData\n) => Partial<Data>\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters = DataPathHandlerParameters & {\n path: Path\n}\nexport type DataPathHandler<Data = unknown> = (\n parameters: DataPathHandlerParameters<Data>\n) => boolean | undefined\nexport type DataPathHandlerParameters<Data = unknown> = {\n path: Path\n value: unknown\n displayValue: undefined | React.ReactNode | Array<React.ReactNode>\n label: React.ReactNode\n props: FieldProps\n error: Error | undefined\n\n /**\n * Used in the \"filterData\" given by the \"useData\" hook.\n */\n data: Data\n\n /** @deprecated – can be removed in v11 */\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n DataPathHandler<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type VisibleData<Data = unknown> = Partial<Data>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\nexport type FieldConnections = {\n setEventResult?: (status: EventStateObject) => void\n}\nexport type FieldInternalsRefProps =\n | (FieldProps & { children: unknown })\n | undefined\nexport type FieldInternalsRef = Record<\n Path,\n {\n props: FieldInternalsRefProps\n id: string | undefined\n }\n>\nexport type ValueInternalsRef = Record<\n Path,\n { props: ValueProps | undefined }\n>\n\nexport interface ContextState {\n id?: SharedStateId\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n internalDataRef?: React.MutableRefObject<any>\n /** Should the form validate data before submitting? */\n errors?: Record<Path, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (\n path: Path,\n value: any,\n options?: { preventUpdate?: boolean }\n ) => void\n setData: (data: any) => void\n clearData?: () => void\n mutateDataHandler?: MutateDataHandler<unknown>\n filterDataHandler?: FilterDataHandler<unknown>\n visibleDataHandler?: VisibleDataHandler<unknown>\n validateData: () => void\n handleSubmit: () => Promise<EventStateObject | undefined>\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState?: (path: Path, fieldState: SubmitState) => void\n setFieldError?: (path: Path, error: Error | FormError) => void\n setMountedFieldState: (path: Path, options: MountState) => void\n setFormState?: (\n state: SubmitState,\n options?: { keepPending?: boolean }\n ) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehavior: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => Promise<EventStateObject | undefined>\n getSubmitData?: () => unknown\n getSubmitParams?: () => OnSubmitParams\n setFieldEventListener?: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n revealError?: (path: Path, hasError: boolean) => void\n setFieldInternals?: (path: Path, props: unknown, id?: string) => void\n setValueInternals?: (path: Path, props: unknown) => void\n setHandleSubmit?: (\n callback: HandleSubmitCallback,\n params?: { remove?: boolean }\n ) => void\n setFieldConnection?: (path: Path, connections: FieldConnections) => void\n isEmptyDataRef?: React.MutableRefObject<boolean>\n addSetShowAllErrorsRef?: React.MutableRefObject<\n Array<(showAllErrors: boolean) => void>\n >\n fieldDisplayValueRef?: React.MutableRefObject<\n Record<Path, { type: 'field'; value?: React.ReactNode }>\n >\n fieldInternalsRef?: React.MutableRefObject<FieldInternalsRef>\n valueInternalsRef?: React.MutableRefObject<ValueInternalsRef>\n fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>\n mountedFieldsRef?: React.MutableRefObject<Record<Path, MountState>>\n snapshotsRef?: React.MutableRefObject<\n Map<SnapshotName, Map<Path, unknown>>\n >\n existingFieldsRef?: React.MutableRefObject<Map<Path, boolean>>\n formElementRef?: React.MutableRefObject<HTMLFormElement>\n fieldErrorRef?: React.MutableRefObject<Record<Path, Error>>\n showAllErrors: boolean | number\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: GlobalErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n prerenderFieldProps?: boolean\n decoupleForm?: boolean\n hasElementRef?: React.MutableRefObject<boolean>\n restHandlerProps?: Record<string, unknown>\n props: ProviderProps<JsonObject>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n setMountedFieldState: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAqCC,eAAe,QAAQ,UAAU;AAqNtE,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAEA,CAAA,KAAM,IAAI;EAChCC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,WAAW,EAAEzB,eAAe,CAAC,CAAC;EAC9B0B,oBAAoB,EAAEtB,SAAS;EAC/BuB,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAG7B,KAAK,CAAC8B,aAAa,CAAe5B,mBAAmB,CAAC;AAEtE,eAAe2B,OAAO"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { JsonObject } from '../../utils/json-pointer';
|
|
3
3
|
import { Ajv } from '../../utils';
|
|
4
|
-
import { GlobalErrorMessagesWithPaths, AllJSONSchemaVersions, Path, OnSubmit, OnChange, EventReturnWithStateObject } from '../../types';
|
|
4
|
+
import { GlobalErrorMessagesWithPaths, AllJSONSchemaVersions, Path, OnSubmit, OnChange, EventReturnWithStateObject, OnSubmitRequest } from '../../types';
|
|
5
5
|
import type { IsolationProviderProps } from '../../Form/Isolation/Isolation';
|
|
6
6
|
import { SharedStateId } from '../../../../shared/helpers/useSharedState';
|
|
7
7
|
import { ContextProps } from '../../../../shared/Context';
|
|
@@ -82,7 +82,7 @@ export type Props<Data extends JsonObject> = IsolationProviderProps<Data> & {
|
|
|
82
82
|
/**
|
|
83
83
|
* Submit was requested, but data was invalid
|
|
84
84
|
*/
|
|
85
|
-
onSubmitRequest?:
|
|
85
|
+
onSubmitRequest?: OnSubmitRequest;
|
|
86
86
|
/**
|
|
87
87
|
* Will be called when the onSubmit is finished and had not errors
|
|
88
88
|
*/
|