@mui/x-date-pickers-pro 8.0.0-alpha.1 → 8.0.0-alpha.10
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/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.d.ts +1 -1
- package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.d.ts +1 -1
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
- package/CHANGELOG.md +1903 -231
- package/DateRangeCalendar/DateRangeCalendar.js +15 -13
- package/DateRangePicker/DateRangePicker.js +1 -4
- package/DateRangePicker/DateRangePicker.types.d.ts +6 -2
- package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
- package/DateRangePicker/DateRangePickerToolbar.js +33 -41
- package/DateRangePicker/shared.d.ts +4 -3
- package/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
- package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +1 -2
- package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +4 -5
- package/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -5
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
- package/DateTimeRangePicker/shared.d.ts +6 -5
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
- package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +7 -2
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +2 -3
- package/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
- package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +2 -2
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +2 -3
- package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
- package/MultiInputDateRangeField/index.d.ts +5 -3
- package/MultiInputDateRangeField/index.js +2 -2
- package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.d.ts +6 -0
- package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +9 -4
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
- package/MultiInputDateTimeRangeField/index.d.ts +5 -3
- package/MultiInputDateTimeRangeField/index.js +2 -2
- package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.d.ts +6 -0
- package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +9 -4
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
- package/MultiInputTimeRangeField/index.d.ts +5 -3
- package/MultiInputTimeRangeField/index.js +2 -2
- package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.d.ts +6 -0
- package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
- package/README.md +8 -5
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
- package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -16
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -17
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -17
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
- package/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
- package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +2 -2
- package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -2
- package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +2 -0
- package/hooks/package.json +6 -0
- package/hooks/useMultiInputRangeField/index.d.ts +1 -0
- package/hooks/useMultiInputRangeField/index.js +1 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +17 -0
- package/{modern/internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
- package/hooks/usePickerRangePositionContext.d.ts +7 -0
- package/hooks/usePickerRangePositionContext.js +15 -0
- package/index.d.ts +2 -0
- package/index.js +4 -2
- package/internals/hooks/models/index.d.ts +1 -1
- package/internals/hooks/models/useRangePicker.d.ts +8 -11
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +8 -10
- package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +25 -16
- package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -9
- package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
- package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/internals/hooks/useRangePosition.d.ts +4 -3
- package/internals/hooks/useRangePosition.js +1 -1
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -12
- package/internals/models/dateTimeRange.d.ts +1 -6
- package/internals/models/fields.d.ts +7 -11
- package/internals/models/index.d.ts +0 -1
- package/internals/models/index.js +0 -1
- package/internals/models/managers.d.ts +3 -0
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
- package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
- package/internals/utils/createMultiInputRangeField/index.js +2 -0
- package/internals/utils/date-fields-utils.d.ts +6 -6
- package/internals/utils/date-range-manager.js +2 -1
- package/internals/utils/releaseInfo.js +1 -1
- package/internals/utils/valueManagers.d.ts +4 -3
- package/internals/utils/valueManagers.js +7 -7
- package/managers/index.d.ts +6 -0
- package/managers/index.js +3 -0
- package/managers/package.json +6 -0
- package/managers/useDateRangeManager.d.ts +15 -0
- package/managers/useDateRangeManager.js +33 -0
- package/managers/useDateTimeRangeManager.d.ts +15 -0
- package/managers/useDateTimeRangeManager.js +33 -0
- package/managers/useTimeRangeManager.d.ts +15 -0
- package/managers/useTimeRangeManager.js +31 -0
- package/models/fields.d.ts +7 -11
- package/models/index.d.ts +1 -2
- package/models/index.js +1 -2
- package/models/range.d.ts +0 -2
- package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +15 -13
- package/modern/DateRangePicker/DateRangePicker.js +1 -4
- package/modern/DateRangePicker/DateRangePickerToolbar.js +33 -41
- package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
- package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
- package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
- package/modern/MultiInputDateRangeField/index.js +2 -2
- package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
- package/modern/MultiInputDateTimeRangeField/index.js +2 -2
- package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
- package/modern/MultiInputTimeRangeField/index.js +2 -2
- package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
- package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
- package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
- package/modern/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
- package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
- package/modern/hooks/index.js +2 -0
- package/modern/hooks/useMultiInputRangeField/index.js +1 -0
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
- package/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
- package/modern/hooks/usePickerRangePositionContext.js +15 -0
- package/modern/index.js +4 -2
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
- package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
- package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/modern/internals/hooks/useRangePosition.js +1 -1
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
- package/modern/internals/models/index.js +0 -1
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
- package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
- package/modern/internals/utils/date-range-manager.js +2 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/internals/utils/valueManagers.js +7 -7
- package/modern/managers/index.js +3 -0
- package/modern/managers/useDateRangeManager.js +33 -0
- package/modern/managers/useDateTimeRangeManager.js +33 -0
- package/modern/managers/useTimeRangeManager.js +31 -0
- package/modern/models/index.js +1 -2
- package/modern/validation/validateDateRange.js +8 -0
- package/modern/validation/validateDateTimeRange.js +4 -0
- package/modern/validation/validateTimeRange.js +8 -0
- package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/node/DateRangeCalendar/DateRangeCalendar.js +14 -12
- package/node/DateRangePicker/DateRangePicker.js +1 -4
- package/node/DateRangePicker/DateRangePickerToolbar.js +31 -39
- package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
- package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +33 -31
- package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +80 -108
- package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
- package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
- package/node/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
- package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +14 -124
- package/node/MultiInputDateRangeField/index.js +3 -9
- package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +14 -124
- package/node/MultiInputDateTimeRangeField/index.js +3 -9
- package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -125
- package/node/MultiInputTimeRangeField/index.js +3 -9
- package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +22 -32
- package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
- package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +22 -32
- package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
- package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +22 -32
- package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
- package/node/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
- package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
- package/node/hooks/index.js +19 -0
- package/node/hooks/useMultiInputRangeField/index.js +12 -0
- package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
- package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
- package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
- package/node/hooks/usePickerRangePositionContext.js +22 -0
- package/node/index.js +23 -1
- package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
- package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +52 -65
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
- package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
- package/node/internals/hooks/useRangePosition.js +1 -1
- package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +16 -29
- package/node/internals/models/index.js +0 -11
- package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +143 -0
- package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
- package/node/internals/utils/date-range-manager.js +2 -1
- package/node/internals/utils/releaseInfo.js +1 -1
- package/node/internals/utils/valueManagers.js +7 -7
- package/node/managers/index.js +26 -0
- package/node/managers/useDateRangeManager.js +40 -0
- package/node/managers/useDateTimeRangeManager.js +40 -0
- package/node/managers/useTimeRangeManager.js +38 -0
- package/node/models/index.js +0 -22
- package/node/validation/validateDateRange.js +8 -0
- package/node/validation/validateDateTimeRange.js +4 -0
- package/node/validation/validateTimeRange.js +8 -0
- package/package.json +6 -6
- package/themeAugmentation/overrides.d.ts +6 -4
- package/themeAugmentation/props.d.ts +2 -2
- package/validation/validateDateRange.d.ts +9 -1
- package/validation/validateDateRange.js +8 -0
- package/validation/validateDateTimeRange.d.ts +6 -2
- package/validation/validateDateTimeRange.js +4 -0
- package/validation/validateTimeRange.d.ts +9 -1
- package/validation/validateTimeRange.js +8 -0
- package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -53
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -54
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -54
- package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -21
- package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
- package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
- package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
- package/internals/models/timeRange.d.ts +0 -6
- package/internals/models/timeRange.js +0 -1
- package/models/dateRange.d.ts +0 -7
- package/models/dateRange.js +0 -1
- package/models/multiInputRangeFieldClasses.d.ts +0 -7
- package/models/multiInputRangeFieldClasses.js +0 -1
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
- package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
- package/modern/internals/models/timeRange.js +0 -1
- package/modern/models/dateRange.js +0 -1
- package/modern/models/multiInputRangeFieldClasses.js +0 -1
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
- package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -121
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -121
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -121
- package/node/internals/models/timeRange.js +0 -5
- package/node/models/dateRange.js +0 -5
- package/node/models/multiInputRangeFieldClasses.js +0 -5
- /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
- /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
- /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
- /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
- /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
- /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
|
@@ -2,22 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["
|
|
5
|
+
const _excluded = ["className", "classes", "classes", "ampm", "hidden", "toolbarFormat", "toolbarPlaceholder", "titleId", "sx"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import clsx from 'clsx';
|
|
9
9
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
10
10
|
import composeClasses from '@mui/utils/composeClasses';
|
|
11
|
-
import { useUtils } from '@mui/x-date-pickers/internals';
|
|
11
|
+
import { useUtils, useToolbarOwnerState, DateTimePickerToolbarOverrideContext } from '@mui/x-date-pickers/internals';
|
|
12
12
|
import { usePickerContext, usePickerTranslations } from '@mui/x-date-pickers/hooks';
|
|
13
13
|
import { DateTimePickerToolbar } from '@mui/x-date-pickers/DateTimePicker';
|
|
14
14
|
import { getDateTimeRangePickerToolbarUtilityClass } from "./dateTimeRangePickerToolbarClasses.js";
|
|
15
15
|
import { calculateRangeChange } from "../internals/utils/date-range-manager.js";
|
|
16
|
+
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
16
17
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
-
const useUtilityClasses =
|
|
18
|
-
const {
|
|
19
|
-
classes
|
|
20
|
-
} = ownerState;
|
|
18
|
+
const useUtilityClasses = classes => {
|
|
21
19
|
const slots = {
|
|
22
20
|
root: ['root'],
|
|
23
21
|
startToolbar: ['startToolbar'],
|
|
@@ -39,36 +37,13 @@ const DateTimeRangePickerToolbarStart = styled(DateTimePickerToolbar, {
|
|
|
39
37
|
overridesResolver: (_, styles) => styles.startToolbar
|
|
40
38
|
})({
|
|
41
39
|
borderBottom: 'none',
|
|
42
|
-
|
|
43
|
-
props: ({
|
|
44
|
-
toolbarVariant
|
|
45
|
-
}) => toolbarVariant !== 'desktop',
|
|
46
|
-
style: {
|
|
47
|
-
padding: '12px 8px 0 12px'
|
|
48
|
-
}
|
|
49
|
-
}, {
|
|
50
|
-
props: {
|
|
51
|
-
toolbarVariant: 'desktop'
|
|
52
|
-
},
|
|
53
|
-
style: {
|
|
54
|
-
paddingBottom: 0
|
|
55
|
-
}
|
|
56
|
-
}]
|
|
40
|
+
paddingBottom: 0
|
|
57
41
|
});
|
|
58
42
|
const DateTimeRangePickerToolbarEnd = styled(DateTimePickerToolbar, {
|
|
59
43
|
name: 'MuiDateTimeRangePickerToolbar',
|
|
60
44
|
slot: 'EndToolbar',
|
|
61
45
|
overridesResolver: (_, styles) => styles.endToolbar
|
|
62
|
-
})({
|
|
63
|
-
variants: [{
|
|
64
|
-
props: ({
|
|
65
|
-
toolbarVariant
|
|
66
|
-
}) => toolbarVariant !== 'desktop',
|
|
67
|
-
style: {
|
|
68
|
-
padding: '12px 8px 12px 12px'
|
|
69
|
-
}
|
|
70
|
-
}]
|
|
71
|
-
});
|
|
46
|
+
})({});
|
|
72
47
|
const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTimeRangePickerToolbar(inProps, ref) {
|
|
73
48
|
const props = useThemeProps({
|
|
74
49
|
props: inProps,
|
|
@@ -76,15 +51,8 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
76
51
|
});
|
|
77
52
|
const utils = useUtils();
|
|
78
53
|
const {
|
|
79
|
-
value: [start, end],
|
|
80
|
-
rangePosition,
|
|
81
|
-
onRangePositionChange,
|
|
82
54
|
className,
|
|
83
|
-
|
|
84
|
-
onChange,
|
|
85
|
-
view,
|
|
86
|
-
isLandscape,
|
|
87
|
-
views,
|
|
55
|
+
classes: classesProp,
|
|
88
56
|
ampm,
|
|
89
57
|
hidden,
|
|
90
58
|
toolbarFormat,
|
|
@@ -94,11 +62,22 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
94
62
|
} = props,
|
|
95
63
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
96
64
|
const {
|
|
65
|
+
value,
|
|
66
|
+
setValue,
|
|
97
67
|
disabled,
|
|
98
|
-
readOnly
|
|
68
|
+
readOnly,
|
|
69
|
+
view,
|
|
70
|
+
setView,
|
|
71
|
+
views
|
|
99
72
|
} = usePickerContext();
|
|
73
|
+
const translations = usePickerTranslations();
|
|
74
|
+
const ownerState = useToolbarOwnerState();
|
|
75
|
+
const {
|
|
76
|
+
rangePosition,
|
|
77
|
+
setRangePosition
|
|
78
|
+
} = usePickerRangePositionContext();
|
|
79
|
+
const classes = useUtilityClasses(classesProp);
|
|
100
80
|
const commonToolbarProps = {
|
|
101
|
-
isLandscape,
|
|
102
81
|
views,
|
|
103
82
|
ampm,
|
|
104
83
|
disabled,
|
|
@@ -107,41 +86,58 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
107
86
|
toolbarFormat,
|
|
108
87
|
toolbarPlaceholder
|
|
109
88
|
};
|
|
110
|
-
const
|
|
111
|
-
const ownerState = props;
|
|
112
|
-
const classes = useUtilityClasses(ownerState);
|
|
113
|
-
const handleStartRangeViewChange = React.useCallback(newView => {
|
|
114
|
-
if (newView === 'year' || newView === 'month') {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
if (rangePosition !== 'start') {
|
|
118
|
-
onRangePositionChange('start');
|
|
119
|
-
}
|
|
120
|
-
onViewChange(newView);
|
|
121
|
-
}, [onRangePositionChange, onViewChange, rangePosition]);
|
|
122
|
-
const handleEndRangeViewChange = React.useCallback(newView => {
|
|
123
|
-
if (newView === 'year' || newView === 'month') {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
if (rangePosition !== 'end') {
|
|
127
|
-
onRangePositionChange('end');
|
|
128
|
-
}
|
|
129
|
-
onViewChange(newView);
|
|
130
|
-
}, [onRangePositionChange, onViewChange, rangePosition]);
|
|
131
|
-
const handleOnChange = React.useCallback(newDate => {
|
|
89
|
+
const wrappedSetValue = React.useCallback(newDate => {
|
|
132
90
|
const {
|
|
133
91
|
nextSelection,
|
|
134
92
|
newRange
|
|
135
93
|
} = calculateRangeChange({
|
|
136
94
|
newDate,
|
|
137
95
|
utils,
|
|
138
|
-
range:
|
|
96
|
+
range: value,
|
|
139
97
|
rangePosition,
|
|
140
98
|
allowRangeFlip: true
|
|
141
99
|
});
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
100
|
+
setRangePosition(nextSelection);
|
|
101
|
+
setValue(newRange, {
|
|
102
|
+
changeImportance: 'set'
|
|
103
|
+
});
|
|
104
|
+
}, [setValue, setRangePosition, value, rangePosition, utils]);
|
|
105
|
+
const startOverrides = React.useMemo(() => {
|
|
106
|
+
const handleStartRangeViewChange = newView => {
|
|
107
|
+
if (newView === 'year' || newView === 'month') {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (rangePosition !== 'start') {
|
|
111
|
+
setRangePosition('start');
|
|
112
|
+
}
|
|
113
|
+
setView(newView);
|
|
114
|
+
};
|
|
115
|
+
return {
|
|
116
|
+
value: value[0],
|
|
117
|
+
setValue: wrappedSetValue,
|
|
118
|
+
forceDesktopVariant: true,
|
|
119
|
+
setView: handleStartRangeViewChange,
|
|
120
|
+
view: rangePosition === 'start' ? view : null
|
|
121
|
+
};
|
|
122
|
+
}, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
|
|
123
|
+
const endOverrides = React.useMemo(() => {
|
|
124
|
+
const handleEndRangeViewChange = newView => {
|
|
125
|
+
if (newView === 'year' || newView === 'month') {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (rangePosition !== 'end') {
|
|
129
|
+
setRangePosition('end');
|
|
130
|
+
}
|
|
131
|
+
setView(newView);
|
|
132
|
+
};
|
|
133
|
+
return {
|
|
134
|
+
value: value[1],
|
|
135
|
+
setValue: wrappedSetValue,
|
|
136
|
+
forceDesktopVariant: true,
|
|
137
|
+
setView: handleEndRangeViewChange,
|
|
138
|
+
view: rangePosition === 'end' ? view : null
|
|
139
|
+
};
|
|
140
|
+
}, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
|
|
145
141
|
if (hidden) {
|
|
146
142
|
return null;
|
|
147
143
|
}
|
|
@@ -151,27 +147,23 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
151
147
|
ref: ref,
|
|
152
148
|
sx: sx
|
|
153
149
|
}, other, {
|
|
154
|
-
children: [/*#__PURE__*/_jsx(
|
|
155
|
-
value:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
className: classes.endToolbar,
|
|
172
|
-
onChange: handleOnChange,
|
|
173
|
-
titleId: titleId ? `${titleId}-end-toolbar` : undefined
|
|
174
|
-
}, commonToolbarProps))]
|
|
150
|
+
children: [/*#__PURE__*/_jsx(DateTimePickerToolbarOverrideContext.Provider, {
|
|
151
|
+
value: startOverrides,
|
|
152
|
+
children: /*#__PURE__*/_jsx(DateTimeRangePickerToolbarStart, _extends({
|
|
153
|
+
toolbarTitle: translations.start,
|
|
154
|
+
ownerState: ownerState,
|
|
155
|
+
className: classes.startToolbar,
|
|
156
|
+
titleId: titleId ? `${titleId}-start-toolbar` : undefined
|
|
157
|
+
}, commonToolbarProps))
|
|
158
|
+
}), /*#__PURE__*/_jsx(DateTimePickerToolbarOverrideContext.Provider, {
|
|
159
|
+
value: endOverrides,
|
|
160
|
+
children: /*#__PURE__*/_jsx(DateTimeRangePickerToolbarEnd, _extends({
|
|
161
|
+
toolbarTitle: translations.end,
|
|
162
|
+
ownerState: ownerState,
|
|
163
|
+
className: classes.endToolbar,
|
|
164
|
+
titleId: titleId ? `${titleId}-end-toolbar` : undefined
|
|
165
|
+
}, commonToolbarProps))
|
|
166
|
+
})]
|
|
175
167
|
}));
|
|
176
168
|
});
|
|
177
169
|
process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
@@ -190,16 +182,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
|
190
182
|
* @default `true` for Desktop, `false` for Mobile.
|
|
191
183
|
*/
|
|
192
184
|
hidden: PropTypes.bool,
|
|
193
|
-
isLandscape: PropTypes.bool.isRequired,
|
|
194
|
-
onChange: PropTypes.func.isRequired,
|
|
195
|
-
onRangePositionChange: PropTypes.func.isRequired,
|
|
196
|
-
/**
|
|
197
|
-
* Callback called when a toolbar is clicked
|
|
198
|
-
* @template TView
|
|
199
|
-
* @param {TView} view The view to open
|
|
200
|
-
*/
|
|
201
|
-
onViewChange: PropTypes.func.isRequired,
|
|
202
|
-
rangePosition: PropTypes.oneOf(['end', 'start']).isRequired,
|
|
203
185
|
/**
|
|
204
186
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
205
187
|
*/
|
|
@@ -213,16 +195,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
|
213
195
|
* Toolbar value placeholder—it is displayed when the value is empty.
|
|
214
196
|
* @default "––"
|
|
215
197
|
*/
|
|
216
|
-
toolbarPlaceholder: PropTypes.node
|
|
217
|
-
toolbarVariant: PropTypes.oneOf(['desktop', 'mobile']),
|
|
218
|
-
value: PropTypes.arrayOf(PropTypes.object).isRequired,
|
|
219
|
-
/**
|
|
220
|
-
* Currently visible picker view.
|
|
221
|
-
*/
|
|
222
|
-
view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'seconds']).isRequired,
|
|
223
|
-
/**
|
|
224
|
-
* Available views.
|
|
225
|
-
*/
|
|
226
|
-
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'seconds']).isRequired).isRequired
|
|
198
|
+
toolbarPlaceholder: PropTypes.node
|
|
227
199
|
} : void 0;
|
|
228
200
|
export { DateTimeRangePickerToolbar };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DefaultizedProps } from '@mui/x-internals/types';
|
|
3
3
|
import { LocalizedComponent } from '@mui/x-date-pickers/locales';
|
|
4
|
-
import {
|
|
4
|
+
import { BasePickerInputProps, PickerViewRendererLookup, BaseClockProps, DesktopOnlyTimePickerProps, TimeViewWithMeridiem, UseViewsOptions, DateOrTimeViewWithMeridiem, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
5
5
|
import { TimeViewRendererProps } from '@mui/x-date-pickers/timeViewRenderers';
|
|
6
6
|
import { DigitalClockSlots, DigitalClockSlotProps } from '@mui/x-date-pickers/DigitalClock';
|
|
7
7
|
import { MultiSectionDigitalClockSlots, MultiSectionDigitalClockSlotProps } from '@mui/x-date-pickers/MultiSectionDigitalClock';
|
|
@@ -11,6 +11,7 @@ import { DateRangeCalendarSlots, DateRangeCalendarSlotProps, ExportedDateRangeCa
|
|
|
11
11
|
import { DateTimeRangePickerToolbarProps, ExportedDateTimeRangePickerToolbarProps } from './DateTimeRangePickerToolbar';
|
|
12
12
|
import { DateRangeViewRendererProps } from '../dateRangeViewRenderers';
|
|
13
13
|
import { DateTimeRangePickerTabsProps, ExportedDateTimeRangePickerTabsProps } from './DateTimeRangePickerTabs';
|
|
14
|
+
import { ExportedValidateDateTimeRangeProps, ValidateDateTimeRangePropsToDefault } from '../validation/validateDateTimeRange';
|
|
14
15
|
export interface BaseDateTimeRangePickerSlots extends DateRangeCalendarSlots, DigitalClockSlots, MultiSectionDigitalClockSlots {
|
|
15
16
|
/**
|
|
16
17
|
* Tabs enabling toggling between date and time pickers.
|
|
@@ -33,10 +34,10 @@ export interface BaseDateTimeRangePickerSlotProps extends DateRangeCalendarSlotP
|
|
|
33
34
|
*/
|
|
34
35
|
toolbar?: ExportedDateTimeRangePickerToolbarProps;
|
|
35
36
|
}
|
|
36
|
-
export type DateTimeRangePickerRenderers<TView extends DateOrTimeViewWithMeridiem
|
|
37
|
+
export type DateTimeRangePickerRenderers<TView extends DateOrTimeViewWithMeridiem> = PickerViewRendererLookup<PickerRangeValue, TView, Omit<DateRangeViewRendererProps<'day'>, 'view' | 'slots' | 'slotProps'> & Omit<TimeViewRendererProps<TimeViewWithMeridiem, BaseClockProps<TimeViewWithMeridiem>>, 'view' | 'slots' | 'slotProps'> & {
|
|
37
38
|
view: TView;
|
|
38
|
-
}
|
|
39
|
-
export interface BaseDateTimeRangePickerProps extends Omit<BasePickerInputProps<PickerRangeValue, DateTimeRangePickerView, DateTimeRangeValidationError>, 'orientation' | 'views' | 'openTo'>, ExportedDateRangeCalendarProps,
|
|
39
|
+
}>;
|
|
40
|
+
export interface BaseDateTimeRangePickerProps extends Omit<BasePickerInputProps<PickerRangeValue, DateTimeRangePickerView, DateTimeRangeValidationError>, 'orientation' | 'views' | 'openTo'>, ExportedDateRangeCalendarProps, ExportedValidateDateTimeRangeProps, DesktopOnlyTimePickerProps, Partial<Pick<UseViewsOptions<PickerRangeValue, DateTimeRangePickerViewExternal>, 'openTo' | 'views'>> {
|
|
40
41
|
/**
|
|
41
42
|
* Overridable component slots.
|
|
42
43
|
* @default {}
|
|
@@ -54,7 +55,7 @@ export interface BaseDateTimeRangePickerProps extends Omit<BasePickerInputProps<
|
|
|
54
55
|
*/
|
|
55
56
|
viewRenderers?: Partial<DateTimeRangePickerRenderers<DateTimeRangePickerView>>;
|
|
56
57
|
}
|
|
57
|
-
type UseDateTimeRangePickerDefaultizedProps<Props extends BaseDateTimeRangePickerProps> = LocalizedComponent<Omit<DefaultizedProps<Props, 'openTo' | 'ampm' |
|
|
58
|
+
type UseDateTimeRangePickerDefaultizedProps<Props extends BaseDateTimeRangePickerProps> = LocalizedComponent<Omit<DefaultizedProps<Props, 'openTo' | 'ampm' | ValidateDateTimeRangePropsToDefault>, 'views'>> & {
|
|
58
59
|
shouldRenderTimeInASingleColumn: boolean;
|
|
59
60
|
views: readonly DateTimeRangePickerView[];
|
|
60
61
|
};
|
|
@@ -13,6 +13,8 @@ import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js"
|
|
|
13
13
|
import { MultiInputDateRangeField } from "../MultiInputDateRangeField/index.js";
|
|
14
14
|
import { useDesktopRangePicker } from "../internals/hooks/useDesktopRangePicker/index.js";
|
|
15
15
|
import { validateDateRange } from "../validation/index.js";
|
|
16
|
+
const emptyActions = [];
|
|
17
|
+
|
|
16
18
|
/**
|
|
17
19
|
* Demos:
|
|
18
20
|
*
|
|
@@ -32,6 +34,7 @@ const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDat
|
|
|
32
34
|
day: renderDateRangeViewCalendar
|
|
33
35
|
}, defaultizedProps.viewRenderers);
|
|
34
36
|
const props = _extends({}, defaultizedProps, {
|
|
37
|
+
closeOnSelect: defaultizedProps.closeOnSelect ?? true,
|
|
35
38
|
viewRenderers,
|
|
36
39
|
format: utils.formats.keyboardDate,
|
|
37
40
|
calendars: defaultizedProps.calendars ?? 2,
|
|
@@ -41,17 +44,19 @@ const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDat
|
|
|
41
44
|
field: MultiInputDateRangeField
|
|
42
45
|
}, defaultizedProps.slots),
|
|
43
46
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
44
|
-
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps),
|
|
45
|
-
ref
|
|
46
|
-
}),
|
|
47
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
|
|
47
48
|
toolbar: _extends({
|
|
48
49
|
hidden: true
|
|
49
|
-
}, defaultizedProps.slotProps?.toolbar)
|
|
50
|
+
}, defaultizedProps.slotProps?.toolbar),
|
|
51
|
+
actionBar: ownerState => _extends({
|
|
52
|
+
actions: emptyActions
|
|
53
|
+
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
50
54
|
})
|
|
51
55
|
});
|
|
52
56
|
const {
|
|
53
57
|
renderPicker
|
|
54
58
|
} = useDesktopRangePicker({
|
|
59
|
+
ref,
|
|
55
60
|
props,
|
|
56
61
|
valueManager: rangeValueManager,
|
|
57
62
|
valueType: 'date',
|
|
@@ -78,8 +83,8 @@ DesktopDateRangePicker.propTypes = {
|
|
|
78
83
|
calendars: PropTypes.oneOf([1, 2, 3]),
|
|
79
84
|
className: PropTypes.string,
|
|
80
85
|
/**
|
|
81
|
-
* If `true`, the
|
|
82
|
-
* @default
|
|
86
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
87
|
+
* @default true
|
|
83
88
|
*/
|
|
84
89
|
closeOnSelect: PropTypes.bool,
|
|
85
90
|
/**
|
|
@@ -167,12 +172,10 @@ DesktopDateRangePicker.propTypes = {
|
|
|
167
172
|
formatDensity: PropTypes.oneOf(['dense', 'spacious']),
|
|
168
173
|
/**
|
|
169
174
|
* Pass a ref to the `input` element.
|
|
170
|
-
* Ignored if the field has several inputs.
|
|
171
175
|
*/
|
|
172
176
|
inputRef: refType,
|
|
173
177
|
/**
|
|
174
178
|
* The label content.
|
|
175
|
-
* Ignored if the field has several inputs.
|
|
176
179
|
*/
|
|
177
180
|
label: PropTypes.node,
|
|
178
181
|
/**
|
|
@@ -198,7 +201,6 @@ DesktopDateRangePicker.propTypes = {
|
|
|
198
201
|
minDate: PropTypes.object,
|
|
199
202
|
/**
|
|
200
203
|
* Name attribute used by the `input` element in the Field.
|
|
201
|
-
* Ignored if the field has several inputs.
|
|
202
204
|
*/
|
|
203
205
|
name: PropTypes.string,
|
|
204
206
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseDesktopRangePickerSlots, UseDesktopRangePickerSlotProps, DesktopRangeOnlyPickerProps } from '../internals/hooks/useDesktopRangePicker';
|
|
3
3
|
import { BaseDateRangePickerProps, BaseDateRangePickerSlots, BaseDateRangePickerSlotProps } from '../DateRangePicker/shared';
|
|
4
|
-
export interface DesktopDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots
|
|
4
|
+
export interface DesktopDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots, 'field'> {
|
|
5
5
|
}
|
|
6
|
-
export interface DesktopDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<
|
|
6
|
+
export interface DesktopDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
|
|
7
7
|
}
|
|
8
8
|
export interface DesktopDateRangePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateRangePickerProps, DesktopRangeOnlyPickerProps {
|
|
9
9
|
/**
|
|
@@ -21,4 +21,9 @@ export interface DesktopDateRangePickerProps<TEnableAccessibleFieldDOMStructure
|
|
|
21
21
|
* @default {}
|
|
22
22
|
*/
|
|
23
23
|
slotProps?: DesktopDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
24
|
+
/**
|
|
25
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
closeOnSelect?: boolean;
|
|
24
29
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["openTo"
|
|
5
|
+
const _excluded = ["openTo"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import { isDatePickerView, isInternalTimeView, resolveDateTimeFormat, useUtils } from '@mui/x-date-pickers/internals';
|
|
@@ -22,15 +22,22 @@ import { useDateTimeRangePickerDefaultizedProps } from "../DateTimeRangePicker/s
|
|
|
22
22
|
import { MultiInputDateTimeRangeField } from "../MultiInputDateTimeRangeField/index.js";
|
|
23
23
|
import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
|
|
24
24
|
import { RANGE_VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
25
|
+
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
25
26
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
|
-
const rendererInterceptor = function
|
|
27
|
+
const rendererInterceptor = function RendererInterceptor(props) {
|
|
27
28
|
const {
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
viewRenderers,
|
|
30
|
+
popperView,
|
|
31
|
+
rendererProps
|
|
32
|
+
} = props;
|
|
33
|
+
const {
|
|
34
|
+
openTo
|
|
30
35
|
} = rendererProps,
|
|
31
36
|
otherProps = _objectWithoutPropertiesLoose(rendererProps, _excluded);
|
|
37
|
+
const {
|
|
38
|
+
rangePosition
|
|
39
|
+
} = usePickerRangePositionContext();
|
|
32
40
|
const finalProps = _extends({}, otherProps, {
|
|
33
|
-
rangePosition,
|
|
34
41
|
focusedView: null,
|
|
35
42
|
sx: [{
|
|
36
43
|
[`&.${multiSectionDigitalClockClasses.root}`]: {
|
|
@@ -43,7 +50,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
43
50
|
});
|
|
44
51
|
const isTimeViewActive = isInternalTimeView(popperView);
|
|
45
52
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
46
|
-
children: [
|
|
53
|
+
children: [viewRenderers.day?.(_extends({}, rendererProps, {
|
|
47
54
|
availableRangePositions: [rangePosition],
|
|
48
55
|
view: !isTimeViewActive ? popperView : 'day',
|
|
49
56
|
views: rendererProps.views.filter(isDatePickerView),
|
|
@@ -59,7 +66,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
59
66
|
view: isTimeViewActive ? popperView : 'hours',
|
|
60
67
|
views: finalProps.views.filter(isInternalTimeView),
|
|
61
68
|
openTo: isInternalTimeView(openTo) ? openTo : 'hours',
|
|
62
|
-
viewRenderer:
|
|
69
|
+
viewRenderer: viewRenderers[isTimeViewActive ? popperView : 'hours'],
|
|
63
70
|
sx: [{
|
|
64
71
|
gridColumn: 3
|
|
65
72
|
}, ...finalProps.sx]
|
|
@@ -92,7 +99,6 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
92
99
|
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
93
100
|
const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
|
|
94
101
|
const views = !shouldHoursRendererContainMeridiemView ? defaultizedProps.views.filter(view => view !== 'meridiem') : defaultizedProps.views;
|
|
95
|
-
const actionBarActions = defaultizedProps.shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
96
102
|
const props = _extends({}, defaultizedProps, {
|
|
97
103
|
views,
|
|
98
104
|
viewRenderers,
|
|
@@ -105,24 +111,19 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
105
111
|
layout: DesktopDateTimePickerLayout
|
|
106
112
|
}, defaultizedProps.slots),
|
|
107
113
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
108
|
-
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps),
|
|
109
|
-
ref
|
|
110
|
-
}),
|
|
114
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
|
|
111
115
|
tabs: _extends({
|
|
112
116
|
hidden: true
|
|
113
117
|
}, defaultizedProps.slotProps?.tabs),
|
|
114
118
|
toolbar: _extends({
|
|
115
|
-
hidden: true
|
|
116
|
-
|
|
117
|
-
}, defaultizedProps.slotProps?.toolbar),
|
|
118
|
-
actionBar: ownerState => _extends({
|
|
119
|
-
actions: actionBarActions
|
|
120
|
-
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
119
|
+
hidden: true
|
|
120
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
121
121
|
})
|
|
122
122
|
});
|
|
123
123
|
const {
|
|
124
124
|
renderPicker
|
|
125
125
|
} = useDesktopRangePicker({
|
|
126
|
+
ref,
|
|
126
127
|
props,
|
|
127
128
|
valueManager: rangeValueManager,
|
|
128
129
|
valueType: 'date-time',
|
|
@@ -155,8 +156,8 @@ DesktopDateTimeRangePicker.propTypes = {
|
|
|
155
156
|
calendars: PropTypes.oneOf([1, 2, 3]),
|
|
156
157
|
className: PropTypes.string,
|
|
157
158
|
/**
|
|
158
|
-
* If `true`, the
|
|
159
|
-
* @default
|
|
159
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
160
|
+
* @default false
|
|
160
161
|
*/
|
|
161
162
|
closeOnSelect: PropTypes.bool,
|
|
162
163
|
/**
|
|
@@ -249,12 +250,10 @@ DesktopDateTimeRangePicker.propTypes = {
|
|
|
249
250
|
formatDensity: PropTypes.oneOf(['dense', 'spacious']),
|
|
250
251
|
/**
|
|
251
252
|
* Pass a ref to the `input` element.
|
|
252
|
-
* Ignored if the field has several inputs.
|
|
253
253
|
*/
|
|
254
254
|
inputRef: refType,
|
|
255
255
|
/**
|
|
256
256
|
* The label content.
|
|
257
|
-
* Ignored if the field has several inputs.
|
|
258
257
|
*/
|
|
259
258
|
label: PropTypes.node,
|
|
260
259
|
/**
|
|
@@ -303,7 +302,6 @@ DesktopDateTimeRangePicker.propTypes = {
|
|
|
303
302
|
minutesStep: PropTypes.number,
|
|
304
303
|
/**
|
|
305
304
|
* Name attribute used by the `input` element in the Field.
|
|
306
|
-
* Ignored if the field has several inputs.
|
|
307
305
|
*/
|
|
308
306
|
name: PropTypes.string,
|
|
309
307
|
/**
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseDesktopRangePickerSlots, UseDesktopRangePickerSlotProps, DesktopRangeOnlyPickerProps } from '../internals/hooks/useDesktopRangePicker';
|
|
3
3
|
import { BaseDateTimeRangePickerProps, BaseDateTimeRangePickerSlots, BaseDateTimeRangePickerSlotProps } from '../DateTimeRangePicker/shared';
|
|
4
|
-
|
|
5
|
-
export interface DesktopDateTimeRangePickerSlots extends BaseDateTimeRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots<DateTimeRangePickerView>, 'field'> {
|
|
4
|
+
export interface DesktopDateTimeRangePickerSlots extends BaseDateTimeRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots, 'field'> {
|
|
6
5
|
}
|
|
7
|
-
export interface DesktopDateTimeRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimeRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<
|
|
6
|
+
export interface DesktopDateTimeRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimeRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
|
|
8
7
|
}
|
|
9
8
|
export interface DesktopDateTimeRangePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateTimeRangePickerProps, DesktopRangeOnlyPickerProps {
|
|
10
9
|
/**
|
|
@@ -42,9 +42,7 @@ const MobileDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateR
|
|
|
42
42
|
field: MultiInputDateRangeField
|
|
43
43
|
}, defaultizedProps.slots),
|
|
44
44
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
45
|
-
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps),
|
|
46
|
-
ref
|
|
47
|
-
}),
|
|
45
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
|
|
48
46
|
toolbar: _extends({
|
|
49
47
|
hidden: false
|
|
50
48
|
}, defaultizedProps.slotProps?.toolbar)
|
|
@@ -53,6 +51,7 @@ const MobileDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateR
|
|
|
53
51
|
const {
|
|
54
52
|
renderPicker
|
|
55
53
|
} = useMobileRangePicker({
|
|
54
|
+
ref,
|
|
56
55
|
props,
|
|
57
56
|
valueManager: rangeValueManager,
|
|
58
57
|
valueType: 'date',
|
|
@@ -74,8 +73,8 @@ MobileDateRangePicker.propTypes = {
|
|
|
74
73
|
autoFocus: PropTypes.bool,
|
|
75
74
|
className: PropTypes.string,
|
|
76
75
|
/**
|
|
77
|
-
* If `true`, the
|
|
78
|
-
* @default
|
|
76
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
77
|
+
* @default false
|
|
79
78
|
*/
|
|
80
79
|
closeOnSelect: PropTypes.bool,
|
|
81
80
|
/**
|
|
@@ -163,12 +162,10 @@ MobileDateRangePicker.propTypes = {
|
|
|
163
162
|
formatDensity: PropTypes.oneOf(['dense', 'spacious']),
|
|
164
163
|
/**
|
|
165
164
|
* Pass a ref to the `input` element.
|
|
166
|
-
* Ignored if the field has several inputs.
|
|
167
165
|
*/
|
|
168
166
|
inputRef: refType,
|
|
169
167
|
/**
|
|
170
168
|
* The label content.
|
|
171
|
-
* Ignored if the field has several inputs.
|
|
172
169
|
*/
|
|
173
170
|
label: PropTypes.node,
|
|
174
171
|
/**
|
|
@@ -194,7 +191,6 @@ MobileDateRangePicker.propTypes = {
|
|
|
194
191
|
minDate: PropTypes.object,
|
|
195
192
|
/**
|
|
196
193
|
* Name attribute used by the `input` element in the Field.
|
|
197
|
-
* Ignored if the field has several inputs.
|
|
198
194
|
*/
|
|
199
195
|
name: PropTypes.string,
|
|
200
196
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseMobileRangePickerSlots, UseMobileRangePickerSlotProps, MobileRangeOnlyPickerProps } from '../internals/hooks/useMobileRangePicker';
|
|
3
3
|
import { BaseDateRangePickerProps, BaseDateRangePickerSlots, BaseDateRangePickerSlotProps } from '../DateRangePicker/shared';
|
|
4
|
-
export interface MobileDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseMobileRangePickerSlots
|
|
4
|
+
export interface MobileDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseMobileRangePickerSlots, 'field'> {
|
|
5
5
|
}
|
|
6
|
-
export interface MobileDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseMobileRangePickerSlotProps<
|
|
6
|
+
export interface MobileDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
|
|
7
7
|
}
|
|
8
8
|
export interface MobileDateRangePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateRangePickerProps, MobileRangeOnlyPickerProps {
|
|
9
9
|
/**
|