@dnb/eufemia 10.73.2 → 10.74.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 +28 -0
- package/cjs/components/autocomplete/Autocomplete.js +7 -4
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/cjs/components/autocomplete/AutocompleteDocs.js +2 -2
- package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/cjs/components/button/style/dnb-button.css +1 -0
- package/cjs/components/button/style/dnb-button.min.css +1 -1
- package/cjs/components/button/style/dnb-button.scss +1 -0
- package/cjs/components/checkbox/Checkbox.d.ts +9 -1
- package/cjs/components/checkbox/Checkbox.js +59 -34
- package/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/cjs/components/checkbox/CheckboxDocs.js +6 -1
- package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
- package/cjs/components/date-picker/DatePicker.d.ts +4 -0
- package/cjs/components/date-picker/DatePicker.js +4 -3
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/cjs/components/date-picker/DatePickerCalendar.js +27 -86
- package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/cjs/components/date-picker/DatePickerCalendarNavigator.js +173 -0
- package/cjs/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/cjs/components/date-picker/DatePickerContext.d.ts +3 -0
- package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
- package/cjs/components/date-picker/DatePickerDocs.js +6 -1
- package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
- package/cjs/components/date-picker/DatePickerFooter.js +20 -17
- package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +7 -0
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/DatePickerRange.js +2 -28
- package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
- package/cjs/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/cjs/components/date-picker/hooks/useSubmittedDates.js +19 -0
- package/cjs/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/cjs/components/date-picker/style/dnb-date-picker.css +1 -1
- package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/cjs/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/cjs/components/drawer/Drawer.js +1 -0
- package/cjs/components/drawer/Drawer.js.map +1 -1
- package/cjs/components/dropdown/Dropdown.js +6 -4
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/dropdown/DropdownDocs.d.ts +179 -3
- package/cjs/components/dropdown/DropdownDocs.js.map +1 -1
- package/cjs/components/heading/HeadingHelpers.js +9 -5
- package/cjs/components/heading/HeadingHelpers.js.map +1 -1
- package/cjs/components/icon/Icon.d.ts +2 -2
- package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
- package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/cjs/components/input-masked/InputMaskedHooks.js +38 -6
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.js +5 -4
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.js +6 -4
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/switch/SwitchDocs.js +2 -2
- package/cjs/components/switch/SwitchDocs.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +8 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.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/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +2 -2
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +2 -2
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/cjs/extensions/forms/Field/Selection/Selection.js +10 -9
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +24 -8
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +8 -1
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js +64 -0
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +39 -14
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.js +11 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js +31 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js +112 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js +58 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js +57 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +11 -9
- package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +15 -56
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js +3 -3
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/index.d.ts +2 -2
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataContext.js +5 -3
- package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/cjs/extensions/forms/hooks/useSnapshot.js +17 -14
- package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/cjs/fragments/drawer-list/DrawerList.js +70 -175
- package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/cjs/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/cjs/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +52 -58
- package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/cjs/fragments/drawer-list/DrawerListItem.js +106 -0
- package/cjs/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/cjs/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/cjs/fragments/drawer-list/DrawerListPortal.js +93 -125
- package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/cjs/fragments/drawer-list/DrawerListProvider.js +11 -18
- package/cjs/fragments/drawer-list/DrawerListProvider.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/component-helper.d.ts +45 -48
- package/cjs/shared/component-helper.js +72 -201
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/cjs/shared/helpers/withCamelCaseProps.js +7 -2
- package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/cjs/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/cjs/shared/legacy/component-helper-legacy.js +202 -0
- package/cjs/shared/legacy/component-helper-legacy.js.map +1 -0
- package/cjs/shared/locales/en-GB.d.ts +1 -0
- package/cjs/shared/locales/en-GB.js +1 -0
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.js.map +1 -1
- package/cjs/shared/locales/index.d.ts +2 -0
- package/cjs/shared/locales/nb-NO.d.ts +1 -0
- package/cjs/shared/locales/nb-NO.js +2 -1
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/locales/sv-SE.d.ts +1 -0
- package/cjs/shared/locales/sv-SE.js +1 -0
- package/cjs/shared/locales/sv-SE.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +2 -1
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/components/autocomplete/Autocomplete.js +6 -3
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/components/autocomplete/AutocompleteDocs.js +1 -1
- package/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/components/button/style/dnb-button.css +1 -0
- package/components/button/style/dnb-button.min.css +1 -1
- package/components/button/style/dnb-button.scss +1 -0
- package/components/checkbox/Checkbox.d.ts +9 -1
- package/components/checkbox/Checkbox.js +60 -35
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/checkbox/CheckboxDocs.js +6 -1
- package/components/checkbox/CheckboxDocs.js.map +1 -1
- package/components/date-picker/DatePicker.d.ts +4 -0
- package/components/date-picker/DatePicker.js +4 -3
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/components/date-picker/DatePickerCalendar.js +27 -86
- package/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/components/date-picker/DatePickerCalendarNavigator.js +162 -0
- package/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/components/date-picker/DatePickerContext.d.ts +3 -0
- package/components/date-picker/DatePickerContext.js.map +1 -1
- package/components/date-picker/DatePickerDocs.js +6 -1
- package/components/date-picker/DatePickerDocs.js.map +1 -1
- package/components/date-picker/DatePickerFooter.js +20 -17
- package/components/date-picker/DatePickerFooter.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +7 -0
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/DatePickerRange.js +2 -28
- package/components/date-picker/DatePickerRange.js.map +1 -1
- package/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/components/date-picker/hooks/useSubmittedDates.js +14 -0
- package/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/components/date-picker/style/dnb-date-picker.css +1 -1
- package/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/components/drawer/Drawer.js +1 -0
- package/components/drawer/Drawer.js.map +1 -1
- package/components/dropdown/Dropdown.js +6 -4
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/dropdown/DropdownDocs.d.ts +179 -3
- package/components/dropdown/DropdownDocs.js.map +1 -1
- package/components/heading/HeadingHelpers.js +9 -5
- package/components/heading/HeadingHelpers.js.map +1 -1
- package/components/icon/Icon.d.ts +2 -2
- package/components/input-masked/InputMaskedDocs.js +1 -1
- package/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/components/input-masked/InputMaskedHooks.js +39 -7
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/input-masked/InputMaskedUtils.js +6 -5
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/number-format/NumberUtils.js +5 -4
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/switch/SwitchDocs.js +2 -2
- package/components/switch/SwitchDocs.js.map +1 -1
- package/es/components/autocomplete/Autocomplete.js +6 -3
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/es/components/autocomplete/AutocompleteDocs.js +1 -1
- package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/es/components/button/style/dnb-button.css +1 -0
- package/es/components/button/style/dnb-button.min.css +1 -1
- package/es/components/button/style/dnb-button.scss +1 -0
- package/es/components/checkbox/Checkbox.d.ts +9 -1
- package/es/components/checkbox/Checkbox.js +60 -35
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/checkbox/CheckboxDocs.js +6 -1
- package/es/components/checkbox/CheckboxDocs.js.map +1 -1
- package/es/components/date-picker/DatePicker.d.ts +4 -0
- package/es/components/date-picker/DatePicker.js +4 -3
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/es/components/date-picker/DatePickerCalendar.js +23 -80
- package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/es/components/date-picker/DatePickerCalendarNavigator.js +158 -0
- package/es/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/es/components/date-picker/DatePickerContext.d.ts +3 -0
- package/es/components/date-picker/DatePickerContext.js.map +1 -1
- package/es/components/date-picker/DatePickerDocs.js +6 -1
- package/es/components/date-picker/DatePickerDocs.js.map +1 -1
- package/es/components/date-picker/DatePickerFooter.js +20 -17
- package/es/components/date-picker/DatePickerFooter.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +7 -0
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/DatePickerRange.js +2 -27
- package/es/components/date-picker/DatePickerRange.js.map +1 -1
- package/es/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/es/components/date-picker/hooks/useSubmittedDates.js +14 -0
- package/es/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/es/components/date-picker/style/dnb-date-picker.css +1 -1
- package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/es/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/es/components/drawer/Drawer.js +1 -0
- package/es/components/drawer/Drawer.js.map +1 -1
- package/es/components/dropdown/Dropdown.js +6 -4
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/dropdown/DropdownDocs.d.ts +179 -3
- package/es/components/dropdown/DropdownDocs.js.map +1 -1
- package/es/components/heading/HeadingHelpers.js +9 -5
- package/es/components/heading/HeadingHelpers.js.map +1 -1
- package/es/components/icon/Icon.d.ts +2 -2
- package/es/components/input-masked/InputMaskedDocs.js +1 -1
- package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/es/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/es/components/input-masked/InputMaskedHooks.js +39 -7
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/input-masked/InputMaskedUtils.js +6 -5
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/number-format/NumberUtils.js +5 -4
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/switch/SwitchDocs.js +2 -2
- package/es/components/switch/SwitchDocs.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +1 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
- package/es/extensions/forms/Field/Boolean/BooleanDocs.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/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/es/extensions/forms/Field/Selection/Selection.js +9 -8
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/es/extensions/forms/Field/Toggle/Toggle.js +24 -6
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/es/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
- package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.js +53 -0
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/es/extensions/forms/Form/Isolation/Isolation.js +40 -14
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/es/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
- package/es/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.js +99 -0
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js +50 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.js +48 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
- package/es/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/es/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/es/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -55
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/es/extensions/forms/constants/locales/en-GB.js +3 -3
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/es/extensions/forms/constants/locales/index.d.ts +2 -2
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/es/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/es/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/es/extensions/forms/hooks/useDataContext.js +5 -3
- package/es/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/es/extensions/forms/hooks/useSnapshot.js +18 -15
- package/es/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/es/fragments/drawer-list/DrawerList.js +72 -173
- package/es/fragments/drawer-list/DrawerList.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/es/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/es/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/es/fragments/drawer-list/DrawerListHelpers.js +45 -54
- package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/es/fragments/drawer-list/DrawerListItem.js +90 -0
- package/es/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/es/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/es/fragments/drawer-list/DrawerListPortal.js +88 -120
- package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/es/fragments/drawer-list/DrawerListProvider.js +33 -19
- package/es/fragments/drawer-list/DrawerListProvider.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/component-helper.d.ts +45 -48
- package/es/shared/component-helper.js +20 -183
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/es/shared/helpers/withCamelCaseProps.js +7 -2
- package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/es/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/es/shared/legacy/component-helper-legacy.js +180 -0
- package/es/shared/legacy/component-helper-legacy.js.map +1 -0
- package/es/shared/locales/en-GB.d.ts +1 -0
- package/es/shared/locales/en-GB.js +1 -0
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.js.map +1 -1
- package/es/shared/locales/index.d.ts +2 -0
- package/es/shared/locales/nb-NO.d.ts +1 -0
- package/es/shared/locales/nb-NO.js +2 -1
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/locales/sv-SE.d.ts +1 -0
- package/es/shared/locales/sv-SE.js +1 -0
- package/es/shared/locales/sv-SE.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +2 -1
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
- package/extensions/forms/Field/Boolean/BooleanDocs.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/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/extensions/forms/Field/Selection/Selection.js +10 -9
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/extensions/forms/Field/Toggle/Toggle.js +26 -9
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
- package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/extensions/forms/Form/Isolation/IsolatedContainer.js +54 -0
- package/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/extensions/forms/Form/Isolation/Isolation.js +40 -15
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
- package/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/extensions/forms/Form/Isolation/IsolationResetButton.js +100 -0
- package/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.js +52 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.js +51 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
- package/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -57
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/extensions/forms/constants/locales/en-GB.js +3 -3
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/extensions/forms/constants/locales/index.d.ts +2 -2
- package/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/extensions/forms/hooks/useDataContext.js +5 -3
- package/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/extensions/forms/hooks/useSnapshot.js +18 -15
- package/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/fragments/drawer-list/DrawerList.js +71 -175
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/fragments/drawer-list/DrawerListHelpers.js +45 -53
- package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/fragments/drawer-list/DrawerListItem.js +91 -0
- package/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/fragments/drawer-list/DrawerListPortal.js +91 -121
- package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/fragments/drawer-list/DrawerListProvider.js +12 -19
- package/fragments/drawer-list/DrawerListProvider.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/component-helper.d.ts +45 -48
- package/shared/component-helper.js +23 -189
- package/shared/component-helper.js.map +1 -1
- package/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/shared/helpers/withCamelCaseProps.js +7 -2
- package/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/shared/legacy/component-helper-legacy.js +185 -0
- package/shared/legacy/component-helper-legacy.js.map +1 -0
- package/shared/locales/en-GB.d.ts +1 -0
- package/shared/locales/en-GB.js +1 -0
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.js.map +1 -1
- package/shared/locales/index.d.ts +2 -0
- package/shared/locales/nb-NO.d.ts +1 -0
- package/shared/locales/nb-NO.js +2 -1
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/locales/sv-SE.d.ts +1 -0
- package/shared/locales/sv-SE.js +1 -0
- package/shared/locales/sv-SE.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +2 -1
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- package/es/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- package/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- /package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
- /package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
- /package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
|
@@ -2,15 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
|
-
var _Fragment;
|
|
6
5
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
6
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
-
import "core-js/modules/es.string.replace.js";
|
|
9
7
|
import "core-js/modules/web.dom-collections.iterator.js";
|
|
10
8
|
import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
|
|
11
9
|
import classnames from 'classnames';
|
|
12
10
|
import format from 'date-fns/format';
|
|
13
|
-
import subMonths from 'date-fns/subMonths';
|
|
14
11
|
import addMonths from 'date-fns/addMonths';
|
|
15
12
|
import addWeeks from 'date-fns/addWeeks';
|
|
16
13
|
import addDays from 'date-fns/addDays';
|
|
@@ -24,7 +21,7 @@ import setDate from 'date-fns/setDate';
|
|
|
24
21
|
import { isDisabled, makeDayObject, toRange, getWeek, dayOffset, getCalendar, formatDate } from './DatePickerCalc';
|
|
25
22
|
import Button from '../button/Button';
|
|
26
23
|
import DatePickerContext from './DatePickerContext';
|
|
27
|
-
import {
|
|
24
|
+
import { DatePickerCalendarNav } from './DatePickerCalendarNavigator';
|
|
28
25
|
const defaultProps = {
|
|
29
26
|
prevBtn: true,
|
|
30
27
|
nextBtn: true,
|
|
@@ -39,10 +36,6 @@ const defaultProps = {
|
|
|
39
36
|
};
|
|
40
37
|
const arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];
|
|
41
38
|
const keysToHandle = ['Enter', 'Space', ...arrowKeys];
|
|
42
|
-
const titleFormat = {
|
|
43
|
-
month: 'long',
|
|
44
|
-
year: 'numeric'
|
|
45
|
-
};
|
|
46
39
|
function DatePickerCalendar(restOfProps) {
|
|
47
40
|
const props = _objectSpread(_objectSpread({}, defaultProps), restOfProps);
|
|
48
41
|
const {
|
|
@@ -56,13 +49,10 @@ function DatePickerCalendar(restOfProps) {
|
|
|
56
49
|
endMonth,
|
|
57
50
|
hoverDate,
|
|
58
51
|
setHoverDate,
|
|
59
|
-
|
|
60
|
-
DatePicker: {
|
|
61
|
-
selectedMonth
|
|
62
|
-
}
|
|
63
|
-
},
|
|
52
|
+
setSubmittedDates,
|
|
64
53
|
props: {
|
|
65
|
-
onDaysRender
|
|
54
|
+
onDaysRender,
|
|
55
|
+
yearNavigation
|
|
66
56
|
}
|
|
67
57
|
} = useContext(DatePickerContext);
|
|
68
58
|
const {
|
|
@@ -75,8 +65,6 @@ function DatePickerCalendar(restOfProps) {
|
|
|
75
65
|
hideNav,
|
|
76
66
|
locale,
|
|
77
67
|
hideDays,
|
|
78
|
-
onPrev,
|
|
79
|
-
onNext,
|
|
80
68
|
onSelect,
|
|
81
69
|
onKeyDown,
|
|
82
70
|
resetDate,
|
|
@@ -87,7 +75,6 @@ function DatePickerCalendar(restOfProps) {
|
|
|
87
75
|
onlyMonth
|
|
88
76
|
} = props;
|
|
89
77
|
const tableRef = useRef();
|
|
90
|
-
const labelRef = useRef();
|
|
91
78
|
const days = useRef({});
|
|
92
79
|
const cache = useRef({});
|
|
93
80
|
useEffect(() => {
|
|
@@ -99,6 +86,12 @@ function DatePickerCalendar(restOfProps) {
|
|
|
99
86
|
}
|
|
100
87
|
}
|
|
101
88
|
}, [noAutoFocus, nr]);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
setSubmittedDates({
|
|
91
|
+
startDate,
|
|
92
|
+
endDate
|
|
93
|
+
});
|
|
94
|
+
}, []);
|
|
102
95
|
const onMouseLeaveHandler = useCallback(() => {
|
|
103
96
|
setHoverDate(undefined);
|
|
104
97
|
}, [setHoverDate]);
|
|
@@ -245,39 +238,23 @@ function DatePickerCalendar(restOfProps) {
|
|
|
245
238
|
lang: locale
|
|
246
239
|
}, !hideNav && React.createElement("div", {
|
|
247
240
|
className: "dnb-date-picker__header"
|
|
248
|
-
}, React.createElement(
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
type: "prev",
|
|
241
|
+
}, React.createElement(DatePickerCalendarNav, {
|
|
242
|
+
type: yearNavigation ? 'month' : 'both',
|
|
243
|
+
id: id,
|
|
252
244
|
nr: nr,
|
|
253
|
-
date:
|
|
254
|
-
month: month,
|
|
245
|
+
date: month,
|
|
255
246
|
locale: locale,
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
})
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
title: selectedMonth.replace(/%s/, formatDate(month, {
|
|
262
|
-
locale,
|
|
263
|
-
formatOptions: titleFormat
|
|
264
|
-
})),
|
|
265
|
-
tabIndex: -1,
|
|
266
|
-
ref: labelRef
|
|
267
|
-
}, formatDate(month, {
|
|
268
|
-
locale,
|
|
269
|
-
formatOptions: titleFormat
|
|
270
|
-
})), React.createElement("div", {
|
|
271
|
-
className: "dnb-date-picker__header__nav"
|
|
272
|
-
}, React.createElement(CalendarButton, {
|
|
273
|
-
type: "next",
|
|
247
|
+
showPreviousButton: prevBtn,
|
|
248
|
+
showNextButton: nextBtn
|
|
249
|
+
}), yearNavigation && React.createElement(DatePickerCalendarNav, {
|
|
250
|
+
type: "year",
|
|
251
|
+
id: id,
|
|
274
252
|
nr: nr,
|
|
275
|
-
date:
|
|
276
|
-
month: month,
|
|
253
|
+
date: month,
|
|
277
254
|
locale: locale,
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
}))
|
|
255
|
+
showPreviousButton: prevBtn,
|
|
256
|
+
showNextButton: nextBtn
|
|
257
|
+
})), React.createElement("table", {
|
|
281
258
|
role: "grid",
|
|
282
259
|
className: "dnb-no-focus",
|
|
283
260
|
tabIndex: 0,
|
|
@@ -384,43 +361,7 @@ function DatePickerCalendar(restOfProps) {
|
|
|
384
361
|
}))));
|
|
385
362
|
}
|
|
386
363
|
export default DatePickerCalendar;
|
|
387
|
-
function
|
|
388
|
-
let {
|
|
389
|
-
type,
|
|
390
|
-
nr,
|
|
391
|
-
date,
|
|
392
|
-
month,
|
|
393
|
-
locale,
|
|
394
|
-
showButton,
|
|
395
|
-
onClick,
|
|
396
|
-
onKeyDown
|
|
397
|
-
} = _ref2;
|
|
398
|
-
const tr = useTranslation().DatePicker;
|
|
399
|
-
if (!showButton) {
|
|
400
|
-
return _Fragment || (_Fragment = React.createElement(React.Fragment, null));
|
|
401
|
-
}
|
|
402
|
-
const disabled = date && isSameMonth(month, date);
|
|
403
|
-
const title = tr[`${type}Month`].replace(/%s/, formatDate(subMonths(month, 1), {
|
|
404
|
-
locale,
|
|
405
|
-
formatOptions: {
|
|
406
|
-
month: 'long',
|
|
407
|
-
year: 'numeric'
|
|
408
|
-
}
|
|
409
|
-
}));
|
|
410
|
-
const icon = type === 'prev' ? 'chevron_left' : 'chevron_right';
|
|
411
|
-
return React.createElement(Button, {
|
|
412
|
-
className: `dnb-date-picker__${type}` + (disabled ? " disabled" : ""),
|
|
413
|
-
icon: icon,
|
|
414
|
-
size: "small",
|
|
415
|
-
"aria-label": title,
|
|
416
|
-
onClick: () => onClick && !disabled && onClick({
|
|
417
|
-
nr,
|
|
418
|
-
type
|
|
419
|
-
}),
|
|
420
|
-
onKeyDown: onKeyDown
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
function onSelectRange(_ref3) {
|
|
364
|
+
function onSelectRange(_ref2) {
|
|
424
365
|
let {
|
|
425
366
|
day,
|
|
426
367
|
isRange,
|
|
@@ -430,7 +371,7 @@ function onSelectRange(_ref3) {
|
|
|
430
371
|
resetDate,
|
|
431
372
|
event,
|
|
432
373
|
setHasClickedCalendarDay
|
|
433
|
-
} =
|
|
374
|
+
} = _ref2;
|
|
434
375
|
event.persist();
|
|
435
376
|
if (!isRange) {
|
|
436
377
|
return onSelect({
|
|
@@ -456,12 +397,12 @@ function onSelectRange(_ref3) {
|
|
|
456
397
|
event
|
|
457
398
|
});
|
|
458
399
|
}
|
|
459
|
-
function onHoverDay(
|
|
400
|
+
function onHoverDay(_ref3) {
|
|
460
401
|
let {
|
|
461
402
|
day,
|
|
462
403
|
hoverDate,
|
|
463
404
|
setHoverDate
|
|
464
|
-
} =
|
|
405
|
+
} = _ref3;
|
|
465
406
|
if (!isSameDay(day.date, hoverDate)) {
|
|
466
407
|
setHoverDate === null || setHoverDate === void 0 ? void 0 : setHoverDate(day.date);
|
|
467
408
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerCalendar.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","classnames","format","subMonths","addMonths","addWeeks","addDays","isSameDay","isSameMonth","startOfDay","differenceInCalendarDays","differenceInMonths","lastDayOfMonth","setDate","isDisabled","makeDayObject","toRange","getWeek","dayOffset","getCalendar","formatDate","Button","DatePickerContext","useTranslation","defaultProps","prevBtn","nextBtn","firstDayOfWeek","hideNav","hideDays","onlyMonth","hideNextMonthWeek","noAutoFocus","rtl","resetDate","arrowKeys","keysToHandle","titleFormat","month","year","DatePickerCalendar","restOfProps","props","_objectSpread","updateDates","setHasClickedCalendarDay","startDate","endDate","maxDate","minDate","startMonth","endMonth","hoverDate","setHoverDate","translation","DatePicker","selectedMonth","onDaysRender","id","nr","isRange","locale","onPrev","onNext","onSelect","onKeyDown","tableRef","labelRef","days","cache","current","focus","preventScroll","onMouseLeaveHandler","undefined","callOnSelect","event","getDays","daysFromCalendar","Date","map","date","changedDays","Array","isArray","keyNavCalc","keyCode","includes","dateHandler","test","shiftAmount","findValid","foundDate","find","cur","isSelectable","isInactive","nextDate","hasReachedEnd","onKeyDownHandler","pressedKey","code","preventDefault","persist","currentDates","dateType","currentDate","newDate","hidePicker","dates","currentMonth","Math","abs","cacheKey","join","weekDays","count","reduce","acc","i","push","Object","values","createElement","className","lang","CalendarButton","type","showButton","onClick","title","replace","formatOptions","tabIndex","ref","role","onMouseLeave","day","key","scope","weekday","substring","week","handleAsDisabled","isLastMonth","isNextMonth","isStartDate","isEndDate","isSelectedDate","paramsCell","paramsButton","_extends","buildDayClassNames","size","variant","text","getDate","bounding","disabled","on_click","_ref","onSelectRange","state","onMouseOver","onHoverDay","onFocus","_ref2","tr","_Fragment","Fragment","icon","_ref3","daysToStartDate","daysToEndDate","range","_ref4","isPreview","isWithinSelection","isToday"],"sources":["../../../../src/components/date-picker/DatePickerCalendar.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\n\n// date-fns\nimport format from 'date-fns/format'\nimport subMonths from 'date-fns/subMonths'\nimport addMonths from 'date-fns/addMonths'\nimport addWeeks from 'date-fns/addWeeks'\nimport addDays from 'date-fns/addDays'\nimport isSameDay from 'date-fns/isSameDay'\nimport isSameMonth from 'date-fns/isSameMonth'\nimport startOfDay from 'date-fns/startOfDay'\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays'\nimport differenceInMonths from 'date-fns/differenceInMonths'\nimport lastDayOfMonth from 'date-fns/lastDayOfMonth'\nimport setDate from 'date-fns/setDate'\n\nimport {\n isDisabled,\n makeDayObject,\n toRange,\n getWeek,\n dayOffset,\n getCalendar,\n formatDate,\n} from './DatePickerCalc'\nimport Button, { ButtonProps } from '../button/Button'\nimport DatePickerContext, {\n DatePickerContextValues,\n} from './DatePickerContext'\nimport { useTranslation } from '../../shared'\nimport { InternalLocale } from '../../shared/Context'\nimport { DatePickerChangeEvent } from './DatePickerProvider'\nimport { DatePickerDates } from './hooks/useDates'\n\nexport type CalendarDay = {\n date: Date\n isDisabled?: boolean\n isEndDate?: boolean\n isInactive?: boolean\n isLastMonth?: boolean\n isNextMonth?: boolean\n isPreview?: boolean\n isSelectable?: boolean\n isStartDate?: boolean\n isToday?: boolean\n isWithinSelection?: boolean\n className?: string\n}\n\nexport type CalendarNavigationEvent = {\n nr: number\n type?: CalendarButtonProps['type']\n}\n\nexport type DatePickerCalendarProps = Omit<\n React.HTMLProps<HTMLElement>,\n 'onSelect' | 'onChange'\n> & {\n id?: string\n nr?: number\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n month?: Date\n hoverDate?: Date\n prevBtn?: boolean\n nextBtn?: boolean\n firstDayOfWeek?: string\n hideNav?: boolean\n hideDays?: boolean\n onlyMonth?: boolean\n hideNextMonthWeek?: boolean\n noAutoFocus?: boolean\n onSelect?: (\n event: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement | HTMLButtonElement>\n >\n ) => void\n onPrev?: (event: CalendarNavigationEvent) => void\n onNext?: (event: CalendarNavigationEvent) => void\n onKeyDown?: (\n event: React.KeyboardEvent<HTMLTableElement | HTMLButtonElement>,\n tableRef: React.MutableRefObject<HTMLTableElement>,\n nr: number\n ) => void\n /**\n * To define the locale used in the calendar. Needs to be an `date-fns` \"v2\" locale object, like `import enLocale from 'date-fns/locale/en-GB'`. Defaults to `nb-NO`.\n */\n locale?: InternalLocale\n rtl?: boolean\n isRange?: boolean\n resetDate?: boolean\n}\n\ntype DayObject = {\n date: Date\n isToday: boolean\n isLastMonth: boolean\n isNextMonth: boolean\n isStartDate: boolean\n isEndDate: boolean\n isWithinSelection: boolean\n isPreview: boolean\n isDisabled: boolean\n isSelectable: boolean\n isInactive: boolean\n className?: string\n}\n\nconst defaultProps: DatePickerCalendarProps = {\n prevBtn: true,\n nextBtn: true,\n firstDayOfWeek: 'monday',\n hideNav: false,\n hideDays: false,\n onlyMonth: false,\n hideNextMonthWeek: false,\n noAutoFocus: false,\n rtl: false,\n resetDate: true,\n}\n\nconst arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']\nconst keysToHandle = ['Enter', 'Space', ...arrowKeys]\n\nconst titleFormat: Intl.DateTimeFormatOptions = {\n month: 'long',\n year: 'numeric',\n}\n\nfunction DatePickerCalendar(restOfProps: DatePickerCalendarProps) {\n const props = { ...defaultProps, ...restOfProps }\n\n const {\n updateDates,\n setHasClickedCalendarDay,\n startDate,\n endDate,\n maxDate,\n minDate,\n startMonth,\n endMonth,\n hoverDate,\n setHoverDate,\n translation: {\n DatePicker: { selectedMonth },\n },\n props: { onDaysRender },\n } = useContext(DatePickerContext)\n\n const {\n id,\n nr,\n rtl,\n month,\n isRange,\n firstDayOfWeek,\n hideNav,\n locale,\n hideDays,\n onPrev,\n onNext,\n onSelect,\n onKeyDown,\n resetDate,\n prevBtn,\n nextBtn,\n noAutoFocus,\n hideNextMonthWeek,\n onlyMonth,\n } = props\n\n const tableRef = useRef<React.ElementRef<'table'>>()\n const labelRef = useRef<HTMLLabelElement>()\n const days = useRef<Record<string, Array<CalendarDay>>>({})\n const cache = useRef<Record<string, CalendarDay[][]>>({})\n\n useEffect(() => {\n if (!noAutoFocus && nr === 0) {\n if (tableRef.current) {\n tableRef.current.focus({ preventScroll: true })\n }\n }\n }, [noAutoFocus, nr])\n\n const onMouseLeaveHandler = useCallback(() => {\n setHoverDate(undefined)\n }, [setHoverDate])\n\n const callOnSelect = useCallback(\n (\n event: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement>\n > &\n DatePickerDates\n ) => {\n onSelect?.(event)\n },\n [onSelect]\n )\n\n const getDays = useCallback(\n (month: Date): DayObject[] => {\n let daysFromCalendar = getCalendar(\n month || new Date(),\n dayOffset(firstDayOfWeek),\n {\n onlyMonth,\n hideNextMonthWeek,\n }\n ).map((date) =>\n makeDayObject(date, {\n startDate,\n endDate,\n hoverDate,\n minDate,\n maxDate,\n month,\n })\n )\n\n if (onDaysRender) {\n const changedDays = onDaysRender(daysFromCalendar, nr)\n if (Array.isArray(changedDays)) {\n daysFromCalendar = changedDays\n }\n }\n\n // Save for later check against disabled days during key navigation\n days.current[format(month, 'yyyy-MM')] = daysFromCalendar\n\n return daysFromCalendar\n },\n [\n endDate,\n firstDayOfWeek,\n hideNextMonthWeek,\n hoverDate,\n maxDate,\n minDate,\n nr,\n onDaysRender,\n onlyMonth,\n startDate,\n ]\n )\n\n const keyNavCalc = useCallback((date: Date, keyCode: string) => {\n // Return date if arrow keys are not pressed\n if (!arrowKeys.includes(keyCode)) {\n return date\n }\n\n const dateHandler = /(ArrowLeft|ArrowRight)/g.test(keyCode)\n ? addDays\n : addWeeks\n const shiftAmount = /(ArrowLeft|ArrowUp)/g.test(keyCode) ? -1 : 1\n\n return dateHandler(date, shiftAmount)\n }, [])\n\n const findValid = useCallback(\n (date: Date, keyCode: string) => {\n if (!onDaysRender || !days.current) {\n return date\n }\n\n const month = format(date, 'yyyy-MM')\n\n // re-render with new month\n if (!days.current[month]) {\n getDays(date)\n }\n\n if (Array.isArray(days.current[month])) {\n const foundDate = days.current[month].find((cur) =>\n isSameDay(cur.date, date)\n )\n\n if (\n foundDate?.date &&\n (foundDate.isDisabled ||\n foundDate.isSelectable === false ||\n foundDate.isInactive)\n ) {\n const nextDate = keyNavCalc(foundDate.date, keyCode)\n return findValid(nextDate, keyCode)\n }\n\n if (foundDate?.date) {\n return foundDate.date\n }\n }\n\n return date\n },\n [onDaysRender, getDays, keyNavCalc]\n )\n\n const hasReachedEnd = useCallback(\n (date: Date) => isDisabled(date, minDate, maxDate),\n [minDate, maxDate]\n )\n\n const onKeyDownHandler = useCallback(\n (event: React.KeyboardEvent<HTMLTableElement>) => {\n const pressedKey = event.code\n\n // call onKeyDown prop if given\n if (typeof onKeyDown === 'function') {\n return onKeyDown(event, tableRef, nr)\n }\n\n // only continue of key is one of these\n if (!keysToHandle.includes(pressedKey)) {\n return\n }\n event.preventDefault()\n event.persist() // since we use the event after updateDates\n\n const currentDates = { startDate, endDate, startMonth, endMonth }\n const dateType = !isRange || nr === 0 ? 'start' : 'end'\n const currentDate = currentDates[`${dateType}Date`]\n\n let newDate = currentDate\n ? keyNavCalc(currentDate, pressedKey)\n : currentDates[`${dateType}Month`] ||\n (isRange && nr === 1 ? addMonths(new Date(), 1) : new Date())\n\n if (\n newDate === currentDate &&\n (pressedKey === 'Enter' || pressedKey === 'Space')\n ) {\n return callOnSelect({\n event,\n nr,\n hidePicker: true,\n })\n }\n\n const dates: {\n startDate?: Date\n endDate?: Date\n startMonth?: Date\n endMonth?: Date\n } = {}\n\n const currentMonth = currentDates[`${dateType}Month`]\n\n if (\n // in case we don't have a start/end date, then we use the current month date\n (currentMonth && !currentDate) ||\n // if we have a larger gap between the new date and the current month in the calendar\n (currentMonth &&\n Math.abs(differenceInMonths(newDate, currentMonth)) > 1)\n ) {\n newDate = !isRange\n ? currentMonth\n : nr === 0\n ? setDate(currentMonth, 1)\n : lastDayOfMonth(currentMonth)\n\n // only to make sure we navigate the calendar to the new date\n } else if (currentMonth && !isSameMonth(currentDate, currentMonth)) {\n dates[`${dateType}Month`] = newDate\n }\n\n newDate = findValid(newDate, pressedKey)\n\n if (hasReachedEnd(newDate)) {\n return // Stop here\n }\n\n dates[`${dateType}Date`] = newDate\n\n // set fallbacks\n if (!isRange) {\n dates.endDate = newDate\n } else {\n if (!startDate) {\n dates.startDate = newDate\n }\n if (!endDate) {\n dates.endDate = newDate\n }\n }\n\n // make sure we stay on the same month\n if (onlyMonth || hideNav) {\n if (\n !isSameMonth(dates.startDate, startDate) ||\n !isSameMonth(dates.endDate, startDate) // Heads up, should this not be context.endDate?\n ) {\n return\n }\n }\n\n updateDates(dates, () => {\n // call after state update, so the input get's the latest state as well\n callOnSelect({\n event,\n nr,\n hidePicker: false,\n ...dates,\n })\n })\n\n // and set the focus back again\n if (tableRef && tableRef.current) {\n tableRef.current.focus({ preventScroll: true })\n }\n },\n [\n callOnSelect,\n findValid,\n hasReachedEnd,\n onKeyDown,\n startDate,\n endDate,\n updateDates,\n hideNav,\n isRange,\n keyNavCalc,\n nr,\n onlyMonth,\n endMonth,\n startMonth,\n ]\n )\n\n const cacheKey = useMemo(() => {\n return [\n nr,\n month,\n firstDayOfWeek,\n onlyMonth,\n hideNextMonthWeek,\n startDate,\n endDate,\n hoverDate,\n maxDate,\n minDate,\n ].join('|')\n }, [\n nr,\n month,\n firstDayOfWeek,\n onlyMonth,\n hideNextMonthWeek,\n startDate,\n endDate,\n hoverDate,\n maxDate,\n minDate,\n ])\n\n const weekDays = useMemo(() => {\n // Cache the result, just because we then avoid at least double calc because of reconciliation,\n // but we do not avoid calculating every day during hover or select\n\n if (cache.current[cacheKey]) {\n return cache.current[cacheKey]\n }\n\n let count = 0\n\n const days = getDays(month).reduce((acc, cur, i) => {\n // Normalize the data for table consumption\n acc[count] = acc[count] || []\n acc[count].push(cur)\n if (i % 7 === 6) {\n count++\n }\n\n return acc\n }, {})\n\n cache.current[cacheKey] = Object.values(days)\n\n return cache.current[cacheKey]\n }, [cacheKey, getDays, month])\n\n return (\n <div\n className={classnames('dnb-date-picker__calendar', rtl && 'rtl')}\n lang={locale}\n >\n {!hideNav && (\n <div className=\"dnb-date-picker__header\">\n <div className=\"dnb-date-picker__header__nav\">\n <CalendarButton\n type=\"prev\"\n nr={nr}\n date={minDate}\n month={month}\n locale={locale}\n showButton={prevBtn}\n onClick={onPrev}\n />\n </div>\n <label\n id={`${id}--title`}\n className=\"dnb-date-picker__header__title dnb-no-focus\"\n title={selectedMonth.replace(\n /%s/,\n formatDate(month, {\n locale,\n formatOptions: titleFormat,\n })\n )}\n tabIndex={-1}\n ref={labelRef}\n >\n {formatDate(month, {\n locale,\n formatOptions: titleFormat,\n })}\n </label>\n <div className=\"dnb-date-picker__header__nav\">\n <CalendarButton\n type=\"next\"\n nr={nr}\n date={maxDate}\n month={month}\n locale={locale}\n showButton={nextBtn}\n onClick={onNext}\n />\n </div>\n </div>\n )}\n <table\n role=\"grid\"\n className=\"dnb-no-focus\"\n tabIndex={0}\n aria-labelledby={`${id}--title`}\n onKeyDown={onKeyDownHandler}\n onMouseLeave={onMouseLeaveHandler}\n ref={tableRef}\n >\n {!hideDays && (\n <thead aria-hidden>\n <tr role=\"row\" className=\"dnb-date-picker__labels\">\n {getWeek(dayOffset(firstDayOfWeek)).map((day, i) => (\n <th\n key={i}\n role=\"columnheader\"\n scope=\"col\"\n className=\"dnb-date-picker__labels__day\"\n aria-label={formatDate(day, {\n locale,\n formatOptions: { weekday: 'long' },\n })}\n >\n {formatDate(day, {\n locale,\n formatOptions: { weekday: 'short' },\n }).substring(0, 2)}\n </th>\n ))}\n </tr>\n </thead>\n )}\n <tbody>\n {weekDays.map((week, i) => {\n return (\n <tr\n key={'week' + i}\n role=\"row\"\n className=\"dnb-date-picker__days\"\n >\n {week.map((day: DayObject, i) => {\n const title = formatDate(day.date, {\n locale,\n formatOptions: {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n },\n })\n\n const handleAsDisabled =\n day.isLastMonth ||\n day.isNextMonth ||\n day.isDisabled ||\n day.isInactive\n\n const dateType = day.isStartDate\n ? 'start'\n : day.isEndDate\n ? 'end'\n : undefined\n const isSelectedDate =\n nr === 0 ? day.isStartDate : day.isEndDate\n\n // cell params\n const paramsCell = {\n tabIndex: -1,\n ...(dateType && { id: `${id}--button-${dateType}` }),\n ...(isSelectedDate && { ['aria-selected']: true }),\n } as React.HTMLProps<HTMLTableCellElement>\n\n // cell + button params\n const paramsButton = {\n ...(isSelectedDate && { ['aria-current']: 'date' }),\n } as ButtonProps\n\n return (\n <td\n key={'day' + i}\n role=\"gridcell\"\n className={classnames(\n 'dnb-date-picker__day',\n 'dnb-no-focus',\n buildDayClassNames(day)\n )}\n {...paramsCell}\n >\n <Button\n size=\"medium\"\n variant=\"secondary\"\n text={day.date.getDate()}\n bounding={true}\n disabled={handleAsDisabled}\n tabIndex={handleAsDisabled ? 0 : -1} // fix for NVDA\n aria-disabled={handleAsDisabled}\n aria-label={title}\n {...paramsButton}\n on_click={\n handleAsDisabled\n ? undefined\n : ({ event }) =>\n onSelectRange({\n day,\n isRange,\n startDate,\n endDate,\n resetDate,\n event,\n setHasClickedCalendarDay,\n onSelect: (state) => {\n updateDates(state, (dates) =>\n callOnSelect({\n ...dates,\n event,\n nr,\n hidePicker: !isRange,\n })\n )\n },\n })\n }\n onMouseOver={\n handleAsDisabled\n ? undefined\n : () =>\n onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n })\n }\n onFocus={\n handleAsDisabled\n ? undefined\n : () =>\n onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n })\n }\n />\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n )\n}\n\nexport default DatePickerCalendar\n\nexport type CalendarButtonProps = {\n type: 'prev' | 'next'\n nr: number\n date: Date\n month: Date\n locale?: InternalLocale\n showButton: boolean\n onClick: ({\n nr,\n type,\n }: {\n nr: number\n type: CalendarButtonProps['type']\n }) => void\n onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void\n}\n\nfunction CalendarButton({\n type,\n nr,\n date,\n month,\n locale,\n showButton,\n onClick,\n onKeyDown,\n}: CalendarButtonProps) {\n const tr = useTranslation().DatePicker\n\n if (!showButton) {\n return <></>\n }\n const disabled = date && isSameMonth(month, date)\n\n const title = tr[`${type}Month`].replace(\n /%s/,\n formatDate(subMonths(month, 1), {\n locale,\n formatOptions: {\n month: 'long',\n year: 'numeric',\n },\n })\n )\n\n const icon = type === 'prev' ? 'chevron_left' : 'chevron_right'\n\n return (\n <Button\n className={classnames(`dnb-date-picker__${type}`, { disabled })}\n icon={icon}\n size=\"small\"\n aria-label={title}\n onClick={() => onClick && !disabled && onClick({ nr, type })}\n onKeyDown={onKeyDown}\n />\n )\n}\n\ntype SelectRangeEvent = Pick<\n DatePickerContextValues,\n 'setHasClickedCalendarDay'\n> & {\n day: DayObject\n event?: React.MouseEvent<HTMLButtonElement>\n startDate?: Date\n endDate?: Date\n resetDate?: boolean\n isRange?: boolean\n onSelect?: DatePickerCalendarProps['onSelect']\n}\n\nfunction onSelectRange({\n day,\n isRange,\n startDate,\n endDate,\n onSelect,\n resetDate,\n event,\n setHasClickedCalendarDay,\n}: SelectRangeEvent) {\n event.persist()\n\n if (!isRange) {\n // set only date\n return onSelect({\n startDate: startOfDay(day.date),\n endDate: startOfDay(day.date),\n event,\n })\n\n // for setting date new on every selection, do this here\n }\n\n // Set to true to stop calendar views from changing in range mode when clicking a day\n setHasClickedCalendarDay(true)\n\n if (!startDate || (resetDate && startDate && endDate)) {\n // set startDate\n // user is selecting startDate\n return onSelect({\n startDate: startOfDay(day.date),\n endDate: undefined,\n event,\n })\n }\n\n // set either startDate or endDate\n const daysToStartDate = Math.abs(\n differenceInCalendarDays(startDate, day.date)\n )\n const daysToEndDate = Math.abs(\n differenceInCalendarDays(endDate, day.date)\n )\n\n const range = toRange(\n endDate && !resetDate && daysToStartDate < daysToEndDate\n ? endDate\n : startDate,\n day.date\n )\n\n return onSelect({\n startDate: startOfDay(range.startDate),\n endDate: startOfDay(range.endDate),\n event,\n })\n}\n\nfunction onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n}: {\n day: CalendarDay\n hoverDate?: Date\n setHoverDate: (date: Date) => void\n}) {\n if (!isSameDay(day.date, hoverDate)) {\n setHoverDate?.(day.date)\n }\n}\n\nfunction buildDayClassNames(day: DayObject) {\n return classnames(\n {\n 'dnb-date-picker__day--start-date': day.isStartDate,\n 'dnb-date-picker__day--end-date': day.isEndDate,\n 'dnb-date-picker__day--preview': day.isPreview,\n 'dnb-date-picker__day--within-selection': day.isWithinSelection,\n 'dnb-date-picker__day--selectable': day.isSelectable,\n 'dnb-date-picker__day--inactive': day.isInactive,\n 'dnb-date-picker__day--disabled': day.isDisabled,\n 'dnb-date-picker__day--today': day.isToday,\n },\n day.className\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DatePickerCalendar.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","classnames","format","addMonths","addWeeks","addDays","isSameDay","isSameMonth","startOfDay","differenceInCalendarDays","differenceInMonths","lastDayOfMonth","setDate","isDisabled","makeDayObject","toRange","getWeek","dayOffset","getCalendar","formatDate","Button","DatePickerContext","DatePickerCalendarNav","defaultProps","prevBtn","nextBtn","firstDayOfWeek","hideNav","hideDays","onlyMonth","hideNextMonthWeek","noAutoFocus","rtl","resetDate","arrowKeys","keysToHandle","DatePickerCalendar","restOfProps","props","_objectSpread","updateDates","setHasClickedCalendarDay","startDate","endDate","maxDate","minDate","startMonth","endMonth","hoverDate","setHoverDate","setSubmittedDates","onDaysRender","yearNavigation","id","nr","month","isRange","locale","onSelect","onKeyDown","tableRef","days","cache","current","focus","preventScroll","onMouseLeaveHandler","undefined","callOnSelect","event","getDays","daysFromCalendar","Date","map","date","changedDays","Array","isArray","keyNavCalc","keyCode","includes","dateHandler","test","shiftAmount","findValid","foundDate","find","cur","isSelectable","isInactive","nextDate","hasReachedEnd","onKeyDownHandler","pressedKey","code","preventDefault","persist","currentDates","dateType","currentDate","newDate","hidePicker","dates","currentMonth","Math","abs","cacheKey","join","weekDays","count","reduce","acc","i","push","Object","values","createElement","className","lang","type","showPreviousButton","showNextButton","role","tabIndex","onMouseLeave","ref","day","key","scope","formatOptions","weekday","substring","week","title","year","handleAsDisabled","isLastMonth","isNextMonth","isStartDate","isEndDate","isSelectedDate","paramsCell","paramsButton","_extends","buildDayClassNames","size","variant","text","getDate","bounding","disabled","on_click","_ref","onSelectRange","state","onMouseOver","onHoverDay","onFocus","_ref2","daysToStartDate","daysToEndDate","range","_ref3","isPreview","isWithinSelection","isToday"],"sources":["../../../../src/components/date-picker/DatePickerCalendar.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\n\n// date-fns\nimport format from 'date-fns/format'\nimport addMonths from 'date-fns/addMonths'\nimport addWeeks from 'date-fns/addWeeks'\nimport addDays from 'date-fns/addDays'\nimport isSameDay from 'date-fns/isSameDay'\nimport isSameMonth from 'date-fns/isSameMonth'\nimport startOfDay from 'date-fns/startOfDay'\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays'\nimport differenceInMonths from 'date-fns/differenceInMonths'\nimport lastDayOfMonth from 'date-fns/lastDayOfMonth'\nimport setDate from 'date-fns/setDate'\n\nimport {\n isDisabled,\n makeDayObject,\n toRange,\n getWeek,\n dayOffset,\n getCalendar,\n formatDate,\n} from './DatePickerCalc'\nimport Button, { ButtonProps } from '../button/Button'\nimport DatePickerContext, {\n DatePickerContextValues,\n} from './DatePickerContext'\nimport { InternalLocale } from '../../shared/Context'\nimport { DatePickerChangeEvent } from './DatePickerProvider'\nimport { DatePickerDates } from './hooks/useDates'\nimport {\n CalendarNavButtonProps,\n DatePickerCalendarNav,\n} from './DatePickerCalendarNavigator'\n\nexport type CalendarDay = {\n date: Date\n isDisabled?: boolean\n isEndDate?: boolean\n isInactive?: boolean\n isLastMonth?: boolean\n isNextMonth?: boolean\n isPreview?: boolean\n isSelectable?: boolean\n isStartDate?: boolean\n isToday?: boolean\n isWithinSelection?: boolean\n className?: string\n}\n\nexport type CalendarNavigationEvent = {\n nr: number\n type?: CalendarNavButtonProps['type']\n}\n\nexport type DatePickerCalendarProps = Omit<\n React.HTMLProps<HTMLElement>,\n 'onSelect' | 'onChange'\n> & {\n id?: string\n nr?: number\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n month?: Date\n hoverDate?: Date\n // TODO: rename for clarity\n prevBtn?: boolean\n // TODO: rename for clarity\n nextBtn?: boolean\n firstDayOfWeek?: string\n hideNav?: boolean\n hideDays?: boolean\n onlyMonth?: boolean\n hideNextMonthWeek?: boolean\n noAutoFocus?: boolean\n onSelect?: (\n event: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement | HTMLButtonElement>\n >\n ) => void\n onKeyDown?: (\n event: React.KeyboardEvent<HTMLTableElement | HTMLButtonElement>,\n tableRef: React.MutableRefObject<HTMLTableElement>,\n nr: number\n ) => void\n /**\n * To define the locale used in the calendar. Needs to be an `date-fns` \"v2\" locale object, like `import enLocale from 'date-fns/locale/en-GB'`. Defaults to `nb-NO`.\n */\n locale?: InternalLocale\n rtl?: boolean\n isRange?: boolean\n resetDate?: boolean\n}\n\ntype DayObject = {\n date: Date\n isToday: boolean\n isLastMonth: boolean\n isNextMonth: boolean\n isStartDate: boolean\n isEndDate: boolean\n isWithinSelection: boolean\n isPreview: boolean\n isDisabled: boolean\n isSelectable: boolean\n isInactive: boolean\n className?: string\n}\n\nconst defaultProps: DatePickerCalendarProps = {\n prevBtn: true,\n nextBtn: true,\n firstDayOfWeek: 'monday',\n hideNav: false,\n hideDays: false,\n onlyMonth: false,\n hideNextMonthWeek: false,\n noAutoFocus: false,\n rtl: false,\n resetDate: true,\n}\n\nconst arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']\nconst keysToHandle = ['Enter', 'Space', ...arrowKeys]\n\nfunction DatePickerCalendar(restOfProps: DatePickerCalendarProps) {\n const props = { ...defaultProps, ...restOfProps }\n\n const {\n updateDates,\n setHasClickedCalendarDay,\n startDate,\n endDate,\n maxDate,\n minDate,\n startMonth,\n endMonth,\n hoverDate,\n setHoverDate,\n setSubmittedDates,\n props: { onDaysRender, yearNavigation },\n } = useContext(DatePickerContext)\n\n const {\n id,\n nr,\n rtl,\n month,\n isRange,\n firstDayOfWeek,\n hideNav,\n locale,\n hideDays,\n onSelect,\n onKeyDown,\n resetDate,\n prevBtn,\n nextBtn,\n noAutoFocus,\n hideNextMonthWeek,\n onlyMonth,\n } = props\n\n const tableRef = useRef<React.ElementRef<'table'>>()\n const days = useRef<Record<string, Array<CalendarDay>>>({})\n const cache = useRef<Record<string, CalendarDay[][]>>({})\n\n useEffect(() => {\n if (!noAutoFocus && nr === 0) {\n if (tableRef.current) {\n tableRef.current.focus({ preventScroll: true })\n }\n }\n }, [noAutoFocus, nr])\n\n // Store the initial selected date on calendar render, to be used for `onCancel` in DatePickerFooter\n useEffect(() => {\n setSubmittedDates({ startDate, endDate })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const onMouseLeaveHandler = useCallback(() => {\n setHoverDate(undefined)\n }, [setHoverDate])\n\n const callOnSelect = useCallback(\n (\n event: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement>\n > &\n DatePickerDates\n ) => {\n onSelect?.(event)\n },\n [onSelect]\n )\n\n const getDays = useCallback(\n (month: Date): DayObject[] => {\n let daysFromCalendar = getCalendar(\n month || new Date(),\n dayOffset(firstDayOfWeek),\n {\n onlyMonth,\n hideNextMonthWeek,\n }\n ).map((date) =>\n makeDayObject(date, {\n startDate,\n endDate,\n hoverDate,\n minDate,\n maxDate,\n month,\n })\n )\n\n if (onDaysRender) {\n const changedDays = onDaysRender(daysFromCalendar, nr)\n if (Array.isArray(changedDays)) {\n daysFromCalendar = changedDays\n }\n }\n\n // Save for later check against disabled days during key navigation\n days.current[format(month, 'yyyy-MM')] = daysFromCalendar\n\n return daysFromCalendar\n },\n [\n endDate,\n firstDayOfWeek,\n hideNextMonthWeek,\n hoverDate,\n maxDate,\n minDate,\n nr,\n onDaysRender,\n onlyMonth,\n startDate,\n ]\n )\n\n const keyNavCalc = useCallback((date: Date, keyCode: string) => {\n // Return date if arrow keys are not pressed\n if (!arrowKeys.includes(keyCode)) {\n return date\n }\n\n const dateHandler = /(ArrowLeft|ArrowRight)/g.test(keyCode)\n ? addDays\n : addWeeks\n const shiftAmount = /(ArrowLeft|ArrowUp)/g.test(keyCode) ? -1 : 1\n\n return dateHandler(date, shiftAmount)\n }, [])\n\n const findValid = useCallback(\n (date: Date, keyCode: string) => {\n if (!onDaysRender || !days.current) {\n return date\n }\n\n const month = format(date, 'yyyy-MM')\n\n // re-render with new month\n if (!days.current[month]) {\n getDays(date)\n }\n\n if (Array.isArray(days.current[month])) {\n const foundDate = days.current[month].find((cur) =>\n isSameDay(cur.date, date)\n )\n\n if (\n foundDate?.date &&\n (foundDate.isDisabled ||\n foundDate.isSelectable === false ||\n foundDate.isInactive)\n ) {\n const nextDate = keyNavCalc(foundDate.date, keyCode)\n return findValid(nextDate, keyCode)\n }\n\n if (foundDate?.date) {\n return foundDate.date\n }\n }\n\n return date\n },\n [onDaysRender, getDays, keyNavCalc]\n )\n\n const hasReachedEnd = useCallback(\n (date: Date) => isDisabled(date, minDate, maxDate),\n [minDate, maxDate]\n )\n\n const onKeyDownHandler = useCallback(\n (event: React.KeyboardEvent<HTMLTableElement>) => {\n const pressedKey = event.code\n\n // call onKeyDown prop if given\n if (typeof onKeyDown === 'function') {\n return onKeyDown(event, tableRef, nr)\n }\n\n // only continue of key is one of these\n if (!keysToHandle.includes(pressedKey)) {\n return\n }\n event.preventDefault()\n event.persist() // since we use the event after updateDates\n\n const currentDates = { startDate, endDate, startMonth, endMonth }\n const dateType = !isRange || nr === 0 ? 'start' : 'end'\n const currentDate = currentDates[`${dateType}Date`]\n\n let newDate = currentDate\n ? keyNavCalc(currentDate, pressedKey)\n : currentDates[`${dateType}Month`] ||\n (isRange && nr === 1 ? addMonths(new Date(), 1) : new Date())\n\n if (\n newDate === currentDate &&\n (pressedKey === 'Enter' || pressedKey === 'Space')\n ) {\n return callOnSelect({\n event,\n nr,\n hidePicker: true,\n })\n }\n\n const dates: {\n startDate?: Date\n endDate?: Date\n startMonth?: Date\n endMonth?: Date\n } = {}\n\n const currentMonth = currentDates[`${dateType}Month`]\n\n if (\n // in case we don't have a start/end date, then we use the current month date\n (currentMonth && !currentDate) ||\n // if we have a larger gap between the new date and the current month in the calendar\n (currentMonth &&\n Math.abs(differenceInMonths(newDate, currentMonth)) > 1)\n ) {\n newDate = !isRange\n ? currentMonth\n : nr === 0\n ? setDate(currentMonth, 1)\n : lastDayOfMonth(currentMonth)\n\n // only to make sure we navigate the calendar to the new date\n } else if (currentMonth && !isSameMonth(currentDate, currentMonth)) {\n dates[`${dateType}Month`] = newDate\n }\n\n newDate = findValid(newDate, pressedKey)\n\n if (hasReachedEnd(newDate)) {\n return // Stop here\n }\n\n dates[`${dateType}Date`] = newDate\n\n // set fallbacks\n if (!isRange) {\n dates.endDate = newDate\n } else {\n if (!startDate) {\n dates.startDate = newDate\n }\n if (!endDate) {\n dates.endDate = newDate\n }\n }\n\n // make sure we stay on the same month\n if (onlyMonth || hideNav) {\n if (\n !isSameMonth(dates.startDate, startDate) ||\n !isSameMonth(dates.endDate, startDate) // Heads up, should this not be context.endDate?\n ) {\n return\n }\n }\n\n updateDates(dates, () => {\n // call after state update, so the input get's the latest state as well\n callOnSelect({\n event,\n nr,\n hidePicker: false,\n ...dates,\n })\n })\n\n // and set the focus back again\n if (tableRef && tableRef.current) {\n tableRef.current.focus({ preventScroll: true })\n }\n },\n [\n callOnSelect,\n findValid,\n hasReachedEnd,\n onKeyDown,\n startDate,\n endDate,\n updateDates,\n hideNav,\n isRange,\n keyNavCalc,\n nr,\n onlyMonth,\n endMonth,\n startMonth,\n ]\n )\n\n const cacheKey = useMemo(() => {\n return [\n nr,\n month,\n firstDayOfWeek,\n onlyMonth,\n hideNextMonthWeek,\n startDate,\n endDate,\n hoverDate,\n maxDate,\n minDate,\n ].join('|')\n }, [\n nr,\n month,\n firstDayOfWeek,\n onlyMonth,\n hideNextMonthWeek,\n startDate,\n endDate,\n hoverDate,\n maxDate,\n minDate,\n ])\n\n const weekDays = useMemo(() => {\n // Cache the result, just because we then avoid at least double calc because of reconciliation,\n // but we do not avoid calculating every day during hover or select\n\n if (cache.current[cacheKey]) {\n return cache.current[cacheKey]\n }\n\n let count = 0\n\n const days = getDays(month).reduce((acc, cur, i) => {\n // Normalize the data for table consumption\n acc[count] = acc[count] || []\n acc[count].push(cur)\n if (i % 7 === 6) {\n count++\n }\n\n return acc\n }, {})\n\n cache.current[cacheKey] = Object.values(days)\n\n return cache.current[cacheKey]\n }, [cacheKey, getDays, month])\n\n return (\n <div\n className={classnames('dnb-date-picker__calendar', rtl && 'rtl')}\n lang={locale}\n >\n {!hideNav && (\n <div className=\"dnb-date-picker__header\">\n <DatePickerCalendarNav\n type={yearNavigation ? 'month' : 'both'}\n id={id}\n nr={nr}\n date={month}\n locale={locale}\n showPreviousButton={prevBtn}\n showNextButton={nextBtn}\n />\n {yearNavigation && (\n <DatePickerCalendarNav\n type=\"year\"\n id={id}\n nr={nr}\n date={month}\n locale={locale}\n showPreviousButton={prevBtn}\n showNextButton={nextBtn}\n />\n )}\n </div>\n )}\n <table\n role=\"grid\"\n className=\"dnb-no-focus\"\n tabIndex={0}\n aria-labelledby={`${id}--title`}\n onKeyDown={onKeyDownHandler}\n onMouseLeave={onMouseLeaveHandler}\n ref={tableRef}\n >\n {!hideDays && (\n <thead aria-hidden>\n <tr role=\"row\" className=\"dnb-date-picker__labels\">\n {getWeek(dayOffset(firstDayOfWeek)).map((day, i) => (\n <th\n key={i}\n role=\"columnheader\"\n scope=\"col\"\n className=\"dnb-date-picker__labels__day\"\n aria-label={formatDate(day, {\n locale,\n formatOptions: { weekday: 'long' },\n })}\n >\n {formatDate(day, {\n locale,\n formatOptions: { weekday: 'short' },\n }).substring(0, 2)}\n </th>\n ))}\n </tr>\n </thead>\n )}\n <tbody>\n {weekDays.map((week, i) => {\n return (\n <tr\n key={'week' + i}\n role=\"row\"\n className=\"dnb-date-picker__days\"\n >\n {week.map((day: DayObject, i) => {\n const title = formatDate(day.date, {\n locale,\n formatOptions: {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n },\n })\n\n const handleAsDisabled =\n day.isLastMonth ||\n day.isNextMonth ||\n day.isDisabled ||\n day.isInactive\n\n const dateType = day.isStartDate\n ? 'start'\n : day.isEndDate\n ? 'end'\n : undefined\n const isSelectedDate =\n nr === 0 ? day.isStartDate : day.isEndDate\n\n // cell params\n const paramsCell = {\n tabIndex: -1,\n ...(dateType && { id: `${id}--button-${dateType}` }),\n ...(isSelectedDate && { ['aria-selected']: true }),\n } as React.HTMLProps<HTMLTableCellElement>\n\n // cell + button params\n const paramsButton = {\n ...(isSelectedDate && { ['aria-current']: 'date' }),\n } as ButtonProps\n\n return (\n <td\n key={'day' + i}\n role=\"gridcell\"\n className={classnames(\n 'dnb-date-picker__day',\n 'dnb-no-focus',\n buildDayClassNames(day)\n )}\n {...paramsCell}\n >\n <Button\n size=\"medium\"\n variant=\"secondary\"\n text={day.date.getDate()}\n bounding={true}\n disabled={handleAsDisabled}\n tabIndex={handleAsDisabled ? 0 : -1} // fix for NVDA\n aria-disabled={handleAsDisabled}\n aria-label={title}\n {...paramsButton}\n on_click={\n handleAsDisabled\n ? undefined\n : ({ event }) =>\n onSelectRange({\n day,\n isRange,\n startDate,\n endDate,\n resetDate,\n event,\n setHasClickedCalendarDay,\n onSelect: (state) => {\n updateDates(state, (dates) =>\n callOnSelect({\n ...dates,\n event,\n nr,\n hidePicker: !isRange,\n })\n )\n },\n })\n }\n onMouseOver={\n handleAsDisabled\n ? undefined\n : () =>\n onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n })\n }\n onFocus={\n handleAsDisabled\n ? undefined\n : () =>\n onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n })\n }\n />\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n )\n}\n\nexport default DatePickerCalendar\n\ntype SelectRangeEvent = Pick<\n DatePickerContextValues,\n 'setHasClickedCalendarDay'\n> & {\n day: DayObject\n event?: React.MouseEvent<HTMLButtonElement>\n startDate?: Date\n endDate?: Date\n resetDate?: boolean\n isRange?: boolean\n onSelect?: DatePickerCalendarProps['onSelect']\n}\n\nfunction onSelectRange({\n day,\n isRange,\n startDate,\n endDate,\n onSelect,\n resetDate,\n event,\n setHasClickedCalendarDay,\n}: SelectRangeEvent) {\n event.persist()\n\n if (!isRange) {\n // set only date\n return onSelect({\n startDate: startOfDay(day.date),\n endDate: startOfDay(day.date),\n event,\n })\n\n // for setting date new on every selection, do this here\n }\n\n // Set to true to stop calendar views from changing in range mode when clicking a day\n setHasClickedCalendarDay(true)\n\n if (!startDate || (resetDate && startDate && endDate)) {\n // set startDate\n // user is selecting startDate\n return onSelect({\n startDate: startOfDay(day.date),\n endDate: undefined,\n event,\n })\n }\n\n // set either startDate or endDate\n const daysToStartDate = Math.abs(\n differenceInCalendarDays(startDate, day.date)\n )\n const daysToEndDate = Math.abs(\n differenceInCalendarDays(endDate, day.date)\n )\n\n const range = toRange(\n endDate && !resetDate && daysToStartDate < daysToEndDate\n ? endDate\n : startDate,\n day.date\n )\n\n return onSelect({\n startDate: startOfDay(range.startDate),\n endDate: startOfDay(range.endDate),\n event,\n })\n}\n\nfunction onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n}: {\n day: CalendarDay\n hoverDate?: Date\n setHoverDate: (date: Date) => void\n}) {\n if (!isSameDay(day.date, hoverDate)) {\n setHoverDate?.(day.date)\n }\n}\n\nfunction buildDayClassNames(day: DayObject) {\n return classnames(\n {\n 'dnb-date-picker__day--start-date': day.isStartDate,\n 'dnb-date-picker__day--end-date': day.isEndDate,\n 'dnb-date-picker__day--preview': day.isPreview,\n 'dnb-date-picker__day--within-selection': day.isWithinSelection,\n 'dnb-date-picker__day--selectable': day.isSelectable,\n 'dnb-date-picker__day--inactive': day.isInactive,\n 'dnb-date-picker__day--disabled': day.isDisabled,\n 'dnb-date-picker__day--today': day.isToday,\n },\n day.className\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { InternalLocale } from '../../shared/Context';
|
|
3
|
+
type CalendarNavigationDateType = 'month' | 'year';
|
|
4
|
+
type CalendarNavigationType = 'both' | CalendarNavigationDateType;
|
|
5
|
+
export type DatePickerCalendarNavigationProps = Omit<React.HTMLProps<HTMLElement>, 'onSelect' | 'onChange'> & {
|
|
6
|
+
type: CalendarNavigationType;
|
|
7
|
+
id: string;
|
|
8
|
+
nr?: number;
|
|
9
|
+
/**
|
|
10
|
+
* To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.
|
|
11
|
+
*/
|
|
12
|
+
date?: Date;
|
|
13
|
+
showPreviousButton?: boolean;
|
|
14
|
+
showNextButton?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* To define the locale used in the calendar. Needs to be an `date-fns` "v2" locale object, like `import enLocale from 'date-fns/locale/en-GB'`. Defaults to `nb-NO`.
|
|
17
|
+
*/
|
|
18
|
+
locale?: InternalLocale;
|
|
19
|
+
};
|
|
20
|
+
export declare function DatePickerCalendarNav({ type, id, nr, date, locale, showPreviousButton, showNextButton, }: DatePickerCalendarNavigationProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export type CalendarNavButtonType = 'prev' | 'next';
|
|
22
|
+
export type CalendarNavButtonProps = {
|
|
23
|
+
dateType: CalendarNavigationDateType;
|
|
24
|
+
type: CalendarNavButtonType;
|
|
25
|
+
nr: number;
|
|
26
|
+
dateFormat: Intl.DateTimeFormatOptions;
|
|
27
|
+
date: Date;
|
|
28
|
+
dateLimit: Date;
|
|
29
|
+
locale: InternalLocale;
|
|
30
|
+
showButton: boolean;
|
|
31
|
+
onClick: ({ nr, type, }: {
|
|
32
|
+
nr: number;
|
|
33
|
+
type: CalendarNavButtonProps['type'];
|
|
34
|
+
}) => void;
|
|
35
|
+
onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void;
|
|
36
|
+
};
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
|
+
var _Fragment;
|
|
5
|
+
import "core-js/modules/es.string.replace.js";
|
|
6
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
+
import React, { useCallback, useContext } from 'react';
|
|
9
|
+
import { addMonths, addYears, isSameMonth, isSameYear, subMonths, subYears } from 'date-fns';
|
|
10
|
+
import Button from '../Button';
|
|
11
|
+
import { useTranslation } from '../../shared';
|
|
12
|
+
import DatePickerContext from './DatePickerContext';
|
|
13
|
+
import { formatDate } from './DatePickerCalc';
|
|
14
|
+
const titleFormats = {
|
|
15
|
+
both: {
|
|
16
|
+
month: 'long',
|
|
17
|
+
year: 'numeric'
|
|
18
|
+
},
|
|
19
|
+
month: {
|
|
20
|
+
month: 'long'
|
|
21
|
+
},
|
|
22
|
+
year: {
|
|
23
|
+
year: 'numeric'
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const dateHandlers = {
|
|
27
|
+
month: {
|
|
28
|
+
prev: subMonths,
|
|
29
|
+
next: addMonths
|
|
30
|
+
},
|
|
31
|
+
year: {
|
|
32
|
+
prev: subYears,
|
|
33
|
+
next: addYears
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
export function DatePickerCalendarNav(_ref) {
|
|
37
|
+
let {
|
|
38
|
+
type = 'both',
|
|
39
|
+
id,
|
|
40
|
+
nr,
|
|
41
|
+
date,
|
|
42
|
+
locale,
|
|
43
|
+
showPreviousButton,
|
|
44
|
+
showNextButton
|
|
45
|
+
} = _ref;
|
|
46
|
+
const {
|
|
47
|
+
minDate,
|
|
48
|
+
maxDate,
|
|
49
|
+
views,
|
|
50
|
+
setViews,
|
|
51
|
+
props: {
|
|
52
|
+
link: isLinkedCalendars
|
|
53
|
+
}
|
|
54
|
+
} = useContext(DatePickerContext);
|
|
55
|
+
const {
|
|
56
|
+
selectedMonth,
|
|
57
|
+
selectedYear
|
|
58
|
+
} = useTranslation().DatePicker;
|
|
59
|
+
const title = type === 'year' ? selectedYear : selectedMonth;
|
|
60
|
+
const titleFormat = titleFormats[type];
|
|
61
|
+
const buttonDateType = type === 'year' ? 'year' : 'month';
|
|
62
|
+
const onNav = useCallback(_ref2 => {
|
|
63
|
+
let {
|
|
64
|
+
nr,
|
|
65
|
+
type: navigationType
|
|
66
|
+
} = _ref2;
|
|
67
|
+
const handlerType = type === 'year' ? 'year' : 'month';
|
|
68
|
+
const updatedViews = views.map(view => {
|
|
69
|
+
if (view.nr === nr || isLinkedCalendars && view.nr === 1) {
|
|
70
|
+
const month = dateHandlers[handlerType][navigationType](view.month, 1);
|
|
71
|
+
return _objectSpread(_objectSpread({}, view), {}, {
|
|
72
|
+
month
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return view;
|
|
76
|
+
});
|
|
77
|
+
setViews(updatedViews);
|
|
78
|
+
}, [type, views, setViews, isLinkedCalendars]);
|
|
79
|
+
return React.createElement("div", {
|
|
80
|
+
className: 'dnb-date-picker__header__row' + (type === 'year' ? " dnb-date-picker__header__row--year" : "")
|
|
81
|
+
}, React.createElement("div", {
|
|
82
|
+
className: "dnb-date-picker__header__nav"
|
|
83
|
+
}, React.createElement(CalendarNavButton, {
|
|
84
|
+
type: "prev",
|
|
85
|
+
nr: nr,
|
|
86
|
+
date: date,
|
|
87
|
+
dateLimit: minDate,
|
|
88
|
+
dateType: buttonDateType,
|
|
89
|
+
dateFormat: titleFormat,
|
|
90
|
+
locale: locale,
|
|
91
|
+
showButton: showPreviousButton,
|
|
92
|
+
onClick: onNav
|
|
93
|
+
})), React.createElement("label", {
|
|
94
|
+
id: `${id}--title`,
|
|
95
|
+
className: "dnb-date-picker__header__title dnb-no-focus",
|
|
96
|
+
title: title.replace(/%s/, formatDate(date, {
|
|
97
|
+
locale,
|
|
98
|
+
formatOptions: titleFormat
|
|
99
|
+
})),
|
|
100
|
+
tabIndex: -1
|
|
101
|
+
}, formatDate(date, {
|
|
102
|
+
locale,
|
|
103
|
+
formatOptions: titleFormat
|
|
104
|
+
})), React.createElement("div", {
|
|
105
|
+
className: "dnb-date-picker__header__nav"
|
|
106
|
+
}, React.createElement(CalendarNavButton, {
|
|
107
|
+
type: "next",
|
|
108
|
+
dateType: buttonDateType,
|
|
109
|
+
nr: nr,
|
|
110
|
+
date: date,
|
|
111
|
+
dateLimit: maxDate,
|
|
112
|
+
dateFormat: titleFormat,
|
|
113
|
+
locale: locale,
|
|
114
|
+
showButton: showNextButton,
|
|
115
|
+
onClick: onNav
|
|
116
|
+
})));
|
|
117
|
+
}
|
|
118
|
+
const navButtonDisabledHandlers = {
|
|
119
|
+
month: isSameMonth,
|
|
120
|
+
year: isSameYear
|
|
121
|
+
};
|
|
122
|
+
function CalendarNavButton(_ref3) {
|
|
123
|
+
let {
|
|
124
|
+
type,
|
|
125
|
+
dateType,
|
|
126
|
+
dateFormat,
|
|
127
|
+
nr,
|
|
128
|
+
date,
|
|
129
|
+
dateLimit,
|
|
130
|
+
locale,
|
|
131
|
+
showButton,
|
|
132
|
+
onClick,
|
|
133
|
+
onKeyDown
|
|
134
|
+
} = _ref3;
|
|
135
|
+
const translations = useTranslation().DatePicker;
|
|
136
|
+
if (!showButton) {
|
|
137
|
+
return _Fragment || (_Fragment = React.createElement(React.Fragment, null));
|
|
138
|
+
}
|
|
139
|
+
const translationKey = `${type}${capitalizeFirstLetter(dateType)}`;
|
|
140
|
+
const dateHandler = dateHandlers[dateType][type];
|
|
141
|
+
const title = translations[translationKey].replace(/%s/, formatDate(dateHandler(date, 1), {
|
|
142
|
+
locale,
|
|
143
|
+
formatOptions: dateFormat
|
|
144
|
+
}));
|
|
145
|
+
const disabled = dateLimit && navButtonDisabledHandlers[dateType](date, dateLimit);
|
|
146
|
+
const icon = type === 'prev' ? 'chevron_left' : 'chevron_right';
|
|
147
|
+
return React.createElement(Button, {
|
|
148
|
+
className: `dnb-date-picker__${type}` + (disabled ? " disabled" : ""),
|
|
149
|
+
icon: icon,
|
|
150
|
+
size: "small",
|
|
151
|
+
"aria-label": title,
|
|
152
|
+
onClick: () => onClick && !disabled && onClick({
|
|
153
|
+
nr,
|
|
154
|
+
type
|
|
155
|
+
}),
|
|
156
|
+
onKeyDown: onKeyDown
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
function capitalizeFirstLetter(value) {
|
|
160
|
+
return `${value.charAt(0).toLocaleUpperCase()}${value.slice(1)}`;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=DatePickerCalendarNavigator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePickerCalendarNavigator.js","names":["React","useCallback","useContext","addMonths","addYears","isSameMonth","isSameYear","subMonths","subYears","Button","useTranslation","DatePickerContext","formatDate","titleFormats","both","month","year","dateHandlers","prev","next","DatePickerCalendarNav","_ref","type","id","nr","date","locale","showPreviousButton","showNextButton","minDate","maxDate","views","setViews","props","link","isLinkedCalendars","selectedMonth","selectedYear","DatePicker","title","titleFormat","buttonDateType","onNav","_ref2","navigationType","handlerType","updatedViews","map","view","_objectSpread","createElement","className","CalendarNavButton","dateLimit","dateType","dateFormat","showButton","onClick","replace","formatOptions","tabIndex","navButtonDisabledHandlers","_ref3","onKeyDown","translations","_Fragment","Fragment","translationKey","capitalizeFirstLetter","dateHandler","disabled","icon","size","value","charAt","toLocaleUpperCase","slice"],"sources":["../../../../src/components/date-picker/DatePickerCalendarNavigator.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport {\n addMonths,\n addYears,\n isSameMonth,\n isSameYear,\n subMonths,\n subYears,\n} from 'date-fns'\nimport { CalendarNavigationEvent } from './DatePickerCalendar'\nimport classnames from 'classnames'\nimport Button from '../Button'\nimport { useTranslation } from '../../shared'\nimport DatePickerContext from './DatePickerContext'\nimport { InternalLocale } from '../../shared/Context'\nimport { formatDate } from './DatePickerCalc'\n\ntype CalendarNavigationDateType = 'month' | 'year'\ntype CalendarNavigationType = 'both' | CalendarNavigationDateType\n\nexport type DatePickerCalendarNavigationProps = Omit<\n React.HTMLProps<HTMLElement>,\n 'onSelect' | 'onChange'\n> & {\n type: CalendarNavigationType\n id: string\n nr?: number\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n date?: Date\n showPreviousButton?: boolean\n showNextButton?: boolean\n /**\n * To define the locale used in the calendar. Needs to be an `date-fns` \"v2\" locale object, like `import enLocale from 'date-fns/locale/en-GB'`. Defaults to `nb-NO`.\n */\n locale?: InternalLocale\n}\n\ntype TitleFormatMap = {\n // eslint-disable-next-line no-unused-vars\n [T in CalendarNavigationType]: Intl.DateTimeFormatOptions\n}\n\nconst titleFormats: TitleFormatMap = {\n both: {\n month: 'long',\n year: 'numeric',\n },\n month: { month: 'long' },\n year: { year: 'numeric' },\n}\n\ntype CalendarDateHandlers = {\n // eslint-disable-next-line no-unused-vars\n [D in CalendarNavigationDateType]: {\n // eslint-disable-next-line no-unused-vars\n [B in CalendarNavButtonType]: typeof subMonths\n }\n}\n\nconst dateHandlers: CalendarDateHandlers = {\n month: {\n prev: subMonths,\n next: addMonths,\n },\n year: {\n prev: subYears,\n next: addYears,\n },\n}\n\nexport function DatePickerCalendarNav({\n type = 'both',\n id,\n nr,\n date,\n locale,\n showPreviousButton,\n showNextButton,\n}: DatePickerCalendarNavigationProps) {\n const {\n minDate,\n maxDate,\n views,\n setViews,\n props: { link: isLinkedCalendars },\n } = useContext(DatePickerContext)\n const { selectedMonth, selectedYear } = useTranslation().DatePicker\n\n const title = type === 'year' ? selectedYear : selectedMonth\n const titleFormat = titleFormats[type]\n const buttonDateType = type === 'year' ? 'year' : 'month'\n\n const onNav = useCallback(\n ({ nr, type: navigationType }: CalendarNavigationEvent) => {\n const handlerType = type === 'year' ? 'year' : 'month'\n const updatedViews = views.map((view) => {\n if (view.nr === nr || (isLinkedCalendars && view.nr === 1)) {\n const month = dateHandlers[handlerType][navigationType](\n view.month,\n 1\n )\n\n return { ...view, month }\n }\n\n return view\n })\n setViews(updatedViews)\n },\n [type, views, setViews, isLinkedCalendars]\n )\n\n return (\n <div\n className={classnames(\n 'dnb-date-picker__header__row',\n type === 'year' && 'dnb-date-picker__header__row--year'\n )}\n >\n <div className=\"dnb-date-picker__header__nav\">\n <CalendarNavButton\n type=\"prev\"\n nr={nr}\n date={date}\n dateLimit={minDate}\n dateType={buttonDateType}\n dateFormat={titleFormat}\n locale={locale}\n showButton={showPreviousButton}\n onClick={onNav}\n />\n </div>\n <label\n id={`${id}--title`}\n className=\"dnb-date-picker__header__title dnb-no-focus\"\n title={title.replace(\n /%s/,\n formatDate(date, { locale, formatOptions: titleFormat })\n )}\n tabIndex={-1}\n >\n {formatDate(date, { locale, formatOptions: titleFormat })}\n </label>\n <div className=\"dnb-date-picker__header__nav\">\n <CalendarNavButton\n type=\"next\"\n dateType={buttonDateType}\n nr={nr}\n date={date}\n dateLimit={maxDate}\n dateFormat={titleFormat}\n locale={locale}\n showButton={showNextButton}\n onClick={onNav}\n />\n </div>\n </div>\n )\n}\n\nexport type CalendarNavButtonType = 'prev' | 'next'\n\nexport type CalendarNavButtonProps = {\n dateType: CalendarNavigationDateType\n type: CalendarNavButtonType\n nr: number\n dateFormat: Intl.DateTimeFormatOptions\n date: Date\n dateLimit: Date\n locale: InternalLocale\n showButton: boolean\n onClick: ({\n nr,\n type,\n }: {\n nr: number\n type: CalendarNavButtonProps['type']\n }) => void\n onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void\n}\n\ntype NavButtonDisabledHandlerMap = {\n // eslint-disable-next-line no-unused-vars\n [T in CalendarNavigationDateType]: typeof isSameMonth\n}\n\nconst navButtonDisabledHandlers: NavButtonDisabledHandlerMap = {\n month: isSameMonth,\n year: isSameYear,\n}\n\nfunction CalendarNavButton({\n type,\n dateType,\n dateFormat,\n nr,\n date,\n dateLimit,\n locale,\n showButton,\n onClick,\n onKeyDown,\n}: CalendarNavButtonProps) {\n const translations = useTranslation().DatePicker\n\n if (!showButton) {\n return <></>\n }\n\n const translationKey = `${type}${capitalizeFirstLetter(dateType)}`\n const dateHandler = dateHandlers[dateType][type]\n\n const title = translations[translationKey].replace(\n /%s/,\n formatDate(dateHandler(date, 1), {\n locale,\n formatOptions: dateFormat,\n })\n )\n\n const disabled =\n dateLimit && navButtonDisabledHandlers[dateType](date, dateLimit)\n\n const icon = type === 'prev' ? 'chevron_left' : 'chevron_right'\n\n return (\n <Button\n className={classnames(`dnb-date-picker__${type}`, { disabled })}\n icon={icon}\n size=\"small\"\n aria-label={title}\n onClick={() => onClick && !disabled && onClick({ nr, type })}\n onKeyDown={onKeyDown}\n />\n )\n}\n\nfunction capitalizeFirstLetter(value: string) {\n return `${value.charAt(0).toLocaleUpperCase()}${value.slice(1)}`\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ import { ContextProps } from '../../shared/Context';
|
|
|
8
8
|
import { DatePickerChangeEvent, GetReturnObjectParams, ReturnObject } from './DatePickerProvider';
|
|
9
9
|
import { DatePickerDateProps, DatePickerDates } from './hooks/useDates';
|
|
10
10
|
import { CalendarView } from './hooks/useViews';
|
|
11
|
+
import { SubmittedDates } from './hooks/useSubmittedDates';
|
|
11
12
|
export type DateType = Date | string;
|
|
12
13
|
export type DatePickerContextValues = ContextProps & DatePickerDates & {
|
|
13
14
|
props: DatePickerAllProps;
|
|
@@ -19,6 +20,8 @@ export type DatePickerContextValues = ContextProps & DatePickerDates & {
|
|
|
19
20
|
setHasClickedCalendarDay: (hasClicked: boolean) => void;
|
|
20
21
|
hoverDate?: Date;
|
|
21
22
|
setHoverDate: (date: Date) => void;
|
|
23
|
+
submittedDates: SubmittedDates;
|
|
24
|
+
setSubmittedDates: (dates: SubmittedDates) => void;
|
|
22
25
|
callOnChangeHandler: <E>(event: DatePickerChangeEvent<E>) => void;
|
|
23
26
|
hidePicker: (event: DisplayPickerEvent) => void;
|
|
24
27
|
getReturnObject: <E>(params: GetReturnObjectParams<E>) => ReturnObject<E>;
|