@mui/x-date-pickers-pro 8.0.0-alpha.0 → 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 +2215 -119
- package/DateRangeCalendar/DateRangeCalendar.js +18 -14
- 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 -53
- 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 +85 -123
- 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 +10 -7
- 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 +70 -102
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +8 -10
- package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +26 -17
- package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +55 -68
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +59 -82
- 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 +18 -31
- 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.d.ts +2 -1
- package/internals/utils/date-range-manager.js +13 -10
- 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 +18 -14
- package/modern/DateRangePicker/DateRangePicker.js +1 -4
- package/modern/DateRangePicker/DateRangePickerToolbar.js +33 -53
- 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 +85 -123
- 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 +70 -102
- package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +55 -68
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +59 -82
- package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/modern/internals/hooks/useRangePosition.js +1 -1
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +18 -31
- 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 +13 -10
- 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 +17 -13
- package/node/DateRangePicker/DateRangePicker.js +1 -4
- package/node/DateRangePicker/DateRangePickerToolbar.js +31 -51
- 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 +83 -121
- 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 +70 -102
- package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +57 -70
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +59 -82
- package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
- package/node/internals/hooks/useRangePosition.js +1 -1
- package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
- 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 +13 -10
- 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 +8 -8
- 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 -111
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -111
- 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 -111
- 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 -111
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -111
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -111
- 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 -119
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -119
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -119
- 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
|
@@ -70,7 +70,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
|
|
|
70
70
|
calendars: _propTypes.default.oneOf([1, 2, 3]),
|
|
71
71
|
className: _propTypes.default.string,
|
|
72
72
|
/**
|
|
73
|
-
* If `true`, the
|
|
73
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
74
74
|
* @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
|
|
75
75
|
*/
|
|
76
76
|
closeOnSelect: _propTypes.default.bool,
|
|
@@ -165,12 +165,10 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
|
|
|
165
165
|
formatDensity: _propTypes.default.oneOf(['dense', 'spacious']),
|
|
166
166
|
/**
|
|
167
167
|
* Pass a ref to the `input` element.
|
|
168
|
-
* Ignored if the field has several inputs.
|
|
169
168
|
*/
|
|
170
169
|
inputRef: _utils.refType,
|
|
171
170
|
/**
|
|
172
171
|
* The label content.
|
|
173
|
-
* Ignored if the field has several inputs.
|
|
174
172
|
*/
|
|
175
173
|
label: _propTypes.default.node,
|
|
176
174
|
/**
|
|
@@ -196,7 +194,6 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
|
|
|
196
194
|
minDate: _propTypes.default.object,
|
|
197
195
|
/**
|
|
198
196
|
* Name attribute used by the `input` element in the Field.
|
|
199
|
-
* Ignored if the field has several inputs.
|
|
200
197
|
*/
|
|
201
198
|
name: _propTypes.default.string,
|
|
202
199
|
/**
|
|
@@ -18,12 +18,10 @@ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"
|
|
|
18
18
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
19
19
|
var _hooks = require("@mui/x-date-pickers/hooks");
|
|
20
20
|
var _dateRangePickerToolbarClasses = require("./dateRangePickerToolbarClasses");
|
|
21
|
+
var _hooks2 = require("../hooks");
|
|
21
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
-
const _excluded = ["
|
|
23
|
-
const useUtilityClasses =
|
|
24
|
-
const {
|
|
25
|
-
classes
|
|
26
|
-
} = ownerState;
|
|
23
|
+
const _excluded = ["toolbarFormat", "className", "classes"];
|
|
24
|
+
const useUtilityClasses = classes => {
|
|
27
25
|
const slots = {
|
|
28
26
|
root: ['root'],
|
|
29
27
|
container: ['container']
|
|
@@ -59,39 +57,50 @@ const DateRangePickerToolbar = exports.DateRangePickerToolbar = /*#__PURE__*/Rea
|
|
|
59
57
|
name: 'MuiDateRangePickerToolbar'
|
|
60
58
|
});
|
|
61
59
|
const {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
toolbarFormat,
|
|
66
|
-
className
|
|
60
|
+
toolbarFormat: toolbarFormatProp,
|
|
61
|
+
className,
|
|
62
|
+
classes: classesProp
|
|
67
63
|
} = props,
|
|
68
64
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
65
|
+
const {
|
|
66
|
+
value
|
|
67
|
+
} = (0, _hooks.usePickerContext)();
|
|
69
68
|
const translations = (0, _hooks.usePickerTranslations)();
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
const ownerState = (0, _internals.useToolbarOwnerState)();
|
|
70
|
+
const {
|
|
71
|
+
rangePosition,
|
|
72
|
+
setRangePosition
|
|
73
|
+
} = (0, _hooks2.usePickerRangePositionContext)();
|
|
74
|
+
const classes = useUtilityClasses(classesProp);
|
|
75
|
+
|
|
76
|
+
// This can't be a default value when spreading because it breaks the API generation.
|
|
77
|
+
const toolbarFormat = toolbarFormatProp ?? utils.formats.shortDate;
|
|
78
|
+
const formatDate = (date, fallback) => {
|
|
79
|
+
if (!utils.isValid(date)) {
|
|
80
|
+
return fallback;
|
|
81
|
+
}
|
|
82
|
+
return utils.formatByString(date, toolbarFormat);
|
|
83
|
+
};
|
|
74
84
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerToolbarRoot, (0, _extends2.default)({}, other, {
|
|
75
85
|
toolbarTitle: translations.dateRangePickerToolbarTitle,
|
|
76
|
-
isLandscape: false,
|
|
77
86
|
className: (0, _clsx.default)(classes.root, className),
|
|
78
87
|
ownerState: ownerState,
|
|
79
88
|
ref: ref,
|
|
80
89
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateRangePickerToolbarContainer, {
|
|
81
90
|
className: classes.container,
|
|
82
91
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersToolbarButton, {
|
|
83
|
-
variant:
|
|
84
|
-
value:
|
|
92
|
+
variant: value[0] == null ? 'h6' : 'h5',
|
|
93
|
+
value: formatDate(value[0], translations.start),
|
|
85
94
|
selected: rangePosition === 'start',
|
|
86
|
-
onClick: () =>
|
|
95
|
+
onClick: () => setRangePosition('start')
|
|
87
96
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
|
|
88
97
|
variant: "h5",
|
|
89
98
|
children: ["\xA0", '–', "\xA0"]
|
|
90
99
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersToolbarButton, {
|
|
91
|
-
variant:
|
|
92
|
-
value:
|
|
100
|
+
variant: value[1] == null ? 'h6' : 'h5',
|
|
101
|
+
value: formatDate(value[1], translations.end),
|
|
93
102
|
selected: rangePosition === 'end',
|
|
94
|
-
onClick: () =>
|
|
103
|
+
onClick: () => setRangePosition('end')
|
|
95
104
|
})]
|
|
96
105
|
})
|
|
97
106
|
}));
|
|
@@ -106,31 +115,11 @@ process.env.NODE_ENV !== "production" ? DateRangePickerToolbar.propTypes = {
|
|
|
106
115
|
*/
|
|
107
116
|
classes: _propTypes.default.object,
|
|
108
117
|
className: _propTypes.default.string,
|
|
109
|
-
/**
|
|
110
|
-
* If `true`, the component is disabled.
|
|
111
|
-
* When disabled, the value cannot be changed and no interaction is possible.
|
|
112
|
-
* @default false
|
|
113
|
-
*/
|
|
114
|
-
disabled: _propTypes.default.bool,
|
|
115
118
|
/**
|
|
116
119
|
* If `true`, show the toolbar even in desktop mode.
|
|
117
120
|
* @default `true` for Desktop, `false` for Mobile.
|
|
118
121
|
*/
|
|
119
122
|
hidden: _propTypes.default.bool,
|
|
120
|
-
onRangePositionChange: _propTypes.default.func.isRequired,
|
|
121
|
-
/**
|
|
122
|
-
* Callback called when a toolbar is clicked
|
|
123
|
-
* @template TView
|
|
124
|
-
* @param {TView} view The view to open
|
|
125
|
-
*/
|
|
126
|
-
onViewChange: _propTypes.default.func.isRequired,
|
|
127
|
-
rangePosition: _propTypes.default.oneOf(['end', 'start']).isRequired,
|
|
128
|
-
/**
|
|
129
|
-
* If `true`, the component is read-only.
|
|
130
|
-
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
131
|
-
* @default false
|
|
132
|
-
*/
|
|
133
|
-
readOnly: _propTypes.default.bool,
|
|
134
123
|
/**
|
|
135
124
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
136
125
|
*/
|
|
@@ -144,14 +133,5 @@ process.env.NODE_ENV !== "production" ? DateRangePickerToolbar.propTypes = {
|
|
|
144
133
|
* Toolbar value placeholder—it is displayed when the value is empty.
|
|
145
134
|
* @default "––"
|
|
146
135
|
*/
|
|
147
|
-
toolbarPlaceholder: _propTypes.default.node
|
|
148
|
-
value: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
149
|
-
/**
|
|
150
|
-
* Currently visible picker view.
|
|
151
|
-
*/
|
|
152
|
-
view: _propTypes.default.oneOf(['day']).isRequired,
|
|
153
|
-
/**
|
|
154
|
-
* Available views.
|
|
155
|
-
*/
|
|
156
|
-
views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day'])).isRequired
|
|
136
|
+
toolbarPlaceholder: _propTypes.default.node
|
|
157
137
|
} : void 0;
|
|
@@ -75,8 +75,8 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
|
|
|
75
75
|
calendars: _propTypes.default.oneOf([1, 2, 3]),
|
|
76
76
|
className: _propTypes.default.string,
|
|
77
77
|
/**
|
|
78
|
-
* If `true`, the
|
|
79
|
-
* @default
|
|
78
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
79
|
+
* @default false
|
|
80
80
|
*/
|
|
81
81
|
closeOnSelect: _propTypes.default.bool,
|
|
82
82
|
/**
|
|
@@ -175,12 +175,10 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
|
|
|
175
175
|
formatDensity: _propTypes.default.oneOf(['dense', 'spacious']),
|
|
176
176
|
/**
|
|
177
177
|
* Pass a ref to the `input` element.
|
|
178
|
-
* Ignored if the field has several inputs.
|
|
179
178
|
*/
|
|
180
179
|
inputRef: _utils.refType,
|
|
181
180
|
/**
|
|
182
181
|
* The label content.
|
|
183
|
-
* Ignored if the field has several inputs.
|
|
184
182
|
*/
|
|
185
183
|
label: _propTypes.default.node,
|
|
186
184
|
/**
|
|
@@ -229,7 +227,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
|
|
|
229
227
|
minutesStep: _propTypes.default.number,
|
|
230
228
|
/**
|
|
231
229
|
* Name attribute used by the `input` element in the Field.
|
|
232
|
-
* Ignored if the field has several inputs.
|
|
233
230
|
*/
|
|
234
231
|
name: _propTypes.default.string,
|
|
235
232
|
/**
|
|
@@ -19,6 +19,7 @@ var _hooks = require("@mui/x-date-pickers/hooks");
|
|
|
19
19
|
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
20
20
|
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
|
21
21
|
var _dateTimeRangePickerTabsClasses = require("./dateTimeRangePickerTabsClasses");
|
|
22
|
+
var _hooks2 = require("../hooks");
|
|
22
23
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
24
|
const viewToTab = (view, rangePosition) => {
|
|
24
25
|
if ((0, _internals.isDatePickerView)(view)) {
|
|
@@ -32,10 +33,7 @@ const tabToView = tab => {
|
|
|
32
33
|
}
|
|
33
34
|
return 'hours';
|
|
34
35
|
};
|
|
35
|
-
const useUtilityClasses =
|
|
36
|
-
const {
|
|
37
|
-
classes
|
|
38
|
-
} = ownerState;
|
|
36
|
+
const useUtilityClasses = classes => {
|
|
39
37
|
const slots = {
|
|
40
38
|
root: ['root'],
|
|
41
39
|
tabButton: ['tabButton'],
|
|
@@ -79,18 +77,26 @@ const DateTimeRangePickerTabs = exports.DateTimeRangePickerTabs = function DateT
|
|
|
79
77
|
});
|
|
80
78
|
const {
|
|
81
79
|
dateIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.DateRangeIcon, {}),
|
|
82
|
-
onViewChange,
|
|
83
80
|
timeIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.TimeIcon, {}),
|
|
84
|
-
view,
|
|
85
81
|
hidden = typeof window === 'undefined' || window.innerHeight < 667,
|
|
86
|
-
rangePosition,
|
|
87
|
-
onRangePositionChange,
|
|
88
82
|
className,
|
|
83
|
+
classes: classesProp,
|
|
89
84
|
sx
|
|
90
85
|
} = props;
|
|
91
86
|
const translations = (0, _hooks.usePickerTranslations)();
|
|
92
|
-
const
|
|
93
|
-
|
|
87
|
+
const {
|
|
88
|
+
ownerState
|
|
89
|
+
} = (0, _internals.usePickerPrivateContext)();
|
|
90
|
+
const {
|
|
91
|
+
view,
|
|
92
|
+
setView
|
|
93
|
+
} = (0, _hooks.usePickerContext)();
|
|
94
|
+
const classes = useUtilityClasses(classesProp);
|
|
95
|
+
const {
|
|
96
|
+
rangePosition,
|
|
97
|
+
setRangePosition
|
|
98
|
+
} = (0, _hooks2.usePickerRangePositionContext)();
|
|
99
|
+
const value = React.useMemo(() => view == null ? null : viewToTab(view, rangePosition), [view, rangePosition]);
|
|
94
100
|
const isPreviousHidden = value === 'start-date';
|
|
95
101
|
const isNextHidden = value === 'end-time';
|
|
96
102
|
const tabLabel = React.useMemo(() => {
|
|
@@ -109,26 +115,34 @@ const DateTimeRangePickerTabs = exports.DateTimeRangePickerTabs = function DateT
|
|
|
109
115
|
}, [translations.endDate, translations.endTime, translations.startDate, translations.startTime, value]);
|
|
110
116
|
const handleRangePositionChange = (0, _useEventCallback.default)(newTab => {
|
|
111
117
|
if (newTab.includes('start')) {
|
|
112
|
-
|
|
118
|
+
setRangePosition('start');
|
|
113
119
|
} else {
|
|
114
|
-
|
|
120
|
+
setRangePosition('end');
|
|
115
121
|
}
|
|
116
122
|
});
|
|
117
123
|
const changeToPreviousTab = (0, _useEventCallback.default)(() => {
|
|
118
|
-
const previousTab = tabOptions[tabOptions.indexOf(value) - 1];
|
|
119
|
-
|
|
124
|
+
const previousTab = value == null ? tabOptions[0] : tabOptions[tabOptions.indexOf(value) - 1];
|
|
125
|
+
setView(tabToView(previousTab));
|
|
120
126
|
handleRangePositionChange(previousTab);
|
|
121
127
|
});
|
|
122
128
|
const changeToNextTab = (0, _useEventCallback.default)(() => {
|
|
123
|
-
const nextTab = tabOptions[tabOptions.indexOf(value) + 1];
|
|
124
|
-
|
|
129
|
+
const nextTab = value == null ? tabOptions[0] : tabOptions[tabOptions.indexOf(value) + 1];
|
|
130
|
+
setView(tabToView(nextTab));
|
|
125
131
|
handleRangePositionChange(nextTab);
|
|
126
132
|
});
|
|
127
133
|
if (hidden) {
|
|
128
134
|
return null;
|
|
129
135
|
}
|
|
136
|
+
let startIcon;
|
|
137
|
+
if (view == null) {
|
|
138
|
+
startIcon = null;
|
|
139
|
+
} else if ((0, _internals.isDatePickerView)(view)) {
|
|
140
|
+
startIcon = dateIcon;
|
|
141
|
+
} else {
|
|
142
|
+
startIcon = timeIcon;
|
|
143
|
+
}
|
|
130
144
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateTimeRangePickerTabsRoot, {
|
|
131
|
-
ownerState:
|
|
145
|
+
ownerState: ownerState,
|
|
132
146
|
className: (0, _clsx.default)(classes.root, className),
|
|
133
147
|
sx: sx,
|
|
134
148
|
children: [!isPreviousHidden ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
@@ -139,7 +153,7 @@ const DateTimeRangePickerTabs = exports.DateTimeRangePickerTabs = function DateT
|
|
|
139
153
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimeRangePickerTabFiller, {
|
|
140
154
|
className: classes.filler
|
|
141
155
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimeRangePickerTab, {
|
|
142
|
-
startIcon:
|
|
156
|
+
startIcon: startIcon,
|
|
143
157
|
className: classes.tabButton,
|
|
144
158
|
size: "large",
|
|
145
159
|
children: tabLabel
|
|
@@ -173,14 +187,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerTabs.propTypes = {
|
|
|
173
187
|
* @default `window.innerHeight < 667` for `DesktopDateTimeRangePicker` and `MobileDateTimeRangePicker`
|
|
174
188
|
*/
|
|
175
189
|
hidden: _propTypes.default.bool,
|
|
176
|
-
onRangePositionChange: _propTypes.default.func.isRequired,
|
|
177
|
-
/**
|
|
178
|
-
* Callback called when a tab is clicked.
|
|
179
|
-
* @template TView
|
|
180
|
-
* @param {TView} view The view to open
|
|
181
|
-
*/
|
|
182
|
-
onViewChange: _propTypes.default.func.isRequired,
|
|
183
|
-
rangePosition: _propTypes.default.oneOf(['end', 'start']).isRequired,
|
|
184
190
|
/**
|
|
185
191
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
186
192
|
*/
|
|
@@ -189,9 +195,5 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerTabs.propTypes = {
|
|
|
189
195
|
* Time tab icon.
|
|
190
196
|
* @default TimeIcon
|
|
191
197
|
*/
|
|
192
|
-
timeIcon: _propTypes.default.element
|
|
193
|
-
/**
|
|
194
|
-
* Currently visible picker view.
|
|
195
|
-
*/
|
|
196
|
-
view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired
|
|
198
|
+
timeIcon: _propTypes.default.element
|
|
197
199
|
} : void 0;
|
|
@@ -10,15 +10,14 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
10
10
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
11
11
|
var _dateUtils = require("../internals/utils/date-utils");
|
|
12
12
|
var _dateRangeManager = require("../internals/utils/date-range-manager");
|
|
13
|
-
|
|
13
|
+
var _hooks = require("../hooks");
|
|
14
|
+
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className"];
|
|
14
15
|
/**
|
|
15
16
|
* @ignore - internal component.
|
|
16
17
|
*/
|
|
17
|
-
function DateTimeRangePickerTimeWrapper(props
|
|
18
|
+
function DateTimeRangePickerTimeWrapper(props) {
|
|
18
19
|
const utils = (0, _internals.useUtils)();
|
|
19
20
|
const {
|
|
20
|
-
rangePosition,
|
|
21
|
-
onRangePositionChange,
|
|
22
21
|
viewRenderer,
|
|
23
22
|
value,
|
|
24
23
|
onChange,
|
|
@@ -27,6 +26,10 @@ function DateTimeRangePickerTimeWrapper(props, ref) {
|
|
|
27
26
|
views
|
|
28
27
|
} = props,
|
|
29
28
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
29
|
+
const {
|
|
30
|
+
rangePosition,
|
|
31
|
+
setRangePosition
|
|
32
|
+
} = (0, _hooks.usePickerRangePositionContext)();
|
|
30
33
|
if (!viewRenderer) {
|
|
31
34
|
return null;
|
|
32
35
|
}
|
|
@@ -49,12 +52,11 @@ function DateTimeRangePickerTimeWrapper(props, ref) {
|
|
|
49
52
|
// reset view to the first time view and swap range position after selecting the last time view (start or end position)
|
|
50
53
|
if (selectedView === timeViews[timeViews.length - 1] && onViewChange) {
|
|
51
54
|
onViewChange(views[0]);
|
|
52
|
-
|
|
55
|
+
setRangePosition(rangePosition === 'start' ? 'end' : 'start');
|
|
53
56
|
}
|
|
54
57
|
onChange(newRange, isFullRangeSelected ? 'finish' : 'partial', selectedView);
|
|
55
58
|
};
|
|
56
59
|
return viewRenderer((0, _extends2.default)({}, other, {
|
|
57
|
-
ref,
|
|
58
60
|
views,
|
|
59
61
|
onViewChange,
|
|
60
62
|
value: currentValue,
|
|
@@ -19,12 +19,10 @@ var _hooks = require("@mui/x-date-pickers/hooks");
|
|
|
19
19
|
var _DateTimePicker = require("@mui/x-date-pickers/DateTimePicker");
|
|
20
20
|
var _dateTimeRangePickerToolbarClasses = require("./dateTimeRangePickerToolbarClasses");
|
|
21
21
|
var _dateRangeManager = require("../internals/utils/date-range-manager");
|
|
22
|
+
var _hooks2 = require("../hooks");
|
|
22
23
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
-
const _excluded = ["
|
|
24
|
-
const useUtilityClasses =
|
|
25
|
-
const {
|
|
26
|
-
classes
|
|
27
|
-
} = ownerState;
|
|
24
|
+
const _excluded = ["className", "classes", "classes", "ampm", "hidden", "toolbarFormat", "toolbarPlaceholder", "titleId", "sx"];
|
|
25
|
+
const useUtilityClasses = classes => {
|
|
28
26
|
const slots = {
|
|
29
27
|
root: ['root'],
|
|
30
28
|
startToolbar: ['startToolbar'],
|
|
@@ -46,36 +44,13 @@ const DateTimeRangePickerToolbarStart = (0, _styles.styled)(_DateTimePicker.Date
|
|
|
46
44
|
overridesResolver: (_, styles) => styles.startToolbar
|
|
47
45
|
})({
|
|
48
46
|
borderBottom: 'none',
|
|
49
|
-
|
|
50
|
-
props: ({
|
|
51
|
-
toolbarVariant
|
|
52
|
-
}) => toolbarVariant !== 'desktop',
|
|
53
|
-
style: {
|
|
54
|
-
padding: '12px 8px 0 12px'
|
|
55
|
-
}
|
|
56
|
-
}, {
|
|
57
|
-
props: {
|
|
58
|
-
toolbarVariant: 'desktop'
|
|
59
|
-
},
|
|
60
|
-
style: {
|
|
61
|
-
paddingBottom: 0
|
|
62
|
-
}
|
|
63
|
-
}]
|
|
47
|
+
paddingBottom: 0
|
|
64
48
|
});
|
|
65
49
|
const DateTimeRangePickerToolbarEnd = (0, _styles.styled)(_DateTimePicker.DateTimePickerToolbar, {
|
|
66
50
|
name: 'MuiDateTimeRangePickerToolbar',
|
|
67
51
|
slot: 'EndToolbar',
|
|
68
52
|
overridesResolver: (_, styles) => styles.endToolbar
|
|
69
|
-
})({
|
|
70
|
-
variants: [{
|
|
71
|
-
props: ({
|
|
72
|
-
toolbarVariant
|
|
73
|
-
}) => toolbarVariant !== 'desktop',
|
|
74
|
-
style: {
|
|
75
|
-
padding: '12px 8px 12px 12px'
|
|
76
|
-
}
|
|
77
|
-
}]
|
|
78
|
-
});
|
|
53
|
+
})({});
|
|
79
54
|
const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTimeRangePickerToolbar(inProps, ref) {
|
|
80
55
|
const props = (0, _styles.useThemeProps)({
|
|
81
56
|
props: inProps,
|
|
@@ -83,18 +58,9 @@ const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PUR
|
|
|
83
58
|
});
|
|
84
59
|
const utils = (0, _internals.useUtils)();
|
|
85
60
|
const {
|
|
86
|
-
value: [start, end],
|
|
87
|
-
rangePosition,
|
|
88
|
-
onRangePositionChange,
|
|
89
61
|
className,
|
|
90
|
-
|
|
91
|
-
onChange,
|
|
92
|
-
view,
|
|
93
|
-
isLandscape,
|
|
94
|
-
views,
|
|
62
|
+
classes: classesProp,
|
|
95
63
|
ampm,
|
|
96
|
-
disabled,
|
|
97
|
-
readOnly,
|
|
98
64
|
hidden,
|
|
99
65
|
toolbarFormat,
|
|
100
66
|
toolbarPlaceholder,
|
|
@@ -102,8 +68,23 @@ const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PUR
|
|
|
102
68
|
sx
|
|
103
69
|
} = props,
|
|
104
70
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
71
|
+
const {
|
|
72
|
+
value,
|
|
73
|
+
setValue,
|
|
74
|
+
disabled,
|
|
75
|
+
readOnly,
|
|
76
|
+
view,
|
|
77
|
+
setView,
|
|
78
|
+
views
|
|
79
|
+
} = (0, _hooks.usePickerContext)();
|
|
80
|
+
const translations = (0, _hooks.usePickerTranslations)();
|
|
81
|
+
const ownerState = (0, _internals.useToolbarOwnerState)();
|
|
82
|
+
const {
|
|
83
|
+
rangePosition,
|
|
84
|
+
setRangePosition
|
|
85
|
+
} = (0, _hooks2.usePickerRangePositionContext)();
|
|
86
|
+
const classes = useUtilityClasses(classesProp);
|
|
105
87
|
const commonToolbarProps = {
|
|
106
|
-
isLandscape,
|
|
107
88
|
views,
|
|
108
89
|
ampm,
|
|
109
90
|
disabled,
|
|
@@ -112,41 +93,58 @@ const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PUR
|
|
|
112
93
|
toolbarFormat,
|
|
113
94
|
toolbarPlaceholder
|
|
114
95
|
};
|
|
115
|
-
const
|
|
116
|
-
const ownerState = props;
|
|
117
|
-
const classes = useUtilityClasses(ownerState);
|
|
118
|
-
const handleStartRangeViewChange = React.useCallback(newView => {
|
|
119
|
-
if (newView === 'year' || newView === 'month') {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
if (rangePosition !== 'start') {
|
|
123
|
-
onRangePositionChange('start');
|
|
124
|
-
}
|
|
125
|
-
onViewChange(newView);
|
|
126
|
-
}, [onRangePositionChange, onViewChange, rangePosition]);
|
|
127
|
-
const handleEndRangeViewChange = React.useCallback(newView => {
|
|
128
|
-
if (newView === 'year' || newView === 'month') {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
if (rangePosition !== 'end') {
|
|
132
|
-
onRangePositionChange('end');
|
|
133
|
-
}
|
|
134
|
-
onViewChange(newView);
|
|
135
|
-
}, [onRangePositionChange, onViewChange, rangePosition]);
|
|
136
|
-
const handleOnChange = React.useCallback(newDate => {
|
|
96
|
+
const wrappedSetValue = React.useCallback(newDate => {
|
|
137
97
|
const {
|
|
138
98
|
nextSelection,
|
|
139
99
|
newRange
|
|
140
100
|
} = (0, _dateRangeManager.calculateRangeChange)({
|
|
141
101
|
newDate,
|
|
142
102
|
utils,
|
|
143
|
-
range:
|
|
103
|
+
range: value,
|
|
144
104
|
rangePosition,
|
|
145
105
|
allowRangeFlip: true
|
|
146
106
|
});
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
107
|
+
setRangePosition(nextSelection);
|
|
108
|
+
setValue(newRange, {
|
|
109
|
+
changeImportance: 'set'
|
|
110
|
+
});
|
|
111
|
+
}, [setValue, setRangePosition, value, rangePosition, utils]);
|
|
112
|
+
const startOverrides = React.useMemo(() => {
|
|
113
|
+
const handleStartRangeViewChange = newView => {
|
|
114
|
+
if (newView === 'year' || newView === 'month') {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (rangePosition !== 'start') {
|
|
118
|
+
setRangePosition('start');
|
|
119
|
+
}
|
|
120
|
+
setView(newView);
|
|
121
|
+
};
|
|
122
|
+
return {
|
|
123
|
+
value: value[0],
|
|
124
|
+
setValue: wrappedSetValue,
|
|
125
|
+
forceDesktopVariant: true,
|
|
126
|
+
setView: handleStartRangeViewChange,
|
|
127
|
+
view: rangePosition === 'start' ? view : null
|
|
128
|
+
};
|
|
129
|
+
}, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
|
|
130
|
+
const endOverrides = React.useMemo(() => {
|
|
131
|
+
const handleEndRangeViewChange = newView => {
|
|
132
|
+
if (newView === 'year' || newView === 'month') {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (rangePosition !== 'end') {
|
|
136
|
+
setRangePosition('end');
|
|
137
|
+
}
|
|
138
|
+
setView(newView);
|
|
139
|
+
};
|
|
140
|
+
return {
|
|
141
|
+
value: value[1],
|
|
142
|
+
setValue: wrappedSetValue,
|
|
143
|
+
forceDesktopVariant: true,
|
|
144
|
+
setView: handleEndRangeViewChange,
|
|
145
|
+
view: rangePosition === 'end' ? view : null
|
|
146
|
+
};
|
|
147
|
+
}, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
|
|
150
148
|
if (hidden) {
|
|
151
149
|
return null;
|
|
152
150
|
}
|
|
@@ -156,27 +154,23 @@ const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PUR
|
|
|
156
154
|
ref: ref,
|
|
157
155
|
sx: sx
|
|
158
156
|
}, other, {
|
|
159
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
160
|
-
value:
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
className: classes.endToolbar,
|
|
177
|
-
onChange: handleOnChange,
|
|
178
|
-
titleId: titleId ? `${titleId}-end-toolbar` : undefined
|
|
179
|
-
}, commonToolbarProps))]
|
|
157
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.DateTimePickerToolbarOverrideContext.Provider, {
|
|
158
|
+
value: startOverrides,
|
|
159
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimeRangePickerToolbarStart, (0, _extends2.default)({
|
|
160
|
+
toolbarTitle: translations.start,
|
|
161
|
+
ownerState: ownerState,
|
|
162
|
+
className: classes.startToolbar,
|
|
163
|
+
titleId: titleId ? `${titleId}-start-toolbar` : undefined
|
|
164
|
+
}, commonToolbarProps))
|
|
165
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.DateTimePickerToolbarOverrideContext.Provider, {
|
|
166
|
+
value: endOverrides,
|
|
167
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimeRangePickerToolbarEnd, (0, _extends2.default)({
|
|
168
|
+
toolbarTitle: translations.end,
|
|
169
|
+
ownerState: ownerState,
|
|
170
|
+
className: classes.endToolbar,
|
|
171
|
+
titleId: titleId ? `${titleId}-end-toolbar` : undefined
|
|
172
|
+
}, commonToolbarProps))
|
|
173
|
+
})]
|
|
180
174
|
}));
|
|
181
175
|
});
|
|
182
176
|
process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
@@ -190,33 +184,11 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
|
190
184
|
*/
|
|
191
185
|
classes: _propTypes.default.object,
|
|
192
186
|
className: _propTypes.default.string,
|
|
193
|
-
/**
|
|
194
|
-
* If `true`, the component is disabled.
|
|
195
|
-
* When disabled, the value cannot be changed and no interaction is possible.
|
|
196
|
-
* @default false
|
|
197
|
-
*/
|
|
198
|
-
disabled: _propTypes.default.bool,
|
|
199
187
|
/**
|
|
200
188
|
* If `true`, show the toolbar even in desktop mode.
|
|
201
189
|
* @default `true` for Desktop, `false` for Mobile.
|
|
202
190
|
*/
|
|
203
191
|
hidden: _propTypes.default.bool,
|
|
204
|
-
isLandscape: _propTypes.default.bool.isRequired,
|
|
205
|
-
onChange: _propTypes.default.func.isRequired,
|
|
206
|
-
onRangePositionChange: _propTypes.default.func.isRequired,
|
|
207
|
-
/**
|
|
208
|
-
* Callback called when a toolbar is clicked
|
|
209
|
-
* @template TView
|
|
210
|
-
* @param {TView} view The view to open
|
|
211
|
-
*/
|
|
212
|
-
onViewChange: _propTypes.default.func.isRequired,
|
|
213
|
-
rangePosition: _propTypes.default.oneOf(['end', 'start']).isRequired,
|
|
214
|
-
/**
|
|
215
|
-
* If `true`, the component is read-only.
|
|
216
|
-
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
217
|
-
* @default false
|
|
218
|
-
*/
|
|
219
|
-
readOnly: _propTypes.default.bool,
|
|
220
192
|
/**
|
|
221
193
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
222
194
|
*/
|
|
@@ -230,15 +202,5 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
|
230
202
|
* Toolbar value placeholder—it is displayed when the value is empty.
|
|
231
203
|
* @default "––"
|
|
232
204
|
*/
|
|
233
|
-
toolbarPlaceholder: _propTypes.default.node
|
|
234
|
-
toolbarVariant: _propTypes.default.oneOf(['desktop', 'mobile']),
|
|
235
|
-
value: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
236
|
-
/**
|
|
237
|
-
* Currently visible picker view.
|
|
238
|
-
*/
|
|
239
|
-
view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'seconds']).isRequired,
|
|
240
|
-
/**
|
|
241
|
-
* Available views.
|
|
242
|
-
*/
|
|
243
|
-
views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'seconds']).isRequired).isRequired
|
|
205
|
+
toolbarPlaceholder: _propTypes.default.node
|
|
244
206
|
} : void 0;
|