@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
|
@@ -79,7 +79,9 @@ function DatePickerProvider(externalProps) {
|
|
|
79
79
|
startDate,
|
|
80
80
|
endDate,
|
|
81
81
|
partialStartDate,
|
|
82
|
-
partialEndDate
|
|
82
|
+
partialEndDate,
|
|
83
|
+
invalidStartDate,
|
|
84
|
+
invalidEndDate
|
|
83
85
|
} = _objectSpread(_objectSpread(_objectSpread({}, views), dates), rest);
|
|
84
86
|
const returnFormat = correctV1Format(returnFormatProp);
|
|
85
87
|
const startDateIsValid = Boolean(startDate && isValid(startDate));
|
|
@@ -97,11 +99,14 @@ function DatePickerProvider(externalProps) {
|
|
|
97
99
|
end_date: endDateIsValid ? format(endDate, returnFormat) : null,
|
|
98
100
|
is_valid_start_date: hasMinOrMaxDates && startDateIsValid && isDisabled(startDate, dates.minDate, dates.maxDate) ? false : startDateIsValid,
|
|
99
101
|
is_valid_end_date: hasMinOrMaxDates && endDateIsValid && isDisabled(endDate, dates.minDate, dates.maxDate) ? false : endDateIsValid,
|
|
100
|
-
partialEndDate
|
|
102
|
+
partialEndDate,
|
|
103
|
+
invalidStartDate,
|
|
104
|
+
invalidEndDate
|
|
101
105
|
});
|
|
102
106
|
}
|
|
103
107
|
return _objectSpread(_objectSpread({}, returnObject), {}, {
|
|
104
108
|
date: startDateIsValid ? format(startDate, returnFormat) : null,
|
|
109
|
+
invalidDate: invalidStartDate,
|
|
105
110
|
is_valid: hasMinOrMaxDates && startDateIsValid && isDisabled(startDate, dates.minDate, dates.maxDate) ? false : startDateIsValid
|
|
106
111
|
});
|
|
107
112
|
}, [dates, views, attributes, maxDate, minDate, range, returnFormatProp]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerProvider.js","names":["React","useCallback","useContext","isValid","format","differenceInCalendarDays","SharedContext","correctV1Format","isDisabled","DatePickerContext","useViews","useDates","useLastEventCallCache","defaultProps","returnFormat","DatePickerProvider","externalProps","props","_objectSpread","date","startDate","endDate","startMonth","endMonth","minDate","maxDate","dateFormat","range","correctInvalidDate","attributes","returnFormatProp","children","onChange","setReturnObject","hidePicker","sharedContext","dates","updateDates","hasHadValidDate","previousDateProps","isRange","shouldCorrectDate","views","setViews","forceViewMonthChange","lastEventCallCache","setLastEventCallCache","getReturnObject","_ref","event","rest","_objectWithoutProperties","_excluded","partialStartDate","partialEndDate","startDateIsValid","Boolean","endDateIsValid","hasMinOrMaxDates","returnObject","days_between","start_date","end_date","is_valid_start_date","is_valid_end_date","is_valid","callOnChangeHandler","createElement","Provider","value","translation"],"sources":["../../../../src/components/date-picker/DatePickerProvider.tsx"],"sourcesContent":["/**\n * Web DatePicker Provider\n *\n */\n\nimport React, { useCallback, useContext } from 'react'\nimport type {\n DatePickerEventAttributes,\n DatePickerAllProps,\n DatePickerProps,\n} from './DatePicker'\n\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays'\n\nimport SharedContext from '../../shared/Context'\nimport { correctV1Format, isDisabled } from './DatePickerCalc'\nimport DatePickerContext, {\n DatePickerContextValues,\n} from './DatePickerContext'\nimport useViews, { CalendarView } from './hooks/useViews'\nimport useDates, { DatePickerDates } from './hooks/useDates'\nimport useLastEventCallCache, {\n LastEventCallCache,\n} from './hooks/useLastEventCallCache'\n\ntype DatePickerProviderProps = DatePickerAllProps & {\n setReturnObject: (\n func: DatePickerContextValues['getReturnObject']\n ) => DatePickerContextValues['getReturnObject']\n hidePicker?: DatePickerContextValues['hidePicker']\n attributes?: DatePickerEventAttributes\n children: React.ReactNode\n}\n\nexport type DatePickerChangeEvent<E> = DatePickerDates & {\n nr?: number\n hidePicker?: boolean\n event?: E\n}\n\nexport type GetReturnObjectParams<E> = DatePickerDates & {\n event?: E\n}\n\n// TODO: convert properties on event handler return objects to camelCase, constitutes a breaking change\nexport type ReturnObject<E> = {\n event?: E\n attributes?: Record<string, unknown>\n days_between?: number\n date?: string | null\n start_date?: string | null\n end_date?: string | null\n is_valid?: boolean\n is_valid_start_date?: boolean\n is_valid_end_date?: boolean\n partialStartDate?: string\n partialEndDate?: string\n}\n\nexport type DatePickerProviderState = DatePickerDates &\n Array<CalendarView> &\n LastEventCallCache\n\nconst defaultProps: Partial<DatePickerProps> = {\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n}\n\nfunction DatePickerProvider(externalProps: DatePickerProviderProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n dateFormat,\n range,\n correctInvalidDate,\n attributes,\n returnFormat: returnFormatProp,\n children,\n onChange,\n setReturnObject,\n hidePicker,\n } = props\n\n const sharedContext = useContext(SharedContext)\n\n const { dates, updateDates, hasHadValidDate, previousDateProps } =\n useDates(\n {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n },\n {\n dateFormat: dateFormat,\n isRange: range,\n shouldCorrectDate: correctInvalidDate,\n }\n )\n\n const { views, setViews, forceViewMonthChange } = useViews({\n startMonth: dates.startMonth,\n endMonth: dates.endMonth,\n isRange: range,\n })\n\n const [lastEventCallCache, setLastEventCallCache] =\n useLastEventCallCache({\n startDate: dates.startDate,\n endDate: dates.endDate,\n })\n\n const getReturnObject = useCallback(\n <E,>({ event = null, ...rest }: GetReturnObjectParams<E> = {}) => {\n const { startDate, endDate, partialStartDate, partialEndDate } = {\n ...views,\n ...dates,\n ...rest,\n }\n\n const returnFormat = correctV1Format(returnFormatProp)\n const startDateIsValid = Boolean(startDate && isValid(startDate))\n const endDateIsValid = Boolean(endDate && isValid(endDate))\n const hasMinOrMaxDates = minDate || maxDate\n\n const returnObject: ReturnObject<E> = {\n event,\n attributes: attributes || {},\n partialStartDate,\n }\n\n // Handle range props\n if (range) {\n return {\n ...returnObject,\n days_between:\n startDateIsValid && endDateIsValid\n ? differenceInCalendarDays(endDate, startDate)\n : null,\n start_date: startDateIsValid\n ? format(startDate, returnFormat)\n : null,\n end_date: endDateIsValid ? format(endDate, returnFormat) : null,\n is_valid_start_date:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n is_valid_end_date:\n hasMinOrMaxDates &&\n endDateIsValid &&\n isDisabled(endDate, dates.minDate, dates.maxDate)\n ? false\n : endDateIsValid,\n partialEndDate,\n }\n }\n\n return {\n ...returnObject,\n date: startDateIsValid ? format(startDate, returnFormat) : null,\n is_valid:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n }\n },\n [dates, views, attributes, maxDate, minDate, range, returnFormatProp]\n )\n\n const callOnChangeHandler = useCallback(\n <E,>(event: E & DatePickerDates) => {\n /**\n * Prevent on_change to be fired twice if date not has actually changed\n */\n if (\n lastEventCallCache &&\n lastEventCallCache.startDate === event.startDate &&\n lastEventCallCache.endDate === event.endDate\n ) {\n return // stop here\n }\n\n onChange?.(getReturnObject({ ...dates, ...event }))\n\n setLastEventCallCache({\n startDate: event.startDate,\n endDate: event.endDate,\n })\n },\n [\n getReturnObject,\n dates,\n onChange,\n lastEventCallCache,\n setLastEventCallCache,\n ]\n )\n\n // Is this at any point something other than a function?\n if (typeof setReturnObject === 'function') {\n setReturnObject(getReturnObject)\n }\n\n return (\n <DatePickerContext.Provider\n value={{\n translation: sharedContext.translation,\n updateDates,\n getReturnObject,\n callOnChangeHandler,\n hidePicker: hidePicker,\n props,\n ...dates,\n previousDateProps,\n hasHadValidDate,\n views,\n setViews,\n forceViewMonthChange,\n }}\n >\n {children}\n </DatePickerContext.Provider>\n )\n}\n\nexport default DatePickerProvider\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePickerProvider.js","names":["React","useCallback","useContext","isValid","format","differenceInCalendarDays","SharedContext","correctV1Format","isDisabled","DatePickerContext","useViews","useDates","useLastEventCallCache","defaultProps","returnFormat","DatePickerProvider","externalProps","props","_objectSpread","date","startDate","endDate","startMonth","endMonth","minDate","maxDate","dateFormat","range","correctInvalidDate","attributes","returnFormatProp","children","onChange","setReturnObject","hidePicker","sharedContext","dates","updateDates","hasHadValidDate","previousDateProps","isRange","shouldCorrectDate","views","setViews","forceViewMonthChange","lastEventCallCache","setLastEventCallCache","getReturnObject","_ref","event","rest","_objectWithoutProperties","_excluded","partialStartDate","partialEndDate","invalidStartDate","invalidEndDate","startDateIsValid","Boolean","endDateIsValid","hasMinOrMaxDates","returnObject","days_between","start_date","end_date","is_valid_start_date","is_valid_end_date","invalidDate","is_valid","callOnChangeHandler","createElement","Provider","value","translation"],"sources":["../../../../src/components/date-picker/DatePickerProvider.tsx"],"sourcesContent":["/**\n * Web DatePicker Provider\n *\n */\n\nimport React, { useCallback, useContext } from 'react'\nimport type {\n DatePickerEventAttributes,\n DatePickerAllProps,\n DatePickerProps,\n} from './DatePicker'\n\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays'\n\nimport SharedContext from '../../shared/Context'\nimport { correctV1Format, isDisabled } from './DatePickerCalc'\nimport DatePickerContext, {\n DatePickerContextValues,\n} from './DatePickerContext'\nimport useViews, { CalendarView } from './hooks/useViews'\nimport useDates, { DatePickerDates } from './hooks/useDates'\nimport useLastEventCallCache, {\n LastEventCallCache,\n} from './hooks/useLastEventCallCache'\nimport { InvalidDates } from './DatePickerInput'\n\ntype DatePickerProviderProps = DatePickerAllProps & {\n setReturnObject: (\n func: DatePickerContextValues['getReturnObject']\n ) => DatePickerContextValues['getReturnObject']\n hidePicker?: DatePickerContextValues['hidePicker']\n attributes?: DatePickerEventAttributes\n children: React.ReactNode\n}\n\nexport type DatePickerChangeEvent<E> = DatePickerDates &\n InvalidDates & {\n nr?: number\n hidePicker?: boolean\n event?: E\n }\n\nexport type GetReturnObjectParams<E> = DatePickerDates &\n InvalidDates & {\n event?: E\n }\n\n// TODO: convert properties on event handler return objects to camelCase, constitutes a breaking change\nexport type ReturnObject<E> = InvalidDates & {\n event?: E\n attributes?: Record<string, unknown>\n days_between?: number\n date?: string | null\n start_date?: string | null\n end_date?: string | null\n is_valid?: boolean\n is_valid_start_date?: boolean\n is_valid_end_date?: boolean\n partialStartDate?: string\n partialEndDate?: string\n}\n\nexport type DatePickerProviderState = DatePickerDates &\n Array<CalendarView> &\n LastEventCallCache\n\nconst defaultProps: Partial<DatePickerProps> = {\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n}\n\nfunction DatePickerProvider(externalProps: DatePickerProviderProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n dateFormat,\n range,\n correctInvalidDate,\n attributes,\n returnFormat: returnFormatProp,\n children,\n onChange,\n setReturnObject,\n hidePicker,\n } = props\n\n const sharedContext = useContext(SharedContext)\n\n const { dates, updateDates, hasHadValidDate, previousDateProps } =\n useDates(\n {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n },\n {\n dateFormat: dateFormat,\n isRange: range,\n shouldCorrectDate: correctInvalidDate,\n }\n )\n\n const { views, setViews, forceViewMonthChange } = useViews({\n startMonth: dates.startMonth,\n endMonth: dates.endMonth,\n isRange: range,\n })\n\n const [lastEventCallCache, setLastEventCallCache] =\n useLastEventCallCache({\n startDate: dates.startDate,\n endDate: dates.endDate,\n })\n\n const getReturnObject = useCallback(\n <E,>({ event = null, ...rest }: GetReturnObjectParams<E> = {}) => {\n const {\n startDate,\n endDate,\n partialStartDate,\n partialEndDate,\n invalidStartDate,\n invalidEndDate,\n } = {\n ...views,\n ...dates,\n ...rest,\n }\n\n const returnFormat = correctV1Format(returnFormatProp)\n const startDateIsValid = Boolean(startDate && isValid(startDate))\n const endDateIsValid = Boolean(endDate && isValid(endDate))\n const hasMinOrMaxDates = minDate || maxDate\n\n const returnObject: ReturnObject<E> = {\n event,\n attributes: attributes || {},\n partialStartDate,\n }\n\n // Handle range props\n if (range) {\n return {\n ...returnObject,\n days_between:\n startDateIsValid && endDateIsValid\n ? differenceInCalendarDays(endDate, startDate)\n : null,\n start_date: startDateIsValid\n ? format(startDate, returnFormat)\n : null,\n end_date: endDateIsValid ? format(endDate, returnFormat) : null,\n is_valid_start_date:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n is_valid_end_date:\n hasMinOrMaxDates &&\n endDateIsValid &&\n isDisabled(endDate, dates.minDate, dates.maxDate)\n ? false\n : endDateIsValid,\n partialEndDate,\n invalidStartDate,\n invalidEndDate,\n }\n }\n\n return {\n ...returnObject,\n date: startDateIsValid ? format(startDate, returnFormat) : null,\n invalidDate: invalidStartDate,\n is_valid:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n }\n },\n [dates, views, attributes, maxDate, minDate, range, returnFormatProp]\n )\n\n const callOnChangeHandler = useCallback(\n <E,>(event: E & DatePickerDates) => {\n /**\n * Prevent on_change to be fired twice if date not has actually changed\n */\n if (\n lastEventCallCache &&\n lastEventCallCache.startDate === event.startDate &&\n lastEventCallCache.endDate === event.endDate\n ) {\n return // stop here\n }\n\n onChange?.(getReturnObject({ ...dates, ...event }))\n\n setLastEventCallCache({\n startDate: event.startDate,\n endDate: event.endDate,\n })\n },\n [\n getReturnObject,\n dates,\n onChange,\n lastEventCallCache,\n setLastEventCallCache,\n ]\n )\n\n // Is this at any point something other than a function?\n if (typeof setReturnObject === 'function') {\n setReturnObject(getReturnObject)\n }\n\n return (\n <DatePickerContext.Provider\n value={{\n translation: sharedContext.translation,\n updateDates,\n getReturnObject,\n callOnChangeHandler,\n hidePicker: hidePicker,\n props,\n ...dates,\n previousDateProps,\n hasHadValidDate,\n views,\n setViews,\n forceViewMonthChange,\n }}\n >\n {children}\n </DatePickerContext.Provider>\n )\n}\n\nexport default DatePickerProvider\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDates.js","names":["useCallback","useEffect","useMemo","useRef","useState","convertStringToDate","isDisabled","isValid","format","addMonths","isSameDay","useDates","dateProps","dateFormat","isRange","shouldCorrectDate","previousDateProps","setPreviousDateProps","dates","setDates","_objectSpread","mapDates","hasDatePropChanges","Object","keys","some","date","dateProp","previousDate","convertedDateProp","convertedPreviousDate","Date","derivedDates","deriveDatesFromProps","currentDates","hasHadValidDate","updateDates","newDates","callback","_newDates$startDate","_newDates$endDate","correctedDates","correctDates","startDate","endDate","minDate","maxDate","months","updateMonths","startDates","updateInputDates","endDates","current","type","updatedDates","pad","undefined","_ref","_convertStringToDate","_convertStringToDate2","getDate","startMonth","endMonth","hasValidStartDate","hasValidEndDate","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","getStartDate","_ref2","_newDates$startMonth","_ref3","_newDates$endMonth","size","dateWithPadding","substring","length"],"sources":["../../../../../src/components/date-picker/hooks/useDates.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { convertStringToDate, isDisabled } from '../DatePickerCalc'\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport { addMonths, isSameDay } from 'date-fns'\nimport { DateType } from '../DatePickerContext'\n\nexport type DatePickerDateProps = {\n date?: DateType\n startDate?: DateType\n endDate?: DateType\n startMonth?: DateType\n endMonth?: DateType\n minDate?: DateType\n maxDate?: DateType\n hoverDate?: DateType | null\n}\n\ntype UseDatesOptions = {\n dateFormat: string\n isRange: boolean\n shouldCorrectDate: boolean\n}\n// TODO: Move to DatePickerInput\nexport type DatePickerInputDates = {\n __startDay?: string\n __startMonth?: string\n __startYear?: string\n __endDay?: string\n __endMonth?: string\n __endYear?: string\n}\n\nexport type DatePickerDates = {\n date?: DateType\n startDate?: Date\n endDate?: Date\n minDate?: Date\n maxDate?: Date\n startMonth?: Date\n endMonth?: Date\n partialStartDate?: string\n partialEndDate?: string\n hasHadValidDate?: boolean\n hoverDate?: Date\n} & DatePickerInputDates\n\nexport default function useDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange = false,\n shouldCorrectDate = false,\n }: UseDatesOptions\n) {\n const [previousDateProps, setPreviousDateProps] = useState(dateProps)\n const [dates, setDates] = useState<DatePickerDates>({\n ...mapDates(dateProps, {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }),\n })\n\n const hasDatePropChanges = useMemo(\n () =>\n Object.keys(dateProps).some((date) => {\n const dateProp = dateProps[date]\n const previousDate = previousDateProps[date]\n\n const convertedDateProp = convertStringToDate(dateProp, {\n dateFormat,\n })\n const convertedPreviousDate = convertStringToDate(previousDate, {\n dateFormat,\n })\n // Make sure that same dates does not trigger a change\n // i.e. 2021-01-01 and new Date('2021-01-01')\n if (\n convertedDateProp instanceof Date &&\n convertedPreviousDate instanceof Date\n ) {\n return !isSameDay(convertedDateProp, convertedPreviousDate)\n }\n\n return dateProp !== previousDate\n }),\n [dateProps, previousDateProps, dateFormat]\n )\n\n // Update dates on prop change\n if (hasDatePropChanges) {\n const derivedDates = deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n })\n\n setDates((currentDates) => ({ ...currentDates, ...derivedDates }))\n setPreviousDateProps(dateProps)\n }\n\n const hasHadValidDate = useRef<boolean>(false)\n\n const updateDates = useCallback(\n (\n newDates: DatePickerDates,\n callback?: (dates: DatePickerDates) => void\n ) => {\n // Correct dates based on min and max date\n const correctedDates = shouldCorrectDate\n ? correctDates({\n startDate: newDates.startDate ?? dates.startDate,\n endDate: newDates.endDate ?? dates.endDate,\n minDate: dates.minDate,\n maxDate: dates.maxDate,\n isRange,\n })\n : {}\n\n // Update months based on month or start/end date changes\n const months = updateMonths({\n newDates,\n currentDates: dates,\n })\n\n setDates((currentDates) => {\n return {\n ...currentDates,\n ...newDates,\n ...months,\n ...correctedDates,\n }\n })\n\n callback?.({\n ...dates,\n ...newDates,\n ...months,\n ...correctedDates,\n })\n },\n [dates, shouldCorrectDate, isRange]\n )\n\n // Updated input dates based on start and end dates, move to DatePickerInput\n // TODO: Move to DatePickerInput\n useEffect(() => {\n const startDates = updateInputDates('start', dates.startDate)\n const endDates = updateInputDates('end', dates.endDate)\n\n hasHadValidDate.current =\n isValid(dates.startDate) || isValid(dates.endDate)\n\n setDates((currentDates) => ({\n ...currentDates,\n ...startDates,\n ...endDates,\n }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dates.startDate, dates.endDate])\n\n return {\n dates,\n updateDates,\n hasHadValidDate: hasHadValidDate.current,\n previousDateProps,\n } as const\n}\n\n// TODO: Move to DatePickerInput\nfunction updateInputDates(type: 'start' | 'end', date: Date | undefined) {\n const updatedDates = {}\n\n if (isValid(date)) {\n updatedDates[`__${type}Day`] = pad(format(date, 'dd'), 2)\n updatedDates[`__${type}Month`] = pad(format(date, 'MM'), 2)\n updatedDates[`__${type}Year`] = format(date, 'yyyy')\n } else if (date === undefined) {\n updatedDates[`__${type}Day`] = null\n updatedDates[`__${type}Month`] = null\n updatedDates[`__${type}Year`] = null\n }\n\n return updatedDates\n}\n\nfunction mapDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }: Omit<UseDatesOptions, 'isLinked'>\n) {\n const date = dateProps.date\n\n const startDate =\n typeof dateProps?.startDate !== 'undefined'\n ? getDate(dateProps.startDate, dateFormat)\n : typeof date !== 'undefined'\n ? getDate(date, dateFormat)\n : undefined\n\n const endDate = !isRange\n ? startDate\n : convertStringToDate(dateProps?.endDate, {\n dateFormat,\n }) || undefined\n\n // Ensure that the calendar view displays the correct start and end months, and to prevent date flickering bug\n const startMonth =\n convertStringToDate(dateProps.startMonth, {\n dateFormat,\n }) ??\n startDate ??\n new Date()\n\n const endMonth =\n convertStringToDate(dateProps.endMonth, {\n dateFormat: dateFormat,\n }) ?? (isRange ? endDate ?? addMonths(startMonth, 1) : startMonth)\n\n const minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n\n const maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n\n const correctedDates = shouldCorrectDate\n ? correctDates({ startDate, endDate, minDate, maxDate, isRange })\n : {}\n\n const dates = {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n ...correctedDates,\n }\n\n const hasValidStartDate = isValid(dates.startDate)\n const hasValidEndDate = isValid(dates.endDate)\n\n return {\n ...dates,\n __startDay: hasValidStartDate\n ? pad(format(dates.startDate, 'dd'), 2)\n : null,\n __startMonth: hasValidStartDate\n ? pad(format(dates.startDate, 'MM'), 2)\n : null,\n __startYear: hasValidStartDate\n ? format(dates.startDate, 'yyyy')\n : null,\n __endDay: hasValidEndDate ? pad(format(dates.endDate, 'dd'), 2) : null,\n __endMonth: hasValidEndDate\n ? pad(format(dates.endDate, 'MM'), 2)\n : null,\n __endYear: hasValidEndDate ? format(dates.endDate, 'yyyy') : null,\n }\n}\n\nfunction deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n}: {\n dates: DatePickerDates\n dateProps: DatePickerDateProps\n previousDateProps: DatePickerDateProps\n dateFormat: UseDatesOptions['dateFormat']\n isRange: UseDatesOptions['isRange']\n}) {\n const derivedDates: DatePickerDates = {}\n\n const startDate = getStartDate(dateProps, previousDateProps)\n\n // Handle updates related to date and startDate changes when not in range mode\n if (typeof startDate !== 'undefined' && startDate !== dates.startDate) {\n derivedDates.startDate =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n // Set endDate and startMonth to startDate if not in range mode\n if (!isRange) {\n derivedDates.startMonth =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n derivedDates.endDate = derivedDates.startDate\n }\n }\n\n // update endDate based on endDate prop if in range mode\n if (\n isRange &&\n typeof dateProps.endDate !== 'undefined' &&\n dateProps.endDate !== dates.endDate\n ) {\n derivedDates.endDate =\n convertStringToDate(dateProps.endDate, {\n dateFormat,\n }) || undefined\n }\n\n // Handle startMonth/endMonth\n if (\n typeof dateProps.startMonth !== 'undefined' &&\n dateProps.startMonth !== previousDateProps.startMonth\n ) {\n derivedDates.startMonth = convertStringToDate(dateProps.startMonth, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.endMonth !== 'undefined' &&\n dateProps.endMonth !== previousDateProps.endMonth\n ) {\n derivedDates.endMonth = convertStringToDate(dateProps.endMonth, {\n dateFormat,\n })\n }\n\n // Handle minDate/maxDate\n if (\n typeof dateProps.minDate !== 'undefined' &&\n dateProps.minDate !== previousDateProps.minDate\n ) {\n derivedDates.minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.maxDate !== 'undefined' &&\n dateProps.maxDate !== previousDateProps.maxDate\n ) {\n derivedDates.maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n }\n\n return derivedDates\n}\n\nfunction correctDates({\n startDate,\n endDate,\n minDate,\n maxDate,\n isRange,\n}: {\n startDate: Date\n endDate: Date\n minDate: Date\n maxDate: Date\n isRange: boolean\n}) {\n const correctedDates = {}\n\n if (isDisabled(startDate, minDate, maxDate)) {\n correctedDates['startDate'] = minDate\n }\n if (isDisabled(endDate, minDate, maxDate)) {\n // state.endDate is only used by the input if range is set to true.\n // this is done to make maxDate correction work if the input is not a range and only maxDate is defined.\n if (!isRange && !minDate) {\n correctedDates['startDate'] = maxDate\n } else {\n correctedDates['endDate'] = maxDate\n }\n }\n\n return correctedDates\n}\n\nfunction updateMonths({\n newDates,\n currentDates,\n}: {\n newDates: DatePickerDates\n currentDates: DatePickerDates\n}) {\n const startMonth =\n newDates.startMonth ?? newDates.startDate ?? currentDates.startMonth\n const endMonth =\n newDates.endMonth ?? newDates.endDate ?? currentDates.endMonth\n\n return {\n startMonth,\n endMonth,\n }\n}\n\nfunction getDate(date: DateType, dateFormat: string) {\n return date instanceof Date\n ? date\n : convertStringToDate(date ?? '', {\n dateFormat,\n })\n}\n\nfunction getStartDate(\n dateProps: DatePickerDateProps,\n previousDateProps: DatePickerDateProps\n) {\n // prioritize startDate over date if provided\n if (\n typeof dateProps.startDate !== 'undefined' &&\n dateProps.startDate !== previousDateProps.startDate\n ) {\n return dateProps.startDate\n }\n\n if (\n typeof dateProps.date !== 'undefined' &&\n dateProps.date !== previousDateProps.date\n ) {\n return dateProps.date\n }\n\n return undefined\n}\n\nexport function pad(date: string, size: number) {\n const dateWithPadding = '000000000' + date\n\n return dateWithPadding.substring(dateWithPadding.length - size)\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDates.js","names":["useCallback","useEffect","useMemo","useRef","useState","convertStringToDate","isDisabled","isValid","format","addMonths","isSameDay","useDates","dateProps","dateFormat","isRange","shouldCorrectDate","previousDateProps","setPreviousDateProps","dates","setDates","_objectSpread","mapDates","hasDatePropChanges","Object","keys","some","date","dateProp","previousDate","convertedDateProp","convertedPreviousDate","Date","derivedDates","deriveDatesFromProps","currentDates","hasHadValidDate","updateDates","newDates","callback","_newDates$startDate","_newDates$endDate","correctedDates","correctDates","startDate","endDate","minDate","maxDate","months","updateMonths","startDates","updateInputDates","endDates","current","type","updatedDates","pad","undefined","_ref","_convertStringToDate","_convertStringToDate2","getDate","startMonth","endMonth","hasValidStartDate","hasValidEndDate","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","getStartDate","_ref2","_newDates$startMonth","_ref3","_newDates$endMonth","size","dateWithPadding","substring","length"],"sources":["../../../../../src/components/date-picker/hooks/useDates.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { convertStringToDate, isDisabled } from '../DatePickerCalc'\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport { addMonths, isSameDay } from 'date-fns'\nimport { DateType } from '../DatePickerContext'\n\nexport type DatePickerDateProps = {\n date?: DateType\n startDate?: DateType\n endDate?: DateType\n startMonth?: DateType\n endMonth?: DateType\n minDate?: DateType\n maxDate?: DateType\n hoverDate?: DateType | null\n}\n\ntype UseDatesOptions = {\n dateFormat: string\n isRange: boolean\n shouldCorrectDate: boolean\n}\n// TODO: Move to DatePickerInput\nexport type DatePickerInputDates = {\n __startDay?: string\n __startMonth?: string\n __startYear?: string\n __endDay?: string\n __endMonth?: string\n __endYear?: string\n}\n\nexport type DatePickerDates = {\n date?: DateType\n startDate?: Date\n endDate?: Date\n minDate?: Date\n maxDate?: Date\n startMonth?: Date\n endMonth?: Date\n // TODO: Move partial dates to own types, as they are not really only used on `getReturnObject`, and not in this hook\n partialStartDate?: string\n partialEndDate?: string\n hasHadValidDate?: boolean\n hoverDate?: Date\n} & DatePickerInputDates\n\nexport default function useDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange = false,\n shouldCorrectDate = false,\n }: UseDatesOptions\n) {\n const [previousDateProps, setPreviousDateProps] = useState(dateProps)\n const [dates, setDates] = useState<DatePickerDates>({\n ...mapDates(dateProps, {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }),\n })\n\n const hasDatePropChanges = useMemo(\n () =>\n Object.keys(dateProps).some((date) => {\n const dateProp = dateProps[date]\n const previousDate = previousDateProps[date]\n\n const convertedDateProp = convertStringToDate(dateProp, {\n dateFormat,\n })\n const convertedPreviousDate = convertStringToDate(previousDate, {\n dateFormat,\n })\n // Make sure that same dates does not trigger a change\n // i.e. 2021-01-01 and new Date('2021-01-01')\n if (\n convertedDateProp instanceof Date &&\n convertedPreviousDate instanceof Date\n ) {\n return !isSameDay(convertedDateProp, convertedPreviousDate)\n }\n\n return dateProp !== previousDate\n }),\n [dateProps, previousDateProps, dateFormat]\n )\n\n // Update dates on prop change\n if (hasDatePropChanges) {\n const derivedDates = deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n })\n\n setDates((currentDates) => ({ ...currentDates, ...derivedDates }))\n setPreviousDateProps(dateProps)\n }\n\n const hasHadValidDate = useRef<boolean>(false)\n\n const updateDates = useCallback(\n (\n newDates: DatePickerDates,\n callback?: (dates: DatePickerDates) => void\n ) => {\n // Correct dates based on min and max date\n const correctedDates = shouldCorrectDate\n ? correctDates({\n startDate: newDates.startDate ?? dates.startDate,\n endDate: newDates.endDate ?? dates.endDate,\n minDate: dates.minDate,\n maxDate: dates.maxDate,\n isRange,\n })\n : {}\n\n // Update months based on month or start/end date changes\n const months = updateMonths({\n newDates,\n currentDates: dates,\n })\n\n setDates((currentDates) => {\n return {\n ...currentDates,\n ...newDates,\n ...months,\n ...correctedDates,\n }\n })\n\n callback?.({\n ...dates,\n ...newDates,\n ...months,\n ...correctedDates,\n })\n },\n [dates, shouldCorrectDate, isRange]\n )\n\n // Updated input dates based on start and end dates, move to DatePickerInput\n // TODO: Move to DatePickerInput\n useEffect(() => {\n const startDates = updateInputDates('start', dates.startDate)\n const endDates = updateInputDates('end', dates.endDate)\n\n hasHadValidDate.current =\n isValid(dates.startDate) || isValid(dates.endDate)\n\n setDates((currentDates) => ({\n ...currentDates,\n ...startDates,\n ...endDates,\n }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dates.startDate, dates.endDate])\n\n return {\n dates,\n updateDates,\n hasHadValidDate: hasHadValidDate.current,\n previousDateProps,\n } as const\n}\n\n// TODO: Move to DatePickerInput\nfunction updateInputDates(type: 'start' | 'end', date: Date | undefined) {\n const updatedDates = {}\n\n if (isValid(date)) {\n updatedDates[`__${type}Day`] = pad(format(date, 'dd'), 2)\n updatedDates[`__${type}Month`] = pad(format(date, 'MM'), 2)\n updatedDates[`__${type}Year`] = format(date, 'yyyy')\n } else if (date === undefined) {\n updatedDates[`__${type}Day`] = null\n updatedDates[`__${type}Month`] = null\n updatedDates[`__${type}Year`] = null\n }\n\n return updatedDates\n}\n\nfunction mapDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }: Omit<UseDatesOptions, 'isLinked'>\n) {\n const date = dateProps.date\n\n const startDate =\n typeof dateProps?.startDate !== 'undefined'\n ? getDate(dateProps.startDate, dateFormat)\n : typeof date !== 'undefined'\n ? getDate(date, dateFormat)\n : undefined\n\n const endDate = !isRange\n ? startDate\n : convertStringToDate(dateProps?.endDate, {\n dateFormat,\n }) || undefined\n\n // Ensure that the calendar view displays the correct start and end months, and to prevent date flickering bug\n const startMonth =\n convertStringToDate(dateProps.startMonth, {\n dateFormat,\n }) ??\n startDate ??\n new Date()\n\n const endMonth =\n convertStringToDate(dateProps.endMonth, {\n dateFormat: dateFormat,\n }) ?? (isRange ? endDate ?? addMonths(startMonth, 1) : startMonth)\n\n const minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n\n const maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n\n const correctedDates = shouldCorrectDate\n ? correctDates({ startDate, endDate, minDate, maxDate, isRange })\n : {}\n\n const dates = {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n ...correctedDates,\n }\n\n const hasValidStartDate = isValid(dates.startDate)\n const hasValidEndDate = isValid(dates.endDate)\n\n return {\n ...dates,\n __startDay: hasValidStartDate\n ? pad(format(dates.startDate, 'dd'), 2)\n : null,\n __startMonth: hasValidStartDate\n ? pad(format(dates.startDate, 'MM'), 2)\n : null,\n __startYear: hasValidStartDate\n ? format(dates.startDate, 'yyyy')\n : null,\n __endDay: hasValidEndDate ? pad(format(dates.endDate, 'dd'), 2) : null,\n __endMonth: hasValidEndDate\n ? pad(format(dates.endDate, 'MM'), 2)\n : null,\n __endYear: hasValidEndDate ? format(dates.endDate, 'yyyy') : null,\n }\n}\n\nfunction deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n}: {\n dates: DatePickerDates\n dateProps: DatePickerDateProps\n previousDateProps: DatePickerDateProps\n dateFormat: UseDatesOptions['dateFormat']\n isRange: UseDatesOptions['isRange']\n}) {\n const derivedDates: DatePickerDates = {}\n\n const startDate = getStartDate(dateProps, previousDateProps)\n\n // Handle updates related to date and startDate changes when not in range mode\n if (typeof startDate !== 'undefined' && startDate !== dates.startDate) {\n derivedDates.startDate =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n // Set endDate and startMonth to startDate if not in range mode\n if (!isRange) {\n derivedDates.startMonth =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n derivedDates.endDate = derivedDates.startDate\n }\n }\n\n // update endDate based on endDate prop if in range mode\n if (\n isRange &&\n typeof dateProps.endDate !== 'undefined' &&\n dateProps.endDate !== dates.endDate\n ) {\n derivedDates.endDate =\n convertStringToDate(dateProps.endDate, {\n dateFormat,\n }) || undefined\n }\n\n // Handle startMonth/endMonth\n if (\n typeof dateProps.startMonth !== 'undefined' &&\n dateProps.startMonth !== previousDateProps.startMonth\n ) {\n derivedDates.startMonth = convertStringToDate(dateProps.startMonth, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.endMonth !== 'undefined' &&\n dateProps.endMonth !== previousDateProps.endMonth\n ) {\n derivedDates.endMonth = convertStringToDate(dateProps.endMonth, {\n dateFormat,\n })\n }\n\n // Handle minDate/maxDate\n if (\n typeof dateProps.minDate !== 'undefined' &&\n dateProps.minDate !== previousDateProps.minDate\n ) {\n derivedDates.minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.maxDate !== 'undefined' &&\n dateProps.maxDate !== previousDateProps.maxDate\n ) {\n derivedDates.maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n }\n\n return derivedDates\n}\n\nfunction correctDates({\n startDate,\n endDate,\n minDate,\n maxDate,\n isRange,\n}: {\n startDate: Date\n endDate: Date\n minDate: Date\n maxDate: Date\n isRange: boolean\n}) {\n const correctedDates = {}\n\n if (isDisabled(startDate, minDate, maxDate)) {\n correctedDates['startDate'] = minDate\n }\n if (isDisabled(endDate, minDate, maxDate)) {\n // state.endDate is only used by the input if range is set to true.\n // this is done to make maxDate correction work if the input is not a range and only maxDate is defined.\n if (!isRange && !minDate) {\n correctedDates['startDate'] = maxDate\n } else {\n correctedDates['endDate'] = maxDate\n }\n }\n\n return correctedDates\n}\n\nfunction updateMonths({\n newDates,\n currentDates,\n}: {\n newDates: DatePickerDates\n currentDates: DatePickerDates\n}) {\n const startMonth =\n newDates.startMonth ?? newDates.startDate ?? currentDates.startMonth\n const endMonth =\n newDates.endMonth ?? newDates.endDate ?? currentDates.endMonth\n\n return {\n startMonth,\n endMonth,\n }\n}\n\nfunction getDate(date: DateType, dateFormat: string) {\n return date instanceof Date\n ? date\n : convertStringToDate(date ?? '', {\n dateFormat,\n })\n}\n\nfunction getStartDate(\n dateProps: DatePickerDateProps,\n previousDateProps: DatePickerDateProps\n) {\n // prioritize startDate over date if provided\n if (\n typeof dateProps.startDate !== 'undefined' &&\n dateProps.startDate !== previousDateProps.startDate\n ) {\n return dateProps.startDate\n }\n\n if (\n typeof dateProps.date !== 'undefined' &&\n dateProps.date !== previousDateProps.date\n ) {\n return dateProps.date\n }\n\n return undefined\n}\n\nexport function pad(date: string, size: number) {\n const dateWithPadding = '000000000' + date\n\n return dateWithPadding.substring(dateWithPadding.length - size)\n}\n"],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@ type Gap = false | 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-la
|
|
|
6
6
|
export type BasicProps = {
|
|
7
7
|
direction?: 'horizontal' | 'vertical';
|
|
8
8
|
wrap?: boolean;
|
|
9
|
-
|
|
9
|
+
/** value `true` is deprecated, use `undefined` instead */
|
|
10
|
+
rowGap?: Gap | true;
|
|
10
11
|
sizeCount?: number;
|
|
11
12
|
justify?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';
|
|
12
13
|
align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
5
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
6
|
-
const _excluded = ["
|
|
6
|
+
const _excluded = ["spacing", "gap", "rowGap"],
|
|
7
|
+
_excluded2 = ["className", "style", "children", "element", "direction", "wrap", "sizeCount", "rowGap", "justify", "align", "alignSelf", "divider", "gap", "breakpoints", "queries"];
|
|
7
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; }
|
|
8
9
|
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
|
-
import React, { Fragment,
|
|
10
|
+
import React, { Fragment, useMemo } from 'react';
|
|
10
11
|
import classnames from 'classnames';
|
|
11
12
|
import Space from '../space/Space';
|
|
12
13
|
import { Hr } from '../../elements';
|
|
@@ -16,9 +17,21 @@ const propNames = ['direction', 'wrap', 'justify', 'align', 'divider', 'spacing'
|
|
|
16
17
|
export function pickFlexContainerProps(props, defaults = {}, skip = []) {
|
|
17
18
|
return _objectSpread(_objectSpread({}, defaults), Object.fromEntries(Object.entries(props !== null && props !== void 0 ? props : {}).filter(([key]) => propNames.includes(key) && !skip.includes(key))));
|
|
18
19
|
}
|
|
20
|
+
function handleDeprecatedProps(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
spacing,
|
|
23
|
+
gap,
|
|
24
|
+
rowGap
|
|
25
|
+
} = _ref,
|
|
26
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
27
|
+
return _objectSpread(_objectSpread({}, rest), {}, {
|
|
28
|
+
rowGap: rowGap === true ? undefined : rowGap,
|
|
29
|
+
gap: spacing !== null && spacing !== void 0 ? spacing : gap
|
|
30
|
+
});
|
|
31
|
+
}
|
|
19
32
|
function FlexContainer(props) {
|
|
20
|
-
|
|
21
|
-
|
|
33
|
+
const _handleDeprecatedProp = handleDeprecatedProps(props),
|
|
34
|
+
{
|
|
22
35
|
className,
|
|
23
36
|
style,
|
|
24
37
|
children,
|
|
@@ -31,13 +44,15 @@ function FlexContainer(props) {
|
|
|
31
44
|
align = 'flex-start',
|
|
32
45
|
alignSelf,
|
|
33
46
|
divider = 'space',
|
|
34
|
-
gap,
|
|
35
|
-
spacing: spacingProp,
|
|
47
|
+
gap = 'small',
|
|
36
48
|
breakpoints,
|
|
37
49
|
queries
|
|
38
|
-
} =
|
|
39
|
-
rest = _objectWithoutProperties(
|
|
40
|
-
const spacing = (
|
|
50
|
+
} = _handleDeprecatedProp,
|
|
51
|
+
rest = _objectWithoutProperties(_handleDeprecatedProp, _excluded2);
|
|
52
|
+
const spacing = useMemo(() => {
|
|
53
|
+
var _ref2;
|
|
54
|
+
return (_ref2 = direction === 'vertical' ? rowGap : undefined) !== null && _ref2 !== void 0 ? _ref2 : gap;
|
|
55
|
+
}, [direction, gap, rowGap]);
|
|
41
56
|
const childrenArray = replaceRootFragment(wrapChildren(props, children));
|
|
42
57
|
const hasHeading = childrenArray.some((child, i) => {
|
|
43
58
|
const previousChild = childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray[i - 1];
|
|
@@ -88,8 +103,8 @@ function FlexContainer(props) {
|
|
|
88
103
|
if (isFirst && direction !== 'horizontal') {
|
|
89
104
|
startSpacing = 0;
|
|
90
105
|
} else {
|
|
91
|
-
var
|
|
92
|
-
startSpacing = (
|
|
106
|
+
var _ref3, _getSpaceValue3;
|
|
107
|
+
startSpacing = (_ref3 = (_getSpaceValue3 = getSpaceValue(start, child)) !== null && _getSpaceValue3 !== void 0 ? _getSpaceValue3 : getSpaceValue(end, previousChild)) !== null && _ref3 !== void 0 ? _ref3 : spacing;
|
|
93
108
|
}
|
|
94
109
|
if (React.isValidElement(previousChild) && (previousChild === null || previousChild === void 0 ? void 0 : (_previousChild$type = previousChild.type) === null || _previousChild$type === void 0 ? void 0 : _previousChild$type['_supportsSpacingProps']) === false) {
|
|
95
110
|
startSpacing = 0;
|
|
@@ -107,21 +122,13 @@ function FlexContainer(props) {
|
|
|
107
122
|
});
|
|
108
123
|
});
|
|
109
124
|
const n = 'dnb-flex-container';
|
|
110
|
-
const
|
|
111
|
-
if (rowGap ===
|
|
112
|
-
return `${n}--row-gap
|
|
113
|
-
}
|
|
114
|
-
if (rowGap === true || !rowGap && wrap && direction === 'horizontal') {
|
|
115
|
-
return `${n}--row-gap-small`;
|
|
116
|
-
}
|
|
117
|
-
if (hasSizeProp && spacing) {
|
|
118
|
-
return `${n}--row-gap-${spacing}`;
|
|
119
|
-
}
|
|
120
|
-
if (rowGap) {
|
|
121
|
-
return `${n}--row-gap-${rowGap}`;
|
|
125
|
+
const rowGapClass = useMemo(() => {
|
|
126
|
+
if (rowGap !== false && direction === 'horizontal') {
|
|
127
|
+
return `${n}--row-gap-${rowGap !== null && rowGap !== void 0 ? rowGap : 'small'}`;
|
|
122
128
|
}
|
|
123
|
-
|
|
124
|
-
|
|
129
|
+
return undefined;
|
|
130
|
+
}, [direction, rowGap]);
|
|
131
|
+
const cn = classnames('dnb-flex-container', rowGapClass, className, direction && `${n}--direction-${direction}`, justify && `${n}--justify-${justify}`, align && `${n}--align-${align}`, alignSelf && `${n}--align-self-${alignSelf}`, spacing && `${n}--spacing-${spacing}`, wrap && `${n}--wrap`, hasSizeProp && `${n}--has-size`, divider && `${n}--divider-${divider}`);
|
|
125
132
|
return React.createElement(Space, _extends({
|
|
126
133
|
element: element,
|
|
127
134
|
className: cn,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","names":["React","Fragment","useCallback","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","skip","_objectSpread","Object","fromEntries","entries","filter","key","includes","FlexContainer","_ref","className","style","children","element","direction","wrap","sizeCount","rowGap","justify","align","alignSelf","divider","gap","spacing","spacingProp","breakpoints","queries","rest","_objectWithoutProperties","_excluded","childrenArray","replaceRootFragment","wrapChildren","hasHeading","some","child","i","previousChild","hasSizeProp","_child$props","size","mediaKey","disabled","content","map","_previousChild$type","isFirst","isLast","length","isHeading","start","end","endSpacing","startSpacing","_getSpaceValue","_getSpaceValue2","spaceAboveLine","createElement","top","space","_ref2","_getSpaceValue3","isValidElement","type","n","getRowGapClass","cn","_extends","Children","toArray","cloneElement","firstChild","count","_firstChild$props","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Container.tsx"],"sourcesContent":["import React, { Fragment, useCallback } from 'react'\nimport classnames from 'classnames'\nimport Space, { SpaceProps } from '../space/Space'\nimport { Hr } from '../../elements'\nimport useMedia from '../../shared/useMedia'\nimport {\n getSpaceValue,\n isHeadingElement,\n renderWithSpacing,\n} from './utils'\n\nimport type { MediaQueryBreakpoints } from '../../shared/MediaQueryUtils'\nimport type { SpaceType } from '../space/types'\nimport type { UseMediaQueries } from '../../shared/useMedia'\nimport type { End, Start } from './types'\n\ntype Gap =\n | false\n | 'xx-small'\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type BasicProps = {\n direction?: 'horizontal' | 'vertical'\n wrap?: boolean\n rowGap?: 'small' | 'medium' | 'large' | boolean\n sizeCount?: number\n justify?:\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'\n /** For when used as a flex item in an outer container in addition to being a container: */\n alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'\n /** When \"line-framed\" is used, a line will be shown between items and above the first and below the last item */\n divider?: 'space' | 'line' | 'line-framed'\n /** Spacing between items inside */\n gap?: Gap\n /** @deprecated Use `gap` instead */\n spacing?: Gap\n breakpoints?: MediaQueryBreakpoints\n queries?: UseMediaQueries\n}\n\nexport type Props = BasicProps &\n SpaceProps &\n Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'ref' | 'wrap' | 'value' | 'label' | 'title' | 'placeholder'\n >\n\nconst propNames: Array<keyof Props> = [\n 'direction',\n 'wrap',\n 'justify',\n 'align',\n 'divider',\n 'spacing',\n 'gap',\n]\n\nexport function pickFlexContainerProps<T extends Props>(\n props: T,\n defaults: Partial<Props> = {},\n skip: Array<keyof Props> = []\n): Omit<Props, 'children'> {\n return {\n ...defaults,\n ...Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n propNames.includes(key as keyof Props) &&\n !skip.includes(key as keyof Props)\n )\n ),\n }\n}\n\nfunction FlexContainer(props: Props) {\n const {\n className,\n style,\n children,\n element = 'div',\n direction = 'horizontal',\n wrap = true,\n sizeCount = 12,\n rowGap,\n justify = 'flex-start',\n align = 'flex-start',\n alignSelf,\n divider = 'space',\n gap,\n spacing: spacingProp,\n breakpoints,\n queries,\n ...rest\n } = props\n\n const spacing = spacingProp ?? gap ?? 'small'\n const childrenArray = replaceRootFragment(wrapChildren(props, children))\n const hasHeading = childrenArray.some((child, i) => {\n const previousChild = childrenArray?.[i - 1]\n return (\n isHeadingElement(child) || (i > 0 && isHeadingElement(previousChild))\n )\n })\n const hasSizeProp =\n !hasHeading &&\n direction === 'horizontal' &&\n childrenArray.some((child) => child['props']?.size)\n\n const { key: mediaKey } = useMedia({\n disabled: !hasSizeProp,\n breakpoints,\n queries,\n })\n\n const content = childrenArray.map((child, i) => {\n // Set spacing on child components by props (instead of CSS) to be able to dynamically override by props on each child. The default\n // is the spacing-props that controls space between children. Then override with props sent to the children, including both top\n // and bottom when th\n const isFirst = i === 0\n const isLast = i >= childrenArray.length - 1\n const previousChild = childrenArray?.[i - 1]\n const isHeading = hasHeading && isHeadingElement(previousChild)\n\n // Always set spacing between elements in the vertical layout on the top props, and 0 on bottom, to avoid\n // having to divide spacing between both with smaller values.\n const start: Start = direction === 'horizontal' ? 'left' : 'top'\n const end: End = direction === 'horizontal' ? 'right' : 'bottom'\n // const start: Start | End = direction === 'horizontal' ? 'right' : 'top'\n // const end: Start | End = direction === 'horizontal' ? 'left' : 'bottom'\n const endSpacing = 0\n let startSpacing = null\n\n if (\n // No line above heading\n !isHeading &&\n ((divider === 'line' && !isFirst) || divider === 'line-framed')\n ) {\n const spaceAboveLine = getSpaceValue(end, previousChild) ?? spacing\n startSpacing = (getSpaceValue(start, child) ?? spacing) as SpaceType\n\n return (\n <React.Fragment key={`element-${i}`}>\n <Hr\n top={!isFirst ? spaceAboveLine : 0}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n\n {renderWithSpacing(child, {\n space: { [start]: startSpacing, [end]: endSpacing },\n })}\n\n {divider === 'line-framed' && isLast && (\n <Hr\n top={spaceAboveLine}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n )}\n </React.Fragment>\n )\n }\n\n // No space above first element.\n if (isFirst && direction !== 'horizontal') {\n startSpacing = 0\n } else {\n // Since top space of current and bottom space of previous component is the same\n startSpacing =\n getSpaceValue(start, child) ??\n getSpaceValue(end, previousChild) ??\n spacing\n }\n\n if (\n React.isValidElement(previousChild) &&\n previousChild?.type?.['_supportsSpacingProps'] === false\n ) {\n startSpacing = 0\n }\n\n const space =\n direction === 'horizontal'\n ? { [start]: endSpacing, [end]: startSpacing }\n : { [start]: startSpacing, [end]: endSpacing }\n\n return renderWithSpacing(child, {\n key: child?.['key'] || `element-${i}`,\n space,\n })\n })\n\n const n = 'dnb-flex-container'\n const getRowGapClass = useCallback(() => {\n if (rowGap === false) {\n return `${n}--row-gap-off`\n }\n\n if (\n rowGap === true ||\n (!rowGap && wrap && direction === 'horizontal')\n ) {\n return `${n}--row-gap-small`\n }\n\n if (hasSizeProp && spacing) {\n return `${n}--row-gap-${spacing}`\n }\n\n if (rowGap) {\n return `${n}--row-gap-${rowGap}`\n }\n }, [direction, hasSizeProp, rowGap, spacing, wrap])\n\n const cn = classnames(\n 'dnb-flex-container',\n direction && `${n}--direction-${direction}`,\n justify && `${n}--justify-${justify}`,\n align && `${n}--align-${align}`,\n alignSelf && `${n}--align-self-${alignSelf}`,\n spacing && `${n}--spacing-${spacing}`,\n wrap && `${n}--wrap`,\n getRowGapClass(),\n hasSizeProp && `${n}--has-size`,\n divider && `${n}--divider-${divider}`,\n className\n )\n\n return (\n <Space\n element={element}\n className={cn}\n data-media-key={mediaKey}\n style={\n hasSizeProp\n ? ({ '--sizeCount': sizeCount, ...style } as React.CSSProperties)\n : style\n }\n {...rest}\n >\n {content}\n </Space>\n )\n}\n\nfunction wrapChildren(props: Props, children: React.ReactNode) {\n return React.Children.toArray(children).map((child) => {\n if (\n React.isValidElement(child) &&\n child.type['_supportsSpacingProps'] === 'children'\n ) {\n return React.cloneElement(\n child,\n child.props,\n <FlexContainer {...props}>{child.props.children}</FlexContainer>\n )\n }\n\n return child\n })\n}\n\nfunction replaceRootFragment(children) {\n const firstChild = children[0]\n if (\n React.Children.count(children) === 1 &&\n firstChild?.type === Fragment\n ) {\n return React.Children.toArray(firstChild?.props?.children)\n }\n return children\n}\n\nFlexContainer._supportsSpacingProps = true\n\nexport default FlexContainer\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Container.js","names":["React","Fragment","useMemo","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","skip","_objectSpread","Object","fromEntries","entries","filter","key","includes","handleDeprecatedProps","_ref","spacing","gap","rowGap","rest","_objectWithoutProperties","_excluded","undefined","FlexContainer","_handleDeprecatedProp","className","style","children","element","direction","wrap","sizeCount","justify","align","alignSelf","divider","breakpoints","queries","_excluded2","_ref2","childrenArray","replaceRootFragment","wrapChildren","hasHeading","some","child","i","previousChild","hasSizeProp","_child$props","size","mediaKey","disabled","content","map","_previousChild$type","isFirst","isLast","length","isHeading","start","end","endSpacing","startSpacing","_getSpaceValue","_getSpaceValue2","spaceAboveLine","createElement","top","space","_ref3","_getSpaceValue3","isValidElement","type","n","rowGapClass","cn","_extends","Children","toArray","cloneElement","firstChild","count","_firstChild$props","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Container.tsx"],"sourcesContent":["import React, { Fragment, useMemo } from 'react'\nimport classnames from 'classnames'\nimport Space, { SpaceProps } from '../space/Space'\nimport { Hr } from '../../elements'\nimport useMedia from '../../shared/useMedia'\nimport {\n getSpaceValue,\n isHeadingElement,\n renderWithSpacing,\n} from './utils'\n\nimport type { MediaQueryBreakpoints } from '../../shared/MediaQueryUtils'\nimport type { SpaceType } from '../space/types'\nimport type { UseMediaQueries } from '../../shared/useMedia'\nimport type { End, Start } from './types'\n\ntype Gap =\n | false\n | 'xx-small'\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type BasicProps = {\n direction?: 'horizontal' | 'vertical'\n wrap?: boolean\n /** value `true` is deprecated, use `undefined` instead */\n rowGap?: Gap | true\n sizeCount?: number\n justify?:\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'\n /** For when used as a flex item in an outer container in addition to being a container: */\n alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'\n /** When \"line-framed\" is used, a line will be shown between items and above the first and below the last item */\n divider?: 'space' | 'line' | 'line-framed'\n /** Spacing between items inside */\n gap?: Gap\n /** @deprecated Use `gap` instead */\n spacing?: Gap\n breakpoints?: MediaQueryBreakpoints\n queries?: UseMediaQueries\n}\n\nexport type Props = BasicProps &\n SpaceProps &\n Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'ref' | 'wrap' | 'value' | 'label' | 'title' | 'placeholder'\n >\n\nconst propNames: Array<keyof Props> = [\n 'direction',\n 'wrap',\n 'justify',\n 'align',\n 'divider',\n 'spacing',\n 'gap',\n]\n\nexport function pickFlexContainerProps<T extends Props>(\n props: T,\n defaults: Partial<Props> = {},\n skip: Array<keyof Props> = []\n): Omit<Props, 'children'> {\n return {\n ...defaults,\n ...Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n propNames.includes(key as keyof Props) &&\n !skip.includes(key as keyof Props)\n )\n ),\n }\n}\nfunction handleDeprecatedProps({\n spacing,\n gap,\n rowGap,\n ...rest\n}: Props): Omit<Props, 'spacing'> & { rowGap?: Gap } {\n return {\n ...rest,\n rowGap: rowGap === true ? undefined : rowGap,\n gap: spacing ?? gap,\n }\n}\n\nfunction FlexContainer(props: Props) {\n const {\n className,\n style,\n children,\n element = 'div',\n direction = 'horizontal',\n wrap = true,\n sizeCount = 12,\n rowGap,\n justify = 'flex-start',\n align = 'flex-start',\n alignSelf,\n divider = 'space',\n gap = 'small',\n breakpoints,\n queries,\n ...rest\n } = handleDeprecatedProps(props)\n\n const spacing = useMemo(\n () => (direction === 'vertical' ? rowGap : undefined) ?? gap,\n [direction, gap, rowGap]\n )\n const childrenArray = replaceRootFragment(wrapChildren(props, children))\n const hasHeading = childrenArray.some((child, i) => {\n const previousChild = childrenArray?.[i - 1]\n return (\n isHeadingElement(child) || (i > 0 && isHeadingElement(previousChild))\n )\n })\n const hasSizeProp =\n !hasHeading &&\n direction === 'horizontal' &&\n childrenArray.some((child) => child['props']?.size)\n\n const { key: mediaKey } = useMedia({\n disabled: !hasSizeProp,\n breakpoints,\n queries,\n })\n\n const content = childrenArray.map((child, i) => {\n // Set spacing on child components by props (instead of CSS) to be able to dynamically override by props on each child. The default\n // is the spacing-props that controls space between children. Then override with props sent to the children, including both top\n // and bottom when th\n const isFirst = i === 0\n const isLast = i >= childrenArray.length - 1\n const previousChild = childrenArray?.[i - 1]\n const isHeading = hasHeading && isHeadingElement(previousChild)\n\n // Always set spacing between elements in the vertical layout on the top props, and 0 on bottom, to avoid\n // having to divide spacing between both with smaller values.\n const start: Start = direction === 'horizontal' ? 'left' : 'top'\n const end: End = direction === 'horizontal' ? 'right' : 'bottom'\n // const start: Start | End = direction === 'horizontal' ? 'right' : 'top'\n // const end: Start | End = direction === 'horizontal' ? 'left' : 'bottom'\n const endSpacing = 0\n let startSpacing = null\n\n if (\n // No line above heading\n !isHeading &&\n ((divider === 'line' && !isFirst) || divider === 'line-framed')\n ) {\n const spaceAboveLine = getSpaceValue(end, previousChild) ?? spacing\n startSpacing = (getSpaceValue(start, child) ?? spacing) as SpaceType\n\n return (\n <React.Fragment key={`element-${i}`}>\n <Hr\n top={!isFirst ? spaceAboveLine : 0}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n\n {renderWithSpacing(child, {\n space: { [start]: startSpacing, [end]: endSpacing },\n })}\n\n {divider === 'line-framed' && isLast && (\n <Hr\n top={spaceAboveLine}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n )}\n </React.Fragment>\n )\n }\n\n // No space above first element.\n if (isFirst && direction !== 'horizontal') {\n startSpacing = 0\n } else {\n // Since top space of current and bottom space of previous component is the same\n startSpacing =\n getSpaceValue(start, child) ??\n getSpaceValue(end, previousChild) ??\n spacing\n }\n\n if (\n React.isValidElement(previousChild) &&\n previousChild?.type?.['_supportsSpacingProps'] === false\n ) {\n startSpacing = 0\n }\n\n const space =\n direction === 'horizontal'\n ? { [start]: endSpacing, [end]: startSpacing }\n : { [start]: startSpacing, [end]: endSpacing }\n\n return renderWithSpacing(child, {\n key: child?.['key'] || `element-${i}`,\n space,\n })\n })\n\n const n = 'dnb-flex-container'\n const rowGapClass = useMemo(() => {\n if (rowGap !== false && direction === 'horizontal') {\n return `${n}--row-gap-${rowGap ?? 'small'}`\n }\n return undefined\n }, [direction, rowGap])\n\n const cn = classnames(\n 'dnb-flex-container',\n direction && `${n}--direction-${direction}`,\n justify && `${n}--justify-${justify}`,\n align && `${n}--align-${align}`,\n alignSelf && `${n}--align-self-${alignSelf}`,\n spacing && `${n}--spacing-${spacing}`,\n wrap && `${n}--wrap`,\n rowGapClass,\n hasSizeProp && `${n}--has-size`,\n divider && `${n}--divider-${divider}`,\n className\n )\n\n return (\n <Space\n element={element}\n className={cn}\n data-media-key={mediaKey}\n style={\n hasSizeProp\n ? ({ '--sizeCount': sizeCount, ...style } as React.CSSProperties)\n : style\n }\n {...rest}\n >\n {content}\n </Space>\n )\n}\n\nfunction wrapChildren(props: Props, children: React.ReactNode) {\n return React.Children.toArray(children).map((child) => {\n if (\n React.isValidElement(child) &&\n child.type['_supportsSpacingProps'] === 'children'\n ) {\n return React.cloneElement(\n child,\n child.props,\n <FlexContainer {...props}>{child.props.children}</FlexContainer>\n )\n }\n\n return child\n })\n}\n\nfunction replaceRootFragment(children) {\n const firstChild = children[0]\n if (\n React.Children.count(children) === 1 &&\n firstChild?.type === Fragment\n ) {\n return React.Children.toArray(firstChild?.props?.children)\n }\n return children\n}\n\nFlexContainer._supportsSpacingProps = true\n\nexport default FlexContainer\n"],"mappings":";;;;;;;;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AAChD,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAsB,gBAAgB;AAClD,SAASC,EAAE,QAAQ,gBAAgB;AACnC,OAAOC,QAAQ,MAAM,uBAAuB;AAC5C,SACEC,aAAa,EACbC,gBAAgB,EAChBC,iBAAiB,QACZ,SAAS;AAkDhB,MAAMC,SAA6B,GAAG,CACpC,WAAW,EACX,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,EACT,KAAK,CACN;AAED,OAAO,SAASC,sBAAsBA,CACpCC,KAAQ,EACRC,QAAwB,GAAG,CAAC,CAAC,EAC7BC,IAAwB,GAAG,EAAE,EACJ;EACzB,OAAAC,aAAA,CAAAA,aAAA,KACKF,QAAQ,GACRG,MAAM,CAACC,WAAW,CACnBD,MAAM,CAACE,OAAO,CAACN,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACO,MAAM,CAChC,CAAC,CAACC,GAAG,CAAC,KACJV,SAAS,CAACW,QAAQ,CAACD,GAAkB,CAAC,IACtC,CAACN,IAAI,CAACO,QAAQ,CAACD,GAAkB,CACrC,CACF,CAAC;AAEL;AACA,SAASE,qBAAqBA,CAAAC,IAAA,EAKuB;EAAA,IALtB;MAC7BC,OAAO;MACPC,GAAG;MACHC;IAEK,CAAC,GAAAH,IAAA;IADHI,IAAI,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAEP,OAAAd,aAAA,CAAAA,aAAA,KACKY,IAAI;IACPD,MAAM,EAAEA,MAAM,KAAK,IAAI,GAAGI,SAAS,GAAGJ,MAAM;IAC5CD,GAAG,EAAED,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIC;EAAG;AAEvB;AAEA,SAASM,aAAaA,CAACnB,KAAY,EAAE;EACnC,MAAAoB,qBAAA,GAiBIV,qBAAqB,CAACV,KAAK,CAAC;IAjB1B;MACJqB,SAAS;MACTC,KAAK;MACLC,QAAQ;MACRC,OAAO,GAAG,KAAK;MACfC,SAAS,GAAG,YAAY;MACxBC,IAAI,GAAG,IAAI;MACXC,SAAS,GAAG,EAAE;MACdb,MAAM;MACNc,OAAO,GAAG,YAAY;MACtBC,KAAK,GAAG,YAAY;MACpBC,SAAS;MACTC,OAAO,GAAG,OAAO;MACjBlB,GAAG,GAAG,OAAO;MACbmB,WAAW;MACXC;IAEF,CAAC,GAAAb,qBAAA;IADIL,IAAI,GAAAC,wBAAA,CAAAI,qBAAA,EAAAc,UAAA;EAGT,MAAMtB,OAAO,GAAGtB,OAAO,CACrB;IAAA,IAAA6C,KAAA;IAAA,QAAAA,KAAA,GAAOV,SAAS,KAAK,UAAU,GAAGX,MAAM,GAAGI,SAAS,cAAAiB,KAAA,cAAAA,KAAA,GAAKtB,GAAG;EAAA,GAC5D,CAACY,SAAS,EAAEZ,GAAG,EAAEC,MAAM,CACzB,CAAC;EACD,MAAMsB,aAAa,GAAGC,mBAAmB,CAACC,YAAY,CAACtC,KAAK,EAAEuB,QAAQ,CAAC,CAAC;EACxE,MAAMgB,UAAU,GAAGH,aAAa,CAACI,IAAI,CAAC,CAACC,KAAK,EAAEC,CAAC,KAAK;IAClD,MAAMC,aAAa,GAAGP,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAGM,CAAC,GAAG,CAAC,CAAC;IAC5C,OACE9C,gBAAgB,CAAC6C,KAAK,CAAC,IAAKC,CAAC,GAAG,CAAC,IAAI9C,gBAAgB,CAAC+C,aAAa,CAAE;EAEzE,CAAC,CAAC;EACF,MAAMC,WAAW,GACf,CAACL,UAAU,IACXd,SAAS,KAAK,YAAY,IAC1BW,aAAa,CAACI,IAAI,CAAEC,KAAK;IAAA,IAAAI,YAAA;IAAA,QAAAA,YAAA,GAAKJ,KAAK,CAAC,OAAO,CAAC,cAAAI,YAAA,uBAAdA,YAAA,CAAgBC,IAAI;EAAA,EAAC;EAErD,MAAM;IAAEtC,GAAG,EAAEuC;EAAS,CAAC,GAAGrD,QAAQ,CAAC;IACjCsD,QAAQ,EAAE,CAACJ,WAAW;IACtBZ,WAAW;IACXC;EACF,CAAC,CAAC;EAEF,MAAMgB,OAAO,GAAGb,aAAa,CAACc,GAAG,CAAC,CAACT,KAAK,EAAEC,CAAC,KAAK;IAAA,IAAAS,mBAAA;IAI9C,MAAMC,OAAO,GAAGV,CAAC,KAAK,CAAC;IACvB,MAAMW,MAAM,GAAGX,CAAC,IAAIN,aAAa,CAACkB,MAAM,GAAG,CAAC;IAC5C,MAAMX,aAAa,GAAGP,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAGM,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAMa,SAAS,GAAGhB,UAAU,IAAI3C,gBAAgB,CAAC+C,aAAa,CAAC;IAI/D,MAAMa,KAAY,GAAG/B,SAAS,KAAK,YAAY,GAAG,MAAM,GAAG,KAAK;IAChE,MAAMgC,GAAQ,GAAGhC,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,QAAQ;IAGhE,MAAMiC,UAAU,GAAG,CAAC;IACpB,IAAIC,YAAY,GAAG,IAAI;IAEvB,IAEE,CAACJ,SAAS,KACRxB,OAAO,KAAK,MAAM,IAAI,CAACqB,OAAO,IAAKrB,OAAO,KAAK,aAAa,CAAC,EAC/D;MAAA,IAAA6B,cAAA,EAAAC,eAAA;MACA,MAAMC,cAAc,IAAAF,cAAA,GAAGjE,aAAa,CAAC8D,GAAG,EAAEd,aAAa,CAAC,cAAAiB,cAAA,cAAAA,cAAA,GAAIhD,OAAO;MACnE+C,YAAY,IAAAE,eAAA,GAAIlE,aAAa,CAAC6D,KAAK,EAAEf,KAAK,CAAC,cAAAoB,eAAA,cAAAA,eAAA,GAAIjD,OAAqB;MAEpE,OACExB,KAAA,CAAA2E,aAAA,CAAC3E,KAAK,CAACC,QAAQ;QAACmB,GAAG,EAAG,WAAUkC,CAAE;MAAE,GAClCtD,KAAA,CAAA2E,aAAA,CAACtE,EAAE;QACDuE,GAAG,EAAE,CAACZ,OAAO,GAAGU,cAAc,GAAG,CAAE;QACnCG,KAAK,EAAE,CAAE;QACT5C,SAAS,EAAC;MAAwB,CACnC,CAAC,EAEDxB,iBAAiB,CAAC4C,KAAK,EAAE;QACxBwB,KAAK,EAAE;UAAE,CAACT,KAAK,GAAGG,YAAY;UAAE,CAACF,GAAG,GAAGC;QAAW;MACpD,CAAC,CAAC,EAED3B,OAAO,KAAK,aAAa,IAAIsB,MAAM,IAClCjE,KAAA,CAAA2E,aAAA,CAACtE,EAAE;QACDuE,GAAG,EAAEF,cAAe;QACpBG,KAAK,EAAE,CAAE;QACT5C,SAAS,EAAC;MAAwB,CACnC,CAEW,CAAC;IAErB;IAGA,IAAI+B,OAAO,IAAI3B,SAAS,KAAK,YAAY,EAAE;MACzCkC,YAAY,GAAG,CAAC;IAClB,CAAC,MAAM;MAAA,IAAAO,KAAA,EAAAC,eAAA;MAELR,YAAY,IAAAO,KAAA,IAAAC,eAAA,GACVxE,aAAa,CAAC6D,KAAK,EAAEf,KAAK,CAAC,cAAA0B,eAAA,cAAAA,eAAA,GAC3BxE,aAAa,CAAC8D,GAAG,EAAEd,aAAa,CAAC,cAAAuB,KAAA,cAAAA,KAAA,GACjCtD,OAAO;IACX;IAEA,IACExB,KAAK,CAACgF,cAAc,CAACzB,aAAa,CAAC,IACnC,CAAAA,aAAa,aAAbA,aAAa,wBAAAQ,mBAAA,GAAbR,aAAa,CAAE0B,IAAI,cAAAlB,mBAAA,uBAAnBA,mBAAA,CAAsB,uBAAuB,CAAC,MAAK,KAAK,EACxD;MACAQ,YAAY,GAAG,CAAC;IAClB;IAEA,MAAMM,KAAK,GACTxC,SAAS,KAAK,YAAY,GACtB;MAAE,CAAC+B,KAAK,GAAGE,UAAU;MAAE,CAACD,GAAG,GAAGE;IAAa,CAAC,GAC5C;MAAE,CAACH,KAAK,GAAGG,YAAY;MAAE,CAACF,GAAG,GAAGC;IAAW,CAAC;IAElD,OAAO7D,iBAAiB,CAAC4C,KAAK,EAAE;MAC9BjC,GAAG,EAAE,CAAAiC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,KAAK,CAAC,KAAK,WAAUC,CAAE,EAAC;MACrCuB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMK,CAAC,GAAG,oBAAoB;EAC9B,MAAMC,WAAW,GAAGjF,OAAO,CAAC,MAAM;IAChC,IAAIwB,MAAM,KAAK,KAAK,IAAIW,SAAS,KAAK,YAAY,EAAE;MAClD,OAAQ,GAAE6C,CAAE,aAAYxD,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,OAAQ,EAAC;IAC7C;IACA,OAAOI,SAAS;EAClB,CAAC,EAAE,CAACO,SAAS,EAAEX,MAAM,CAAC,CAAC;EAEvB,MAAM0D,EAAE,GAAGjF,UAAU,CACnB,oBAAoB,EAOpBgF,WAAW,EAGXlD,SAAS,EATTI,SAAS,IAAK,GAAE6C,CAAE,eAAc7C,SAAU,EAAC,EAC3CG,OAAO,IAAK,GAAE0C,CAAE,aAAY1C,OAAQ,EAAC,EACrCC,KAAK,IAAK,GAAEyC,CAAE,WAAUzC,KAAM,EAAC,EAC/BC,SAAS,IAAK,GAAEwC,CAAE,gBAAexC,SAAU,EAAC,EAC5ClB,OAAO,IAAK,GAAE0D,CAAE,aAAY1D,OAAQ,EAAC,EACrCc,IAAI,IAAK,GAAE4C,CAAE,QAAO,EAEpB1B,WAAW,IAAK,GAAE0B,CAAE,YAAW,EAC/BvC,OAAO,IAAK,GAAEuC,CAAE,aAAYvC,OAAQ,EAEtC,CAAC;EAED,OACE3C,KAAA,CAAA2E,aAAA,CAACvE,KAAK,EAAAiF,QAAA;IACJjD,OAAO,EAAEA,OAAQ;IACjBH,SAAS,EAAEmD,EAAG;IACd,kBAAgBzB,QAAS;IACzBzB,KAAK,EACHsB,WAAW,GAAAzC,aAAA;MACJ,aAAa,EAAEwB;IAAS,GAAKL,KAAK,IACrCA;EACL,GACGP,IAAI,GAEPkC,OACI,CAAC;AAEZ;AAEA,SAASX,YAAYA,CAACtC,KAAY,EAAEuB,QAAyB,EAAE;EAC7D,OAAOnC,KAAK,CAACsF,QAAQ,CAACC,OAAO,CAACpD,QAAQ,CAAC,CAAC2B,GAAG,CAAET,KAAK,IAAK;IACrD,IACErD,KAAK,CAACgF,cAAc,CAAC3B,KAAK,CAAC,IAC3BA,KAAK,CAAC4B,IAAI,CAAC,uBAAuB,CAAC,KAAK,UAAU,EAClD;MACA,OAAOjF,KAAK,CAACwF,YAAY,CACvBnC,KAAK,EACLA,KAAK,CAACzC,KAAK,EACXZ,KAAA,CAAA2E,aAAA,CAAC5C,aAAa,EAAKnB,KAAK,EAAGyC,KAAK,CAACzC,KAAK,CAACuB,QAAwB,CACjE,CAAC;IACH;IAEA,OAAOkB,KAAK;EACd,CAAC,CAAC;AACJ;AAEA,SAASJ,mBAAmBA,CAACd,QAAQ,EAAE;EACrC,MAAMsD,UAAU,GAAGtD,QAAQ,CAAC,CAAC,CAAC;EAC9B,IACEnC,KAAK,CAACsF,QAAQ,CAACI,KAAK,CAACvD,QAAQ,CAAC,KAAK,CAAC,IACpC,CAAAsD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAER,IAAI,MAAKhF,QAAQ,EAC7B;IAAA,IAAA0F,iBAAA;IACA,OAAO3F,KAAK,CAACsF,QAAQ,CAACC,OAAO,CAACE,UAAU,aAAVA,UAAU,wBAAAE,iBAAA,GAAVF,UAAU,CAAE7E,KAAK,cAAA+E,iBAAA,uBAAjBA,iBAAA,CAAmBxD,QAAQ,CAAC;EAC5D;EACA,OAAOA,QAAQ;AACjB;AAEAJ,aAAa,CAAC6D,qBAAqB,GAAG,IAAI;AAE1C,eAAe7D,aAAa"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export const FlexContainerProperties = {
|
|
2
|
+
direction: {
|
|
3
|
+
doc: 'Direction of sub components. Can be: `horizontal` or `vertical`.',
|
|
4
|
+
type: [`'horizontal'`, `'vertical'`],
|
|
5
|
+
defaultValue: `'horizontal'`,
|
|
6
|
+
status: 'optional'
|
|
7
|
+
},
|
|
8
|
+
wrap: {
|
|
9
|
+
doc: 'Define if we should wrap contents if there is not enough space.',
|
|
10
|
+
type: 'boolean',
|
|
11
|
+
defaultValue: 'true',
|
|
12
|
+
status: 'optional'
|
|
13
|
+
},
|
|
14
|
+
justify: {
|
|
15
|
+
doc: 'How to place sub components if there is space available in the container.',
|
|
16
|
+
type: [`'flex-start'`, `'flex-end'`, `'center'`, `'space-between'`, `'space-around'`, `'space-evenly'`],
|
|
17
|
+
defaultValue: `'flex-start'`,
|
|
18
|
+
status: 'optional'
|
|
19
|
+
},
|
|
20
|
+
align: {
|
|
21
|
+
doc: 'How to align sub components.',
|
|
22
|
+
type: [`'flex-start'`, `'flex-end'`, `'center'`, `'stretch'`, `'baseline'`],
|
|
23
|
+
defaultValue: `'flex-start'`,
|
|
24
|
+
status: 'optional'
|
|
25
|
+
},
|
|
26
|
+
divider: {
|
|
27
|
+
doc: 'How to separate sub components.',
|
|
28
|
+
type: [`'space'`, `'line'`, `'line-framed'`],
|
|
29
|
+
defaultValue: `'space'`,
|
|
30
|
+
status: 'optional'
|
|
31
|
+
},
|
|
32
|
+
sizeCount: {
|
|
33
|
+
doc: 'Define how many parts your layout should be divided in. Should be used in combination with a [Flex.Item](/uilib/layout/flex/item).',
|
|
34
|
+
type: 'number',
|
|
35
|
+
defaultValue: '12',
|
|
36
|
+
status: 'optional'
|
|
37
|
+
},
|
|
38
|
+
gap: {
|
|
39
|
+
doc: 'How much space between child items. Use `false` for no spacing. (If in vertical layout: if both `rowGap` and `gap` is set, `rowGap` will be used.)',
|
|
40
|
+
type: [`'xx-small'`, `'x-small'`, `'small'`, `'medium'`, `'large'`, `'x-large'`, `'xx-large'`, 'false'],
|
|
41
|
+
defaultValue: `'small'`,
|
|
42
|
+
status: 'optional'
|
|
43
|
+
},
|
|
44
|
+
rowGap: {
|
|
45
|
+
doc: 'How much space between rows. Use `false` for no row gap. (If in vertical layout: if both `rowGap` and `gap` is set, `rowGap` will be used.)',
|
|
46
|
+
type: [`'xx-small'`, `'x-small'`, `'small'`, `'medium'`, `'large'`, `'x-large'`, `'xx-large'`, 'false'],
|
|
47
|
+
defaultValue: `'small'`,
|
|
48
|
+
status: 'optional'
|
|
49
|
+
},
|
|
50
|
+
element: {
|
|
51
|
+
doc: 'Define the type of element.',
|
|
52
|
+
type: ['string', 'React.Element'],
|
|
53
|
+
defaultValue: `'div'`,
|
|
54
|
+
status: 'optional'
|
|
55
|
+
},
|
|
56
|
+
innerRef: {
|
|
57
|
+
doc: 'Provide a React.Ref to accessing the inner HTML element.',
|
|
58
|
+
type: 'React.Ref',
|
|
59
|
+
defaultValue: 'undefined',
|
|
60
|
+
status: 'optional'
|
|
61
|
+
},
|
|
62
|
+
'[Space](/uilib/layout/space/properties)': {
|
|
63
|
+
doc: 'Spacing properties like `top` or `bottom` are supported.',
|
|
64
|
+
type: 'Various',
|
|
65
|
+
status: 'optional'
|
|
66
|
+
},
|
|
67
|
+
spacing: {
|
|
68
|
+
doc: 'Deprecated, use `gap` instead. ~~How much space between sub components. Can be `false` for no spacing.~~',
|
|
69
|
+
type: [`'xx-small'`, `'x-small'`, `'small'`, `'medium'`, `'large'`, `'x-large'`, `'xx-large'`, 'false'],
|
|
70
|
+
defaultValue: `'small'`,
|
|
71
|
+
status: 'deprecated'
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=ContainerDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContainerDocs.js","names":["FlexContainerProperties","direction","doc","type","defaultValue","status","wrap","justify","align","divider","sizeCount","gap","rowGap","element","innerRef","spacing"],"sources":["../../../../src/components/flex/ContainerDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const FlexContainerProperties: PropertiesTableProps = {\n direction: {\n doc: 'Direction of sub components. Can be: `horizontal` or `vertical`.',\n type: [`'horizontal'`, `'vertical'`],\n defaultValue: `'horizontal'`,\n status: 'optional',\n },\n wrap: {\n doc: 'Define if we should wrap contents if there is not enough space.',\n type: 'boolean',\n defaultValue: 'true',\n status: 'optional',\n },\n justify: {\n doc: 'How to place sub components if there is space available in the container.',\n type: [\n `'flex-start'`,\n `'flex-end'`,\n `'center'`,\n `'space-between'`,\n `'space-around'`,\n `'space-evenly'`,\n ],\n defaultValue: `'flex-start'`,\n status: 'optional',\n },\n align: {\n doc: 'How to align sub components.',\n type: [\n `'flex-start'`,\n `'flex-end'`,\n `'center'`,\n `'stretch'`,\n `'baseline'`,\n ],\n defaultValue: `'flex-start'`,\n status: 'optional',\n },\n divider: {\n doc: 'How to separate sub components.',\n type: [`'space'`, `'line'`, `'line-framed'`],\n defaultValue: `'space'`,\n status: 'optional',\n },\n sizeCount: {\n doc: 'Define how many parts your layout should be divided in. Should be used in combination with a [Flex.Item](/uilib/layout/flex/item).',\n type: 'number',\n defaultValue: '12',\n status: 'optional',\n },\n gap: {\n doc: 'How much space between child items. Use `false` for no spacing. (If in vertical layout: if both `rowGap` and `gap` is set, `rowGap` will be used.)',\n type: [\n `'xx-small'`,\n `'x-small'`,\n `'small'`,\n `'medium'`,\n `'large'`,\n `'x-large'`,\n `'xx-large'`,\n 'false',\n ],\n defaultValue: `'small'`,\n status: 'optional',\n },\n rowGap: {\n doc: 'How much space between rows. Use `false` for no row gap. (If in vertical layout: if both `rowGap` and `gap` is set, `rowGap` will be used.)',\n type: [\n `'xx-small'`,\n `'x-small'`,\n `'small'`,\n `'medium'`,\n `'large'`,\n `'x-large'`,\n `'xx-large'`,\n 'false',\n ],\n defaultValue: `'small'`,\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element.',\n type: ['string', 'React.Element'],\n defaultValue: `'div'`,\n status: 'optional',\n },\n innerRef: {\n doc: 'Provide a React.Ref to accessing the inner HTML element.',\n type: 'React.Ref',\n defaultValue: 'undefined',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: 'Various',\n status: 'optional',\n },\n spacing: {\n doc: 'Deprecated, use `gap` instead. ~~How much space between sub components. Can be `false` for no spacing.~~',\n type: [\n `'xx-small'`,\n `'x-small'`,\n `'small'`,\n `'medium'`,\n `'large'`,\n `'x-large'`,\n `'xx-large'`,\n 'false',\n ],\n defaultValue: `'small'`,\n status: 'deprecated',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,uBAA6C,GAAG;EAC3DC,SAAS,EAAE;IACTC,GAAG,EAAE,kEAAkE;IACvEC,IAAI,EAAE,CAAE,cAAa,EAAG,YAAW,CAAC;IACpCC,YAAY,EAAG,cAAa;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJJ,GAAG,EAAE,iEAAiE;IACtEC,IAAI,EAAE,SAAS;IACfC,YAAY,EAAE,MAAM;IACpBC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPL,GAAG,EAAE,2EAA2E;IAChFC,IAAI,EAAE,CACH,cAAa,EACb,YAAW,EACX,UAAS,EACT,iBAAgB,EAChB,gBAAe,EACf,gBAAe,CACjB;IACDC,YAAY,EAAG,cAAa;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDG,KAAK,EAAE;IACLN,GAAG,EAAE,8BAA8B;IACnCC,IAAI,EAAE,CACH,cAAa,EACb,YAAW,EACX,UAAS,EACT,WAAU,EACV,YAAW,CACb;IACDC,YAAY,EAAG,cAAa;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDI,OAAO,EAAE;IACPP,GAAG,EAAE,iCAAiC;IACtCC,IAAI,EAAE,CAAE,SAAQ,EAAG,QAAO,EAAG,eAAc,CAAC;IAC5CC,YAAY,EAAG,SAAQ;IACvBC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTR,GAAG,EAAE,oIAAoI;IACzIC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE,IAAI;IAClBC,MAAM,EAAE;EACV,CAAC;EACDM,GAAG,EAAE;IACHT,GAAG,EAAE,oJAAoJ;IACzJC,IAAI,EAAE,CACH,YAAW,EACX,WAAU,EACV,SAAQ,EACR,UAAS,EACT,SAAQ,EACR,WAAU,EACV,YAAW,EACZ,OAAO,CACR;IACDC,YAAY,EAAG,SAAQ;IACvBC,MAAM,EAAE;EACV,CAAC;EACDO,MAAM,EAAE;IACNV,GAAG,EAAE,6IAA6I;IAClJC,IAAI,EAAE,CACH,YAAW,EACX,WAAU,EACV,SAAQ,EACR,UAAS,EACT,SAAQ,EACR,WAAU,EACV,YAAW,EACZ,OAAO,CACR;IACDC,YAAY,EAAG,SAAQ;IACvBC,MAAM,EAAE;EACV,CAAC;EACDQ,OAAO,EAAE;IACPX,GAAG,EAAE,6BAA6B;IAClCC,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;IACjCC,YAAY,EAAG,OAAM;IACrBC,MAAM,EAAE;EACV,CAAC;EACDS,QAAQ,EAAE;IACRZ,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,WAAW;IACjBC,YAAY,EAAE,WAAW;IACzBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCH,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,SAAS;IACfE,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPb,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,CACH,YAAW,EACX,WAAU,EACV,SAAQ,EACR,UAAS,EACT,SAAQ,EACR,WAAU,EACV,YAAW,EACZ,OAAO,CACR;IACDC,YAAY,EAAG,SAAQ;IACvBC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
.dnb-flex-container {
|
|
2
|
+
--gap: 0;
|
|
3
|
+
--horizontal-gap: 0;
|
|
2
4
|
display: flex;
|
|
3
|
-
row-gap: var(--gap
|
|
5
|
+
row-gap: var(--gap);
|
|
4
6
|
}
|
|
5
7
|
.dnb-flex-container--direction-horizontal {
|
|
6
8
|
flex-direction: row;
|
|
7
|
-
margin-right: calc(var(--gap) * -1);
|
|
9
|
+
margin-right: calc(var(--horizontal-gap) * -1);
|
|
8
10
|
}
|
|
9
11
|
.dnb-flex-container--direction-vertical {
|
|
10
12
|
flex-direction: column;
|
|
@@ -60,8 +62,11 @@
|
|
|
60
62
|
.dnb-flex-container--wrap {
|
|
61
63
|
flex-wrap: wrap;
|
|
62
64
|
}
|
|
63
|
-
.dnb-flex-container--row-gap-
|
|
64
|
-
--gap:
|
|
65
|
+
.dnb-flex-container--row-gap-xx-small {
|
|
66
|
+
--gap: var(--spacing-xx-small);
|
|
67
|
+
}
|
|
68
|
+
.dnb-flex-container--row-gap-x-small {
|
|
69
|
+
--gap: var(--spacing-x-small);
|
|
65
70
|
}
|
|
66
71
|
.dnb-flex-container--row-gap-small {
|
|
67
72
|
--gap: var(--spacing-small);
|
|
@@ -72,6 +77,33 @@
|
|
|
72
77
|
.dnb-flex-container--row-gap-large {
|
|
73
78
|
--gap: var(--spacing-large);
|
|
74
79
|
}
|
|
80
|
+
.dnb-flex-container--row-gap-x-large {
|
|
81
|
+
--gap: var(--spacing-x-large);
|
|
82
|
+
}
|
|
83
|
+
.dnb-flex-container--row-gap-xx-large {
|
|
84
|
+
--gap: var(--spacing-xx-large);
|
|
85
|
+
}
|
|
86
|
+
.dnb-flex-container--spacing-xx-small {
|
|
87
|
+
--horizontal-gap: var(--spacing-xx-small);
|
|
88
|
+
}
|
|
89
|
+
.dnb-flex-container--spacing-x-small {
|
|
90
|
+
--horizontal-gap: var(--spacing-x-small);
|
|
91
|
+
}
|
|
92
|
+
.dnb-flex-container--spacing-small {
|
|
93
|
+
--horizontal-gap: var(--spacing-small);
|
|
94
|
+
}
|
|
95
|
+
.dnb-flex-container--spacing-medium {
|
|
96
|
+
--horizontal-gap: var(--spacing-medium);
|
|
97
|
+
}
|
|
98
|
+
.dnb-flex-container--spacing-large {
|
|
99
|
+
--horizontal-gap: var(--spacing-large);
|
|
100
|
+
}
|
|
101
|
+
.dnb-flex-container--spacing-x-large {
|
|
102
|
+
--horizontal-gap: var(--spacing-x-large);
|
|
103
|
+
}
|
|
104
|
+
.dnb-flex-container--spacing-xx-large {
|
|
105
|
+
--horizontal-gap: var(--spacing-xx-large);
|
|
106
|
+
}
|
|
75
107
|
.dnb-flex-container__hr.dnb-hr {
|
|
76
108
|
width: 100%;
|
|
77
109
|
color: var(--color-black-8);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-flex-container{display:flex;row-gap:var(--gap
|
|
1
|
+
.dnb-flex-container{--gap:0;--horizontal-gap:0;display:flex;row-gap:var(--gap)}.dnb-flex-container--direction-horizontal{flex-direction:row;margin-right:calc(var(--horizontal-gap)*-1)}.dnb-flex-container--direction-vertical{flex-direction:column}.dnb-flex-container--justify-flex-start{justify-content:flex-start}.dnb-flex-container--justify-flex-end{justify-content:flex-end}.dnb-flex-container--justify-center{justify-content:center}.dnb-flex-container--justify-space-between{justify-content:space-between}.dnb-flex-container--justify-space-around{justify-content:space-around}.dnb-flex-container--justify-space-evenly{justify-content:space-evenly}.dnb-flex-container--align-flex-start{align-items:flex-start}.dnb-flex-container--align-flex-end{align-items:flex-end}.dnb-flex-container--align-center{align-items:center}.dnb-flex-container--align-stretch{align-items:stretch}.dnb-flex-container--align-baseline{align-items:baseline}.dnb-flex-container--align-self-flex-start{align-self:flex-start}.dnb-flex-container--align-self-flex-end{align-self:flex-end}.dnb-flex-container--align-self-center{align-self:center}.dnb-flex-container--align-self-baseline{align-self:baseline}.dnb-flex-container--align-self-stretch{align-self:stretch}.dnb-flex-container--wrap{flex-wrap:wrap}.dnb-flex-container--row-gap-xx-small{--gap:var(--spacing-xx-small)}.dnb-flex-container--row-gap-x-small{--gap:var(--spacing-x-small)}.dnb-flex-container--row-gap-small{--gap:var(--spacing-small)}.dnb-flex-container--row-gap-medium{--gap:var(--spacing-medium)}.dnb-flex-container--row-gap-large{--gap:var(--spacing-large)}.dnb-flex-container--row-gap-x-large{--gap:var(--spacing-x-large)}.dnb-flex-container--row-gap-xx-large{--gap:var(--spacing-xx-large)}.dnb-flex-container--spacing-xx-small{--horizontal-gap:var(--spacing-xx-small)}.dnb-flex-container--spacing-x-small{--horizontal-gap:var(--spacing-x-small)}.dnb-flex-container--spacing-small{--horizontal-gap:var(--spacing-small)}.dnb-flex-container--spacing-medium{--horizontal-gap:var(--spacing-medium)}.dnb-flex-container--spacing-large{--horizontal-gap:var(--spacing-large)}.dnb-flex-container--spacing-x-large{--horizontal-gap:var(--spacing-x-large)}.dnb-flex-container--spacing-xx-large{--horizontal-gap:var(--spacing-xx-large)}.dnb-flex-container__hr.dnb-hr{color:var(--color-black-8);width:100%}.dnb-flex-item--grow{flex-grow:1}.dnb-flex-item--shrink{flex-shrink:1}.dnb-flex-item--align-self-flex-start{align-self:flex-start}.dnb-flex-item--align-self-flex-end{align-self:flex-end}.dnb-flex-item--align-self-center{align-self:center}.dnb-flex-item--align-self-baseline{align-self:baseline}.dnb-flex-item--align-self-stretch{align-self:stretch}.dnb-flex-item--responsive{--sizeCount--default:12;--size--default:var(--small);--flex-basis:calc(100%/var(--sizeCount, var(--sizeCount--default))*var(--size, var(--size--default)));flex-basis:var(--flex-basis);flex-grow:0;max-width:var(--flex-basis)}.dnb-flex-container[data-media-key=small] .dnb-flex-item--responsive{--size:var(--small,var(--medium))}.dnb-flex-container[data-media-key=medium] .dnb-flex-item--responsive{--size:var(--medium,var(--large))}.dnb-flex-container[data-media-key=large] .dnb-flex-item--responsive{--size:var(--large,var(--medium))}.dnb-flex-stack+.dnb-flex-stack{margin-top:var(--spacing-small)}.dnb-flex-stack>.dnb-button{align-self:flex-start}
|