@dnb/eufemia 10.57.1 → 10.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/cjs/components/date-picker/DatePickerContext.d.ts +1 -1
- package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
- package/cjs/components/date-picker/DatePickerFooter.js +5 -5
- package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +2 -2
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/hooks/useDates.d.ts +1 -1
- package/cjs/components/date-picker/hooks/useDates.js +94 -23
- package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
- package/cjs/components/dialog/parts/DialogAction.js +18 -16
- package/cjs/components/dialog/parts/DialogAction.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.js +15 -15
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +8 -5
- package/cjs/extensions/forms/DataContext/Context.js +0 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +4 -3
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +2 -2
- 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/Date/Date.js +2 -2
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/FieldProvider.d.ts +3 -2
- package/cjs/extensions/forms/Field/Provider/FieldProvider.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js +11 -3
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/Form/Element/Element.d.ts +2 -2
- package/cjs/extensions/forms/Form/Element/Element.js +50 -11
- package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.d.ts +7 -3
- package/cjs/extensions/forms/Form/Handler/Handler.js +23 -97
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +3 -3
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/Section.d.ts +4 -4
- package/cjs/extensions/forms/Form/Section/Section.js +2 -1
- package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.d.ts +1 -1
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +1 -0
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +10 -6
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.scss +13 -7
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.css +3 -0
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.scss +7 -0
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.css +4 -0
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.min.css +1 -0
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.scss +8 -0
- package/cjs/extensions/forms/Form/Section/style/themes/ui.d.ts +1 -0
- package/cjs/extensions/forms/Form/Section/style/themes/ui.js +4 -0
- package/cjs/extensions/forms/Form/Section/style/themes/ui.js.map +1 -0
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/clearData.d.ts +2 -1
- package/cjs/extensions/forms/Form/data-context/clearData.js +1 -1
- package/cjs/extensions/forms/Form/data-context/clearData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/getData.js +1 -1
- package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useValidation.js +2 -2
- package/cjs/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js +9 -5
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +3 -0
- package/cjs/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Count/Count.d.ts +4 -3
- package/cjs/extensions/forms/Iterate/Count/Count.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +7 -4
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +2 -2
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.d.ts +3 -1
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +27 -6
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +8 -4
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +2 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.js +4 -3
- package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +3 -2
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +2 -2
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/hooks/useItem.d.ts +5 -1
- package/cjs/extensions/forms/Iterate/hooks/useItem.js.map +1 -1
- package/cjs/extensions/forms/Tools/ListAllProps.d.ts +7 -7
- package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -1
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +1 -1
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.d.ts +2 -2
- package/cjs/extensions/forms/Wizard/hooks/useStep.js +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +2 -0
- package/cjs/extensions/forms/constants/countries.js +1 -1
- package/cjs/extensions/forms/constants/countries.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/useDataContext.js +1 -1
- package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/cjs/extensions/forms/hooks/useSnapshot.d.ts +3 -2
- package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +10 -6
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +4 -4
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.d.ts +2 -2
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/helpers/useSharedState.d.ts +19 -13
- package/cjs/shared/helpers/useSharedState.js +23 -11
- package/cjs/shared/helpers/useSharedState.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 +10 -6
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +10 -6
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +10 -6
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +25 -12
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +15 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +15 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +24 -12
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +14 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +14 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.css +25 -12
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +15 -6
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +15 -6
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/components/date-picker/DatePickerContext.d.ts +1 -1
- package/components/date-picker/DatePickerContext.js.map +1 -1
- package/components/date-picker/DatePickerFooter.js +5 -5
- package/components/date-picker/DatePickerFooter.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +2 -2
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/hooks/useDates.d.ts +1 -1
- package/components/date-picker/hooks/useDates.js +95 -24
- package/components/date-picker/hooks/useDates.js.map +1 -1
- package/components/dialog/parts/DialogAction.js +19 -17
- package/components/dialog/parts/DialogAction.js.map +1 -1
- package/components/number-format/NumberUtils.js +15 -15
- package/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/date-picker/DatePickerContext.d.ts +1 -1
- package/es/components/date-picker/DatePickerContext.js.map +1 -1
- package/es/components/date-picker/DatePickerFooter.js +5 -5
- package/es/components/date-picker/DatePickerFooter.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +2 -2
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/hooks/useDates.d.ts +1 -1
- package/es/components/date-picker/hooks/useDates.js +87 -17
- package/es/components/date-picker/hooks/useDates.js.map +1 -1
- package/es/components/dialog/parts/DialogAction.js +19 -17
- package/es/components/dialog/parts/DialogAction.js.map +1 -1
- package/es/components/number-format/NumberUtils.js +15 -15
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +8 -5
- package/es/extensions/forms/DataContext/Context.js +0 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +4 -3
- package/es/extensions/forms/DataContext/Provider/Provider.js +3 -3
- 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/Date/Date.js +2 -2
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Provider/FieldProvider.d.ts +3 -2
- package/es/extensions/forms/Field/Provider/FieldProvider.js.map +1 -1
- package/es/extensions/forms/Field/Upload/Upload.js +6 -1
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/Form/Element/Element.d.ts +2 -2
- package/es/extensions/forms/Form/Element/Element.js +45 -12
- package/es/extensions/forms/Form/Element/Element.js.map +1 -1
- package/es/extensions/forms/Form/Handler/Handler.d.ts +7 -3
- package/es/extensions/forms/Form/Handler/Handler.js +24 -93
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +3 -3
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/Section.d.ts +4 -4
- package/es/extensions/forms/Form/Section/Section.js +2 -1
- package/es/extensions/forms/Form/Section/Section.js.map +1 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/containers/SectionContainer.d.ts +1 -1
- package/es/extensions/forms/Form/Section/containers/SectionContainer.js +1 -0
- package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/es/extensions/forms/Form/Section/style/dnb-form-section.css +10 -6
- package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/es/extensions/forms/Form/Section/style/dnb-form-section.scss +13 -7
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.css +3 -0
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.scss +7 -0
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.css +4 -0
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.min.css +1 -0
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.scss +8 -0
- package/es/extensions/forms/Form/Section/style/themes/ui.d.ts +1 -0
- package/es/extensions/forms/Form/Section/style/themes/ui.js +1 -0
- package/es/extensions/forms/Form/Section/style/themes/ui.js.map +1 -0
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/es/extensions/forms/Form/data-context/clearData.d.ts +2 -1
- package/es/extensions/forms/Form/data-context/clearData.js +2 -2
- package/es/extensions/forms/Form/data-context/clearData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/getData.js +2 -2
- package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +2 -2
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useValidation.js +3 -3
- package/es/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +9 -5
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +3 -0
- package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -1
- package/es/extensions/forms/Iterate/Count/Count.d.ts +4 -3
- package/es/extensions/forms/Iterate/Count/Count.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +7 -4
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +2 -2
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.d.ts +3 -1
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +25 -7
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js +5 -0
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +8 -4
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +2 -1
- package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.js +4 -3
- package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +3 -2
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +2 -2
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/hooks/useItem.d.ts +5 -1
- package/es/extensions/forms/Iterate/hooks/useItem.js.map +1 -1
- package/es/extensions/forms/Tools/ListAllProps.d.ts +7 -7
- package/es/extensions/forms/Tools/ListAllProps.js.map +1 -1
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +2 -2
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useStep.d.ts +2 -2
- package/es/extensions/forms/Wizard/hooks/useStep.js +2 -2
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +2 -0
- package/es/extensions/forms/constants/countries.js +1 -1
- package/es/extensions/forms/constants/countries.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/useDataContext.js +2 -2
- package/es/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/es/extensions/forms/hooks/useSnapshot.d.ts +3 -2
- package/es/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +10 -6
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +4 -4
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/json-pointer/json-pointer.d.ts +2 -2
- package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/helpers/useSharedState.d.ts +19 -13
- package/es/shared/helpers/useSharedState.js +22 -11
- package/es/shared/helpers/useSharedState.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 +10 -6
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +10 -6
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +10 -6
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +25 -12
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +15 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +15 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +24 -12
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +14 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +14 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-components.css +25 -12
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.css +15 -6
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-forms.css +15 -6
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +1 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +8 -5
- package/extensions/forms/DataContext/Context.js +0 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +4 -3
- package/extensions/forms/DataContext/Provider/Provider.js +3 -3
- 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/Date/Date.js +2 -2
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Provider/FieldProvider.d.ts +3 -2
- package/extensions/forms/Field/Provider/FieldProvider.js.map +1 -1
- package/extensions/forms/Field/Upload/Upload.js +11 -3
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/Form/Element/Element.d.ts +2 -2
- package/extensions/forms/Form/Element/Element.js +50 -13
- package/extensions/forms/Form/Element/Element.js.map +1 -1
- package/extensions/forms/Form/Handler/Handler.d.ts +7 -3
- package/extensions/forms/Form/Handler/Handler.js +24 -97
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.d.ts +3 -3
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Form/Section/Section.d.ts +4 -4
- package/extensions/forms/Form/Section/Section.js +2 -1
- package/extensions/forms/Form/Section/Section.js.map +1 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Form/Section/containers/SectionContainer.d.ts +1 -1
- package/extensions/forms/Form/Section/containers/SectionContainer.js +1 -0
- package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/extensions/forms/Form/Section/style/dnb-form-section.css +10 -6
- package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/extensions/forms/Form/Section/style/dnb-form-section.scss +13 -7
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.css +3 -0
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.scss +7 -0
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.css +4 -0
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.min.css +1 -0
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.scss +8 -0
- package/extensions/forms/Form/Section/style/themes/ui.d.ts +1 -0
- package/extensions/forms/Form/Section/style/themes/ui.js +1 -0
- package/extensions/forms/Form/Section/style/themes/ui.js.map +1 -0
- package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/extensions/forms/Form/data-context/clearData.d.ts +2 -1
- package/extensions/forms/Form/data-context/clearData.js +2 -2
- package/extensions/forms/Form/data-context/clearData.js.map +1 -1
- package/extensions/forms/Form/data-context/getData.js +2 -2
- package/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js +2 -2
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useValidation.js +3 -3
- package/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/extensions/forms/Iterate/Array/ArrayItemArea.js +9 -5
- package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +3 -0
- package/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -1
- package/extensions/forms/Iterate/Count/Count.d.ts +4 -3
- package/extensions/forms/Iterate/Count/Count.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.js +7 -4
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +2 -2
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.d.ts +3 -1
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +26 -7
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js +5 -0
- package/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js.map +1 -1
- package/extensions/forms/Iterate/Toolbar/Toolbar.js +8 -4
- package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +2 -1
- package/extensions/forms/Iterate/ViewContainer/RemoveButton.js +4 -3
- package/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +3 -2
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +2 -2
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/hooks/useItem.d.ts +5 -1
- package/extensions/forms/Iterate/hooks/useItem.js.map +1 -1
- package/extensions/forms/Tools/ListAllProps.d.ts +7 -7
- package/extensions/forms/Tools/ListAllProps.js.map +1 -1
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +2 -2
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useStep.d.ts +2 -2
- package/extensions/forms/Wizard/hooks/useStep.js +2 -2
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +2 -0
- package/extensions/forms/constants/countries.js +1 -1
- package/extensions/forms/constants/countries.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/useDataContext.js +2 -2
- package/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/extensions/forms/hooks/useSnapshot.d.ts +3 -2
- package/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +10 -6
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +4 -4
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/json-pointer/json-pointer.d.ts +2 -2
- package/extensions/forms/utils/json-pointer/json-pointer.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/shared/helpers/useSharedState.d.ts +19 -13
- package/shared/helpers/useSharedState.js +22 -11
- package/shared/helpers/useSharedState.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 +10 -6
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +10 -6
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +10 -6
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +25 -12
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +15 -6
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +15 -6
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-components.css +24 -12
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +14 -6
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +14 -6
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/style/themes/theme-ui/ui-theme-components.css +25 -12
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.css +15 -6
- package/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/style/themes/theme-ui/ui-theme-forms.css +15 -6
- package/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -7,28 +7,42 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
|
7
7
|
import { convertStringToDate, isDisabled } from '../DatePickerCalc';
|
|
8
8
|
import isValid from 'date-fns/isValid';
|
|
9
9
|
import format from 'date-fns/format';
|
|
10
|
-
import { addMonths } from 'date-fns';
|
|
10
|
+
import { addMonths, isSameDay } from 'date-fns';
|
|
11
11
|
export default function useDates(dateProps, {
|
|
12
12
|
dateFormat,
|
|
13
13
|
isRange = false,
|
|
14
14
|
shouldCorrectDate = false
|
|
15
15
|
}) {
|
|
16
|
-
const [
|
|
17
|
-
const [dates, setDates] = useState(_objectSpread({}, mapDates(dateProps,
|
|
16
|
+
const [previousDateProps, setPreviousDateProps] = useState(dateProps);
|
|
17
|
+
const [dates, setDates] = useState(_objectSpread({}, mapDates(dateProps, {
|
|
18
18
|
dateFormat,
|
|
19
19
|
isRange,
|
|
20
20
|
shouldCorrectDate
|
|
21
21
|
})));
|
|
22
22
|
const hasDatePropChanges = useMemo(() => Object.keys(dateProps).some(date => {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
const dateProp = dateProps[date];
|
|
24
|
+
const previousDate = previousDateProps[date];
|
|
25
|
+
const convertedDateProp = convertStringToDate(dateProp, {
|
|
26
|
+
dateFormat
|
|
27
|
+
});
|
|
28
|
+
const convertedPreviousDate = convertStringToDate(previousDate, {
|
|
29
|
+
dateFormat
|
|
30
|
+
});
|
|
31
|
+
if (convertedDateProp instanceof Date && convertedPreviousDate instanceof Date) {
|
|
32
|
+
return !isSameDay(convertedDateProp, convertedPreviousDate);
|
|
33
|
+
}
|
|
34
|
+
return dateProp !== previousDate;
|
|
35
|
+
}), [dateProps, previousDateProps, dateFormat]);
|
|
25
36
|
if (hasDatePropChanges) {
|
|
26
|
-
|
|
37
|
+
const derivedDates = deriveDatesFromProps({
|
|
38
|
+
dates,
|
|
39
|
+
dateProps,
|
|
40
|
+
previousDateProps,
|
|
27
41
|
dateFormat,
|
|
28
|
-
isRange
|
|
29
|
-
|
|
30
|
-
})));
|
|
31
|
-
|
|
42
|
+
isRange
|
|
43
|
+
});
|
|
44
|
+
setDates(currentDates => _objectSpread(_objectSpread({}, currentDates), derivedDates));
|
|
45
|
+
setPreviousDateProps(dateProps);
|
|
32
46
|
}
|
|
33
47
|
const hasHadValidDate = useRef(false);
|
|
34
48
|
const updateDates = useCallback((newDates, callback) => {
|
|
@@ -50,8 +64,8 @@ export default function useDates(dateProps, {
|
|
|
50
64
|
callback === null || callback === void 0 ? void 0 : callback(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, dates), newDates), months), correctedDates));
|
|
51
65
|
}, [dates, shouldCorrectDate, isRange]);
|
|
52
66
|
useEffect(() => {
|
|
53
|
-
const startDates = updateInputDates('start', dates);
|
|
54
|
-
const endDates = updateInputDates('end', dates);
|
|
67
|
+
const startDates = updateInputDates('start', dates.startDate);
|
|
68
|
+
const endDates = updateInputDates('end', dates.endDate);
|
|
55
69
|
hasHadValidDate.current = isValid(dates.startDate) || isValid(dates.endDate);
|
|
56
70
|
setDates(currentDates => _objectSpread(_objectSpread(_objectSpread({}, currentDates), startDates), endDates));
|
|
57
71
|
}, [dates.startDate, dates.endDate]);
|
|
@@ -59,12 +73,11 @@ export default function useDates(dateProps, {
|
|
|
59
73
|
dates,
|
|
60
74
|
updateDates,
|
|
61
75
|
hasHadValidDate: hasHadValidDate.current,
|
|
62
|
-
|
|
76
|
+
previousDateProps
|
|
63
77
|
};
|
|
64
78
|
}
|
|
65
|
-
function updateInputDates(type,
|
|
79
|
+
function updateInputDates(type, date) {
|
|
66
80
|
const updatedDates = {};
|
|
67
|
-
const date = dates[`${type}Date`];
|
|
68
81
|
if (isValid(date)) {
|
|
69
82
|
updatedDates[`__${type}Day`] = pad(format(date, 'dd'), 2);
|
|
70
83
|
updatedDates[`__${type}Month`] = pad(format(date, 'MM'), 2);
|
|
@@ -76,13 +89,13 @@ function updateInputDates(type, dates) {
|
|
|
76
89
|
}
|
|
77
90
|
return updatedDates;
|
|
78
91
|
}
|
|
79
|
-
function mapDates(dateProps,
|
|
92
|
+
function mapDates(dateProps, {
|
|
80
93
|
dateFormat,
|
|
81
94
|
isRange,
|
|
82
95
|
shouldCorrectDate
|
|
83
96
|
}) {
|
|
84
97
|
var _ref, _convertStringToDate, _convertStringToDate2;
|
|
85
|
-
const date =
|
|
98
|
+
const date = dateProps.date;
|
|
86
99
|
const startDate = typeof (dateProps === null || dateProps === void 0 ? void 0 : dateProps.startDate) !== 'undefined' ? getDate(dateProps.startDate, dateFormat) : typeof date !== 'undefined' ? getDate(date, dateFormat) : undefined;
|
|
87
100
|
const endDate = !isRange ? startDate : convertStringToDate(dateProps === null || dateProps === void 0 ? void 0 : dateProps.endDate, {
|
|
88
101
|
dateFormat
|
|
@@ -109,6 +122,7 @@ function mapDates(dateProps, previousDates, {
|
|
|
109
122
|
isRange
|
|
110
123
|
}) : {};
|
|
111
124
|
const dates = _objectSpread({
|
|
125
|
+
date,
|
|
112
126
|
startDate,
|
|
113
127
|
endDate,
|
|
114
128
|
startMonth,
|
|
@@ -125,6 +139,53 @@ function mapDates(dateProps, previousDates, {
|
|
|
125
139
|
__endYear: hasValidEndDate ? format(dates.endDate, 'yyyy') : null
|
|
126
140
|
});
|
|
127
141
|
}
|
|
142
|
+
function deriveDatesFromProps({
|
|
143
|
+
dates,
|
|
144
|
+
dateProps,
|
|
145
|
+
previousDateProps,
|
|
146
|
+
dateFormat,
|
|
147
|
+
isRange
|
|
148
|
+
}) {
|
|
149
|
+
const derivedDates = {};
|
|
150
|
+
const startDate = getStartDate(dateProps, previousDateProps);
|
|
151
|
+
if (typeof startDate !== 'undefined' && startDate !== dates.startDate) {
|
|
152
|
+
derivedDates.startDate = convertStringToDate(startDate, {
|
|
153
|
+
dateFormat
|
|
154
|
+
}) || undefined;
|
|
155
|
+
if (!isRange) {
|
|
156
|
+
derivedDates.startMonth = convertStringToDate(startDate, {
|
|
157
|
+
dateFormat
|
|
158
|
+
}) || undefined;
|
|
159
|
+
derivedDates.endDate = derivedDates.startDate;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (isRange && typeof dateProps.endDate !== 'undefined' && dateProps.endDate !== dates.endDate) {
|
|
163
|
+
derivedDates.endDate = convertStringToDate(dateProps.endDate, {
|
|
164
|
+
dateFormat
|
|
165
|
+
}) || undefined;
|
|
166
|
+
}
|
|
167
|
+
if (typeof dateProps.startMonth !== 'undefined' && dateProps.startMonth !== previousDateProps.startMonth) {
|
|
168
|
+
derivedDates.startMonth = convertStringToDate(dateProps.startMonth, {
|
|
169
|
+
dateFormat
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
if (typeof dateProps.endMonth !== 'undefined' && dateProps.endMonth !== previousDateProps.endMonth) {
|
|
173
|
+
derivedDates.endMonth = convertStringToDate(dateProps.endMonth, {
|
|
174
|
+
dateFormat
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
if (typeof dateProps.minDate !== 'undefined' && dateProps.minDate !== previousDateProps.minDate) {
|
|
178
|
+
derivedDates.minDate = convertStringToDate(dateProps.minDate, {
|
|
179
|
+
dateFormat
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
if (typeof dateProps.maxDate !== 'undefined' && dateProps.maxDate !== previousDateProps.maxDate) {
|
|
183
|
+
derivedDates.maxDate = convertStringToDate(dateProps.maxDate, {
|
|
184
|
+
dateFormat
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
return derivedDates;
|
|
188
|
+
}
|
|
128
189
|
function correctDates({
|
|
129
190
|
startDate,
|
|
130
191
|
endDate,
|
|
@@ -162,6 +223,15 @@ function getDate(date, dateFormat) {
|
|
|
162
223
|
dateFormat
|
|
163
224
|
});
|
|
164
225
|
}
|
|
226
|
+
function getStartDate(dateProps, previousDateProps) {
|
|
227
|
+
if (typeof dateProps.startDate !== 'undefined' && dateProps.startDate !== previousDateProps.startDate) {
|
|
228
|
+
return dateProps.startDate;
|
|
229
|
+
}
|
|
230
|
+
if (typeof dateProps.date !== 'undefined' && dateProps.date !== previousDateProps.date) {
|
|
231
|
+
return dateProps.date;
|
|
232
|
+
}
|
|
233
|
+
return undefined;
|
|
234
|
+
}
|
|
165
235
|
export function pad(date, size) {
|
|
166
236
|
const dateWithPadding = '000000000' + date;
|
|
167
237
|
return dateWithPadding.substring(dateWithPadding.length - size);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDates.js","names":["useCallback","useEffect","useMemo","useRef","useState","convertStringToDate","isDisabled","isValid","format","addMonths","useDates","dateProps","dateFormat","isRange","shouldCorrectDate","previousDates","setPreviousDates","dates","setDates","_objectSpread","mapDates","hasDatePropChanges","Object","keys","some","date","hasHadValidDate","updateDates","newDates","callback","_newDates$startDate","_newDates$endDate","correctedDates","correctDates","startDate","endDate","minDate","maxDate","months","updateMonths","currentDates","startDates","updateInputDates","endDates","current","type","updatedDates","pad","undefined","_ref","_convertStringToDate","_convertStringToDate2","getDate","startMonth","Date","endMonth","hasValidStartDate","hasValidEndDate","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","_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 } 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 [previousDates, setPreviousDates] = useState(dateProps)\n const [dates, setDates] = useState<DatePickerDates>({\n ...mapDates(dateProps, previousDates, {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }),\n })\n\n const hasDatePropChanges = useMemo(\n () =>\n Object.keys(dateProps).some((date) => {\n return dateProps[date] !== previousDates[date]\n }),\n [dateProps, previousDates]\n )\n\n // Update dates on prop change\n if (hasDatePropChanges) {\n setDates({\n ...mapDates({ ...dates, ...dateProps }, previousDates, {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }),\n })\n setPreviousDates(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)\n const endDates = updateInputDates('end', dates)\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 previousDates,\n } as const\n}\n\n// TODO: Move to DatePickerInput\nfunction updateInputDates(type: 'start' | 'end', dates: DatePickerDates) {\n const updatedDates = {}\n const date = dates[`${type}Date`]\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 previousDates: DatePickerDateProps,\n {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }: Omit<UseDatesOptions, 'isLinked'>\n) {\n const date =\n previousDates.date !== dateProps.date\n ? dateProps.date\n : previousDates.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 hasValidStartDate = isValid(startDate)\n const hasValidEndDate = isValid(endDate)\n\n const correctedDates = shouldCorrectDate\n ? correctDates({ startDate, endDate, minDate, maxDate, isRange })\n : {}\n\n const dates = {\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n ...correctedDates,\n }\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 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\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 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 hasValidStartDate = isValid(startDate)\n const hasValidEndDate = isValid(endDate)\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 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 // priortize 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,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
|
|
|
6
6
|
const _excluded = ["declineText", "confirmText", "hideDecline", "hideConfirm", "onConfirm", "onDecline", "className", "children"];
|
|
7
7
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
8
8
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
9
|
-
import React, { useContext } from 'react';
|
|
9
|
+
import React, { useCallback, useContext } from 'react';
|
|
10
10
|
import classNames from 'classnames';
|
|
11
11
|
import Button from '../../button/Button';
|
|
12
12
|
import Space from '../../space/Space';
|
|
@@ -37,6 +37,22 @@ const DialogAction = _ref => {
|
|
|
37
37
|
close
|
|
38
38
|
} = useContext(ModalContext);
|
|
39
39
|
let childrenWithCloseFunc;
|
|
40
|
+
const onConfirmHandler = useCallback(event => {
|
|
41
|
+
dispatchCustomElementEvent({
|
|
42
|
+
onConfirm
|
|
43
|
+
}, 'onConfirm', {
|
|
44
|
+
event,
|
|
45
|
+
close
|
|
46
|
+
});
|
|
47
|
+
}, [close, onConfirm]);
|
|
48
|
+
const onDeclineHandler = useCallback(event => {
|
|
49
|
+
dispatchCustomElementEvent({
|
|
50
|
+
onDecline
|
|
51
|
+
}, 'onDecline', {
|
|
52
|
+
event,
|
|
53
|
+
close
|
|
54
|
+
});
|
|
55
|
+
}, [close, onDecline]);
|
|
40
56
|
if (children) {
|
|
41
57
|
childrenWithCloseFunc = React.Children.map(children, child => {
|
|
42
58
|
if (child.type === Button) {
|
|
@@ -59,26 +75,12 @@ const DialogAction = _ref => {
|
|
|
59
75
|
}, props), childrenWithCloseFunc, !children && !hideDecline && React.createElement(Button, {
|
|
60
76
|
text: declineText || (translation === null || translation === void 0 ? void 0 : (_translation$Dialog = translation.Dialog) === null || _translation$Dialog === void 0 ? void 0 : _translation$Dialog.declineText),
|
|
61
77
|
variant: "secondary",
|
|
62
|
-
onClick:
|
|
63
|
-
dispatchCustomElementEvent({
|
|
64
|
-
onDecline
|
|
65
|
-
}, 'onDecline', {
|
|
66
|
-
event,
|
|
67
|
-
close
|
|
68
|
-
});
|
|
69
|
-
},
|
|
78
|
+
onClick: onDeclineHandler,
|
|
70
79
|
size: (ButtonContext === null || ButtonContext === void 0 ? void 0 : ButtonContext.size) || 'large'
|
|
71
80
|
}), !children && !hideConfirm && React.createElement(Button, {
|
|
72
81
|
text: confirmText || (translation === null || translation === void 0 ? void 0 : (_translation$Dialog2 = translation.Dialog) === null || _translation$Dialog2 === void 0 ? void 0 : _translation$Dialog2.confirmText),
|
|
73
82
|
variant: "primary",
|
|
74
|
-
onClick:
|
|
75
|
-
dispatchCustomElementEvent({
|
|
76
|
-
onConfirm
|
|
77
|
-
}, 'onConfirm', {
|
|
78
|
-
event,
|
|
79
|
-
close
|
|
80
|
-
});
|
|
81
|
-
},
|
|
83
|
+
onClick: onConfirmHandler,
|
|
82
84
|
size: (ButtonContext === null || ButtonContext === void 0 ? void 0 : ButtonContext.size) || 'large'
|
|
83
85
|
}));
|
|
84
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogAction.js","names":["React","useContext","classNames","Button","Space","Context","ModalContext","dispatchCustomElementEvent","fallbackCloseAction","close","DialogAction","_ref","_translation$Dialog","_translation$Dialog2","declineText","confirmText","hideDecline","hideConfirm","onConfirm","onDecline","className","children","props","_objectWithoutProperties","_excluded","translation","ButtonContext","childrenWithCloseFunc","Children","map","child","type","cloneElement","_objectSpread","on_click","
|
|
1
|
+
{"version":3,"file":"DialogAction.js","names":["React","useCallback","useContext","classNames","Button","Space","Context","ModalContext","dispatchCustomElementEvent","fallbackCloseAction","close","DialogAction","_ref","_translation$Dialog","_translation$Dialog2","declineText","confirmText","hideDecline","hideConfirm","onConfirm","onDecline","className","children","props","_objectWithoutProperties","_excluded","translation","ButtonContext","childrenWithCloseFunc","onConfirmHandler","event","onDeclineHandler","Children","map","child","type","cloneElement","_objectSpread","on_click","createElement","_extends","element","text","Dialog","variant","onClick","size","_supportsSpacingProps"],"sources":["../../../../../src/components/dialog/parts/DialogAction.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classNames from 'classnames'\nimport Button from '../../button/Button'\nimport Space from '../../space/Space'\nimport { Context } from '../../../shared'\nimport ModalContext from '../../modal/ModalContext'\nimport { dispatchCustomElementEvent } from '../../../shared/component-helper'\n\nimport type { SpacingProps } from '../../space/types'\n\ntype extendedMouseEvent = {\n event: React.MouseEvent<HTMLElement>\n close: () => void\n}\n\nexport type DialogActionProps = {\n /**\n * For dialog actions, give a custom text for the decline button.\n */\n declineText?: string | React.ReactNode\n\n /**\n * For dialog actions, give a custom text for the confirm button.\n */\n confirmText?: string | React.ReactNode\n\n /**\n * For variant confirmation, handle the confirm action click.\n */\n onConfirm?: (event: extendedMouseEvent) => void\n\n /**\n * For variant confirmation, handle the decline action click.\n */\n onDecline?: (event: extendedMouseEvent) => void\n\n /**\n * For variant confirmation, hide the default decline button and only show the confirm button.\n */\n hideDecline?: boolean\n\n /**\n * For variant confirmation, hide the default confirm button and only show the decline button.\n */\n hideConfirm?: boolean\n\n /**\n * Pass in custom confirm/decline buttons for action handling. Every child of type Button will be provided with a `close` function attribute.\n */\n children?: React.ReactElement | Array<React.ReactElement>\n}\n\nexport type DialogActionAllProps = DialogActionProps &\n SpacingProps &\n Omit<React.HTMLAttributes<HTMLElement>, 'children'>\n\nconst fallbackCloseAction = ({ close }: extendedMouseEvent) => close()\n\nconst DialogAction = ({\n declineText = null,\n confirmText = null,\n hideDecline = false,\n hideConfirm = false,\n onConfirm = fallbackCloseAction,\n onDecline = fallbackCloseAction,\n className,\n children,\n ...props\n}: DialogActionAllProps) => {\n const { translation, Button: ButtonContext } = useContext(Context)\n const { close } = useContext(ModalContext)\n let childrenWithCloseFunc: Array<React.ReactChild>\n\n const onConfirmHandler = useCallback(\n (event) => {\n dispatchCustomElementEvent({ onConfirm }, 'onConfirm', {\n event,\n close,\n })\n },\n [close, onConfirm]\n )\n const onDeclineHandler = useCallback(\n (event) => {\n dispatchCustomElementEvent({ onDecline }, 'onDecline', {\n event,\n close,\n })\n },\n [close, onDecline]\n )\n\n if (children) {\n childrenWithCloseFunc = React.Children.map(children, (child) => {\n if (child.type === Button) {\n return React.cloneElement(\n child,\n {\n ...child.props,\n on_click: (event) => {\n dispatchCustomElementEvent(child.props, 'on_click', {\n event,\n close,\n })\n },\n },\n child.props.children\n )\n } else {\n return child\n }\n })\n }\n\n return (\n <Space\n element=\"section\"\n className={classNames('dnb-dialog__actions', className)}\n {...props}\n >\n {childrenWithCloseFunc}\n\n {!children && !hideDecline && (\n <Button\n text={declineText || translation?.Dialog?.declineText}\n variant=\"secondary\"\n onClick={onDeclineHandler}\n size={ButtonContext?.size || 'large'}\n />\n )}\n {!children && !hideConfirm && (\n <Button\n text={confirmText || translation?.Dialog?.confirmText}\n variant=\"primary\"\n onClick={onConfirmHandler}\n size={ButtonContext?.size || 'large'}\n />\n )}\n </Space>\n )\n}\n\nDialogAction._supportsSpacingProps = true\n\nexport default DialogAction\n"],"mappings":"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"}
|
|
@@ -347,30 +347,30 @@ export const formatPhone = (number, locale = null) => {
|
|
|
347
347
|
switch (locale) {
|
|
348
348
|
default:
|
|
349
349
|
{
|
|
350
|
-
number = String(number).replace(/[^+0-9]/g, '');
|
|
351
350
|
let code = '';
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
code = number.substring(0, 4) + ' ';
|
|
360
|
-
number = number.substring(4);
|
|
351
|
+
number = String(number).replace(/^(00|\+|)47([^\s])/, '+47 $2').replace(/^00/, '+');
|
|
352
|
+
if (number.substring(0, 1) === '+') {
|
|
353
|
+
const codeAndNumber = number.match(/^\+([\d-]{1,8})\s{0,2}([\d\s-]{1,20})$/);
|
|
354
|
+
if (codeAndNumber) {
|
|
355
|
+
code = `+${codeAndNumber[1]} `;
|
|
356
|
+
number = codeAndNumber[2];
|
|
357
|
+
}
|
|
361
358
|
}
|
|
362
|
-
|
|
359
|
+
number = number.replace(/[^+\d]/g, '');
|
|
363
360
|
const length = number.length;
|
|
364
|
-
if (length === 8 && number
|
|
365
|
-
display = code + number.split(/([
|
|
361
|
+
if (length === 8 && number.substring(0, 1) === '8') {
|
|
362
|
+
display = code + number.split(/([\d]{3})([\d]{2})/).filter(s => s).join(' ');
|
|
366
363
|
} else {
|
|
367
364
|
if (length < 6) {
|
|
368
365
|
display = code + number;
|
|
369
366
|
} else {
|
|
370
|
-
|
|
367
|
+
if (code.includes('-')) {
|
|
368
|
+
code = code.replace(/(\+[\d]{1,2})-([\d]{1,6})/, '$1 ($2)');
|
|
369
|
+
}
|
|
370
|
+
display = code + number.split(length === 6 ? /^(\+[\d]{2})|([\d]{3})/ : /^(\+[\d]{2})|([\d]{2})/).filter(s => s).join(' ');
|
|
371
371
|
}
|
|
372
372
|
}
|
|
373
|
-
aria = code + number.split(/([
|
|
373
|
+
aria = code + number.split(/([\d]{2})/).filter(s => s).join(' ');
|
|
374
374
|
}
|
|
375
375
|
}
|
|
376
376
|
if (aria === null) {
|