@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
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PickerRangePositionContext } from "../../hooks/usePickerRangePositionContext.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Returns information about the range position of the picker that wraps the current component.
|
|
6
|
+
* If no picker wraps the current component, returns `null`.
|
|
7
|
+
*/
|
|
8
|
+
export function useNullablePickerRangePositionContext() {
|
|
9
|
+
return React.useContext(PickerRangePositionContext);
|
|
10
|
+
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["props"
|
|
3
|
+
const _excluded = ["props"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import clsx from 'clsx';
|
|
6
6
|
import { styled } from '@mui/material/styles';
|
|
7
7
|
import { PickersLayout } from '@mui/x-date-pickers/PickersLayout';
|
|
8
|
-
import { usePicker, DIALOG_WIDTH, PickerProvider } from '@mui/x-date-pickers/internals';
|
|
8
|
+
import { usePicker, DIALOG_WIDTH, PickerProvider, mergeSx } from '@mui/x-date-pickers/internals';
|
|
9
9
|
import { useRangePosition } from "../useRangePosition.js";
|
|
10
|
+
import { PickerRangePositionContext } from "../../../hooks/usePickerRangePositionContext.js";
|
|
10
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
12
|
const PickerStaticLayout = styled(PickersLayout)(({
|
|
12
13
|
theme
|
|
@@ -22,25 +23,18 @@ const PickerStaticLayout = styled(PickersLayout)(({
|
|
|
22
23
|
*/
|
|
23
24
|
export const useStaticRangePicker = _ref => {
|
|
24
25
|
let {
|
|
25
|
-
props
|
|
26
|
-
ref
|
|
26
|
+
props
|
|
27
27
|
} = _ref,
|
|
28
28
|
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
29
29
|
const {
|
|
30
30
|
localeText,
|
|
31
31
|
slots,
|
|
32
32
|
slotProps,
|
|
33
|
-
className,
|
|
34
|
-
sx,
|
|
35
33
|
displayStaticWrapperAs,
|
|
36
34
|
autoFocus
|
|
37
35
|
} = props;
|
|
36
|
+
const rangePositionResponse = useRangePosition(props);
|
|
38
37
|
const {
|
|
39
|
-
rangePosition,
|
|
40
|
-
onRangePositionChange
|
|
41
|
-
} = useRangePosition(props);
|
|
42
|
-
const {
|
|
43
|
-
layoutProps,
|
|
44
38
|
providerProps,
|
|
45
39
|
renderCurrentView
|
|
46
40
|
} = usePicker(_extends({}, pickerParams, {
|
|
@@ -48,29 +42,22 @@ export const useStaticRangePicker = _ref => {
|
|
|
48
42
|
autoFocusView: autoFocus ?? false,
|
|
49
43
|
fieldRef: undefined,
|
|
50
44
|
localeText,
|
|
51
|
-
|
|
52
|
-
rangePosition,
|
|
53
|
-
onRangePositionChange
|
|
54
|
-
},
|
|
55
|
-
wrapperVariant: displayStaticWrapperAs
|
|
45
|
+
variant: displayStaticWrapperAs
|
|
56
46
|
}));
|
|
57
47
|
const Layout = slots?.layout ?? PickerStaticLayout;
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
className: clsx(className, slotProps?.layout?.className),
|
|
70
|
-
ref: ref,
|
|
71
|
-
children: renderCurrentView()
|
|
48
|
+
const renderPicker = () => /*#__PURE__*/_jsx(PickerRangePositionContext.Provider, {
|
|
49
|
+
value: rangePositionResponse,
|
|
50
|
+
children: /*#__PURE__*/_jsx(PickerProvider, _extends({}, providerProps, {
|
|
51
|
+
children: /*#__PURE__*/_jsx(Layout, _extends({}, slotProps?.layout, {
|
|
52
|
+
slots: slots,
|
|
53
|
+
slotProps: slotProps,
|
|
54
|
+
sx: mergeSx(providerProps.contextValue.rootSx, slotProps?.layout?.sx),
|
|
55
|
+
className: clsx(providerProps.contextValue.rootClassName, slotProps?.layout?.className),
|
|
56
|
+
ref: providerProps.contextValue.rootRef,
|
|
57
|
+
children: renderCurrentView()
|
|
58
|
+
}))
|
|
72
59
|
}))
|
|
73
|
-
})
|
|
60
|
+
});
|
|
74
61
|
return {
|
|
75
62
|
renderPicker
|
|
76
63
|
};
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
|
+
const _excluded = ["slots", "slotProps", "className", "classes"];
|
|
6
|
+
import * as React from 'react';
|
|
7
|
+
import clsx from 'clsx';
|
|
8
|
+
import Stack from '@mui/material/Stack';
|
|
9
|
+
import MuiTextField from '@mui/material/TextField';
|
|
10
|
+
import Typography from '@mui/material/Typography';
|
|
11
|
+
import { styled, useThemeProps } from '@mui/material/styles';
|
|
12
|
+
import composeClasses from '@mui/utils/composeClasses';
|
|
13
|
+
import useSlotProps from '@mui/utils/useSlotProps';
|
|
14
|
+
import useForkRef from '@mui/utils/useForkRef';
|
|
15
|
+
import { cleanFieldResponse, useFieldOwnerState, useNullablePickerContext } from '@mui/x-date-pickers/internals';
|
|
16
|
+
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
17
|
+
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
18
|
+
import { useMultiInputRangeField } from "../../../hooks/useMultiInputRangeField/index.js";
|
|
19
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
+
export function createMultiInputRangeField({
|
|
21
|
+
useManager,
|
|
22
|
+
name,
|
|
23
|
+
getUtilityClass
|
|
24
|
+
}) {
|
|
25
|
+
const useUtilityClasses = classes => {
|
|
26
|
+
const slots = {
|
|
27
|
+
root: ['root'],
|
|
28
|
+
separator: ['separator']
|
|
29
|
+
};
|
|
30
|
+
return composeClasses(slots, getUtilityClass, classes);
|
|
31
|
+
};
|
|
32
|
+
const MultiInputRangeFieldRoot = styled(/*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
|
|
33
|
+
ref: ref,
|
|
34
|
+
spacing: 2,
|
|
35
|
+
direction: "row",
|
|
36
|
+
alignItems: "center"
|
|
37
|
+
}, props))), {
|
|
38
|
+
name,
|
|
39
|
+
slot: 'Root',
|
|
40
|
+
overridesResolver: (props, styles) => styles.root
|
|
41
|
+
})({});
|
|
42
|
+
const MultiInputRangeFieldSeparator = styled(Typography, {
|
|
43
|
+
name,
|
|
44
|
+
slot: 'Separator',
|
|
45
|
+
overridesResolver: (props, styles) => styles.separator
|
|
46
|
+
})({
|
|
47
|
+
lineHeight: '1.4375em' // 23px
|
|
48
|
+
});
|
|
49
|
+
const MultiInputRangeField = /*#__PURE__*/React.forwardRef(function MultiInputRangeField(props, ref) {
|
|
50
|
+
const themeProps = useThemeProps({
|
|
51
|
+
props,
|
|
52
|
+
// eslint-disable-next-line material-ui/mui-name-matches-component-name
|
|
53
|
+
name
|
|
54
|
+
});
|
|
55
|
+
const manager = useManager({
|
|
56
|
+
enableAccessibleFieldDOMStructure: props.enableAccessibleFieldDOMStructure,
|
|
57
|
+
dateSeparator: props.dateSeparator
|
|
58
|
+
});
|
|
59
|
+
const {
|
|
60
|
+
internalProps,
|
|
61
|
+
forwardedProps
|
|
62
|
+
} = useSplitFieldProps(themeProps, manager.valueType);
|
|
63
|
+
const {
|
|
64
|
+
slots,
|
|
65
|
+
slotProps,
|
|
66
|
+
className,
|
|
67
|
+
classes: classesProp
|
|
68
|
+
} = forwardedProps,
|
|
69
|
+
otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
|
|
70
|
+
const classes = useUtilityClasses(classesProp);
|
|
71
|
+
const ownerState = useFieldOwnerState(internalProps);
|
|
72
|
+
const pickerContext = useNullablePickerContext();
|
|
73
|
+
const handleRef = useForkRef(ref, pickerContext?.rootRef);
|
|
74
|
+
const Root = slots?.root ?? MultiInputRangeFieldRoot;
|
|
75
|
+
const rootProps = useSlotProps({
|
|
76
|
+
elementType: Root,
|
|
77
|
+
externalSlotProps: slotProps?.root,
|
|
78
|
+
externalForwardedProps: otherForwardedProps,
|
|
79
|
+
additionalProps: {
|
|
80
|
+
ref: handleRef
|
|
81
|
+
},
|
|
82
|
+
ownerState,
|
|
83
|
+
className: clsx(className, classes.root)
|
|
84
|
+
});
|
|
85
|
+
const startTextFieldProps = useSlotProps({
|
|
86
|
+
elementType: PickersTextField,
|
|
87
|
+
externalSlotProps: slotProps?.textField,
|
|
88
|
+
ownerState: _extends({}, ownerState, {
|
|
89
|
+
position: 'start'
|
|
90
|
+
})
|
|
91
|
+
});
|
|
92
|
+
const endTextFieldProps = useSlotProps({
|
|
93
|
+
elementType: PickersTextField,
|
|
94
|
+
externalSlotProps: slotProps?.textField,
|
|
95
|
+
ownerState: _extends({}, ownerState, {
|
|
96
|
+
position: 'end'
|
|
97
|
+
})
|
|
98
|
+
});
|
|
99
|
+
const {
|
|
100
|
+
startDate,
|
|
101
|
+
endDate,
|
|
102
|
+
enableAccessibleFieldDOMStructure
|
|
103
|
+
} = useMultiInputRangeField({
|
|
104
|
+
manager,
|
|
105
|
+
internalProps,
|
|
106
|
+
startForwardedProps: startTextFieldProps,
|
|
107
|
+
endForwardedProps: endTextFieldProps
|
|
108
|
+
});
|
|
109
|
+
const Separator = slots?.separator ?? MultiInputRangeFieldSeparator;
|
|
110
|
+
const separatorProps = useSlotProps({
|
|
111
|
+
elementType: Separator,
|
|
112
|
+
externalSlotProps: slotProps?.separator,
|
|
113
|
+
additionalProps: {
|
|
114
|
+
children: internalProps.dateSeparator ?? '–'
|
|
115
|
+
},
|
|
116
|
+
ownerState,
|
|
117
|
+
className: classes.separator
|
|
118
|
+
});
|
|
119
|
+
const {
|
|
120
|
+
textFieldProps: startDateProps
|
|
121
|
+
} = cleanFieldResponse(startDate);
|
|
122
|
+
const {
|
|
123
|
+
textFieldProps: endDateProps
|
|
124
|
+
} = cleanFieldResponse(endDate);
|
|
125
|
+
const TextField = slots?.textField ?? (enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
126
|
+
return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
|
|
127
|
+
children: [/*#__PURE__*/_jsx(TextField, _extends({
|
|
128
|
+
fullWidth: true
|
|
129
|
+
}, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
|
|
130
|
+
fullWidth: true
|
|
131
|
+
}, endDateProps))]
|
|
132
|
+
}));
|
|
133
|
+
});
|
|
134
|
+
MultiInputRangeField.fieldType = 'multi-input';
|
|
135
|
+
return MultiInputRangeField;
|
|
136
|
+
}
|
|
@@ -5,9 +5,11 @@ export function calculateRangeChange({
|
|
|
5
5
|
newDate: selectedDate,
|
|
6
6
|
rangePosition,
|
|
7
7
|
allowRangeFlip = false,
|
|
8
|
-
shouldMergeDateAndTime = false
|
|
8
|
+
shouldMergeDateAndTime = false,
|
|
9
|
+
referenceDate
|
|
9
10
|
}) {
|
|
10
|
-
const
|
|
11
|
+
const start = !utils.isValid(range[0]) ? null : range[0];
|
|
12
|
+
const end = !utils.isValid(range[1]) ? null : range[1];
|
|
11
13
|
if (shouldMergeDateAndTime && selectedDate) {
|
|
12
14
|
// If there is a date already selected, then we want to keep its time
|
|
13
15
|
if (start && rangePosition === 'start') {
|
|
@@ -17,29 +19,30 @@ export function calculateRangeChange({
|
|
|
17
19
|
selectedDate = mergeDateAndTime(utils, selectedDate, end);
|
|
18
20
|
}
|
|
19
21
|
}
|
|
22
|
+
const newSelectedDate = referenceDate && selectedDate && shouldMergeDateAndTime ? mergeDateAndTime(utils, selectedDate, referenceDate) : selectedDate;
|
|
20
23
|
if (rangePosition === 'start') {
|
|
21
24
|
const truthyResult = allowRangeFlip ? {
|
|
22
25
|
nextSelection: 'start',
|
|
23
|
-
newRange: [end,
|
|
26
|
+
newRange: [end, newSelectedDate]
|
|
24
27
|
} : {
|
|
25
28
|
nextSelection: 'end',
|
|
26
|
-
newRange: [
|
|
29
|
+
newRange: [newSelectedDate, null]
|
|
27
30
|
};
|
|
28
|
-
return Boolean(end) && utils.isAfter(
|
|
31
|
+
return Boolean(end) && utils.isAfter(newSelectedDate, end) ? truthyResult : {
|
|
29
32
|
nextSelection: 'end',
|
|
30
|
-
newRange: [
|
|
33
|
+
newRange: [newSelectedDate, end]
|
|
31
34
|
};
|
|
32
35
|
}
|
|
33
36
|
const truthyResult = allowRangeFlip ? {
|
|
34
37
|
nextSelection: 'end',
|
|
35
|
-
newRange: [
|
|
38
|
+
newRange: [newSelectedDate, start]
|
|
36
39
|
} : {
|
|
37
40
|
nextSelection: 'end',
|
|
38
|
-
newRange: [
|
|
41
|
+
newRange: [newSelectedDate, null]
|
|
39
42
|
};
|
|
40
|
-
return Boolean(start) && utils.isBeforeDay(
|
|
43
|
+
return Boolean(start) && utils.isBeforeDay(newSelectedDate, start) ? truthyResult : {
|
|
41
44
|
nextSelection: 'start',
|
|
42
|
-
newRange: [start,
|
|
45
|
+
newRange: [start, newSelectedDate]
|
|
43
46
|
};
|
|
44
47
|
}
|
|
45
48
|
export function calculateRangePreview(options) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTczODI5OTYwMDAwMA==";
|
|
4
4
|
if (process.env.NODE_ENV !== 'production') {
|
|
5
5
|
// A simple hack to set the value in the test environment (has no build step).
|
|
6
6
|
// eslint-disable-next-line no-useless-concat
|
|
@@ -12,8 +12,8 @@ export const rangeValueManager = {
|
|
|
12
12
|
referenceDate: referenceDateProp
|
|
13
13
|
} = _ref,
|
|
14
14
|
params = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
15
|
-
const shouldKeepStartDate =
|
|
16
|
-
const shouldKeepEndDate =
|
|
15
|
+
const shouldKeepStartDate = params.utils.isValid(value[0]);
|
|
16
|
+
const shouldKeepEndDate = params.utils.isValid(value[1]);
|
|
17
17
|
if (shouldKeepStartDate && shouldKeepEndDate) {
|
|
18
18
|
return value;
|
|
19
19
|
}
|
|
@@ -26,8 +26,8 @@ export const rangeValueManager = {
|
|
|
26
26
|
hasError: error => error[0] != null || error[1] != null,
|
|
27
27
|
defaultErrorState: [null, null],
|
|
28
28
|
getTimezone: (utils, value) => {
|
|
29
|
-
const timezoneStart =
|
|
30
|
-
const timezoneEnd =
|
|
29
|
+
const timezoneStart = utils.isValid(value[0]) ? utils.getTimezone(value[0]) : null;
|
|
30
|
+
const timezoneEnd = utils.isValid(value[1]) ? utils.getTimezone(value[1]) : null;
|
|
31
31
|
if (timezoneStart != null && timezoneEnd != null && timezoneStart !== timezoneEnd) {
|
|
32
32
|
throw new Error('MUI X: The timezone of the start and the end date should be the same.');
|
|
33
33
|
}
|
|
@@ -39,8 +39,8 @@ export const getRangeFieldValueManager = ({
|
|
|
39
39
|
dateSeparator = '–'
|
|
40
40
|
}) => ({
|
|
41
41
|
updateReferenceValue: (utils, value, prevReferenceValue) => {
|
|
42
|
-
const shouldKeepStartDate =
|
|
43
|
-
const shouldKeepEndDate =
|
|
42
|
+
const shouldKeepStartDate = utils.isValid(value[0]);
|
|
43
|
+
const shouldKeepEndDate = utils.isValid(value[1]);
|
|
44
44
|
if (!shouldKeepStartDate && !shouldKeepEndDate) {
|
|
45
45
|
return prevReferenceValue;
|
|
46
46
|
}
|
|
@@ -111,7 +111,7 @@ export const getRangeFieldValueManager = ({
|
|
|
111
111
|
},
|
|
112
112
|
getNewValuesFromNewActiveDate: newActiveDate => ({
|
|
113
113
|
value: updateDateInRange(newActiveDate, state.value),
|
|
114
|
-
referenceValue:
|
|
114
|
+
referenceValue: !utils.isValid(newActiveDate) ? state.referenceValue : updateDateInRange(newActiveDate, state.referenceValue)
|
|
115
115
|
})
|
|
116
116
|
};
|
|
117
117
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { getDateFieldInternalPropsDefaults } from '@mui/x-date-pickers/internals';
|
|
6
|
+
import { getRangeFieldValueManager, rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
7
|
+
import { validateDateRange } from "../validation/index.js";
|
|
8
|
+
export function useDateRangeManager(parameters = {}) {
|
|
9
|
+
const {
|
|
10
|
+
enableAccessibleFieldDOMStructure = true,
|
|
11
|
+
dateSeparator
|
|
12
|
+
} = parameters;
|
|
13
|
+
return React.useMemo(() => ({
|
|
14
|
+
valueType: 'date',
|
|
15
|
+
validator: validateDateRange,
|
|
16
|
+
internal_valueManager: rangeValueManager,
|
|
17
|
+
internal_fieldValueManager: getRangeFieldValueManager({
|
|
18
|
+
dateSeparator
|
|
19
|
+
}),
|
|
20
|
+
internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
|
|
21
|
+
internal_applyDefaultsToFieldInternalProps: ({
|
|
22
|
+
internalProps,
|
|
23
|
+
utils,
|
|
24
|
+
defaultDates
|
|
25
|
+
}) => _extends({}, internalProps, getDateFieldInternalPropsDefaults({
|
|
26
|
+
defaultDates,
|
|
27
|
+
utils,
|
|
28
|
+
internalProps
|
|
29
|
+
})),
|
|
30
|
+
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
31
|
+
internal_getOpenPickerButtonAriaLabel: () => ''
|
|
32
|
+
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
33
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { getDateTimeFieldInternalPropsDefaults } from '@mui/x-date-pickers/internals';
|
|
6
|
+
import { getRangeFieldValueManager, rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
7
|
+
import { validateDateTimeRange } from "../validation/index.js";
|
|
8
|
+
export function useDateTimeRangeManager(parameters = {}) {
|
|
9
|
+
const {
|
|
10
|
+
enableAccessibleFieldDOMStructure = true,
|
|
11
|
+
dateSeparator
|
|
12
|
+
} = parameters;
|
|
13
|
+
return React.useMemo(() => ({
|
|
14
|
+
valueType: 'date-time',
|
|
15
|
+
validator: validateDateTimeRange,
|
|
16
|
+
internal_valueManager: rangeValueManager,
|
|
17
|
+
internal_fieldValueManager: getRangeFieldValueManager({
|
|
18
|
+
dateSeparator
|
|
19
|
+
}),
|
|
20
|
+
internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
|
|
21
|
+
internal_applyDefaultsToFieldInternalProps: ({
|
|
22
|
+
internalProps,
|
|
23
|
+
utils,
|
|
24
|
+
defaultDates
|
|
25
|
+
}) => _extends({}, internalProps, getDateTimeFieldInternalPropsDefaults({
|
|
26
|
+
internalProps,
|
|
27
|
+
utils,
|
|
28
|
+
defaultDates
|
|
29
|
+
})),
|
|
30
|
+
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
31
|
+
internal_getOpenPickerButtonAriaLabel: () => ''
|
|
32
|
+
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
33
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { getTimeFieldInternalPropsDefaults } from '@mui/x-date-pickers/internals';
|
|
6
|
+
import { getRangeFieldValueManager, rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
7
|
+
import { validateTimeRange } from "../validation/index.js";
|
|
8
|
+
export function useTimeRangeManager(parameters = {}) {
|
|
9
|
+
const {
|
|
10
|
+
enableAccessibleFieldDOMStructure = true,
|
|
11
|
+
dateSeparator
|
|
12
|
+
} = parameters;
|
|
13
|
+
return React.useMemo(() => ({
|
|
14
|
+
valueType: 'time',
|
|
15
|
+
validator: validateTimeRange,
|
|
16
|
+
internal_valueManager: rangeValueManager,
|
|
17
|
+
internal_fieldValueManager: getRangeFieldValueManager({
|
|
18
|
+
dateSeparator
|
|
19
|
+
}),
|
|
20
|
+
internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
|
|
21
|
+
internal_applyDefaultsToFieldInternalProps: ({
|
|
22
|
+
internalProps,
|
|
23
|
+
utils
|
|
24
|
+
}) => _extends({}, internalProps, getTimeFieldInternalPropsDefaults({
|
|
25
|
+
utils,
|
|
26
|
+
internalProps
|
|
27
|
+
})),
|
|
28
|
+
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
29
|
+
internal_getOpenPickerButtonAriaLabel: () => ''
|
|
30
|
+
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
31
|
+
}
|
package/modern/models/index.js
CHANGED
|
@@ -9,6 +9,14 @@ import { rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
|
9
9
|
* Validation props used by the Date Range Picker, Date Range Field and Date Range Calendar components.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Validation props as received by the validateDateRange method.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Name of the props that should be defaulted before being passed to the validateDateRange method.
|
|
18
|
+
*/
|
|
19
|
+
|
|
12
20
|
export const validateDateRange = ({
|
|
13
21
|
adapter,
|
|
14
22
|
value,
|
|
@@ -9,6 +9,10 @@ import { rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
|
9
9
|
* Validation props used by the Date Time Range Picker and Date Time Range Field.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Validation props as received by the validateDateTimeRange method.
|
|
14
|
+
*/
|
|
15
|
+
|
|
12
16
|
export const validateDateTimeRange = ({
|
|
13
17
|
adapter,
|
|
14
18
|
value,
|
|
@@ -6,6 +6,14 @@ import { rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
|
6
6
|
* Validation props used by the Time Range Picker and Time Range Field.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Validation props as received by the validateTimeRange method.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Name of the props that should be defaulted before being passed to the validateTimeRange method.
|
|
15
|
+
*/
|
|
16
|
+
|
|
9
17
|
export const validateTimeRange = ({
|
|
10
18
|
adapter,
|
|
11
19
|
value,
|
|
@@ -9,4 +9,4 @@ Object.defineProperty(exports, "AdapterDateFnsJalali", {
|
|
|
9
9
|
return _AdapterDateFnsJalaliV.AdapterDateFnsJalali;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
var _AdapterDateFnsJalaliV = require("@mui/x-date-pickers/
|
|
12
|
+
var _AdapterDateFnsJalaliV = require("@mui/x-date-pickers/AdapterDateFnsJalaliV2");
|
|
@@ -32,6 +32,7 @@ var _useDragRange2 = require("./useDragRange");
|
|
|
32
32
|
var _useRangePosition = require("../internals/hooks/useRangePosition");
|
|
33
33
|
var _dimensions = require("../internals/constants/dimensions");
|
|
34
34
|
var _PickersRangeCalendarHeader = require("../PickersRangeCalendarHeader");
|
|
35
|
+
var _useNullablePickerRangePositionContext = require("../internals/hooks/useNullablePickerRangePositionContext");
|
|
35
36
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
36
37
|
const _excluded = ["value", "defaultValue", "referenceDate", "onChange", "className", "classes", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "rangePosition", "defaultRangePosition", "onRangePositionChange", "calendars", "currentMonthCalendarPosition", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber", "timezone", "availableRangePositions", "views", "view", "openTo", "onViewChange"],
|
|
37
38
|
_excluded2 = ["isDragging", "rangeDragDay", "draggingDatePosition"];
|
|
@@ -82,16 +83,16 @@ const DayCalendarForRange = InnerDayCalendarForRange;
|
|
|
82
83
|
function useDateRangeCalendarDefaultizedProps(props, name) {
|
|
83
84
|
const utils = (0, _internals.useUtils)();
|
|
84
85
|
const defaultDates = (0, _internals.useDefaultDates)();
|
|
85
|
-
const defaultReduceAnimations = (0, _internals.useDefaultReduceAnimations)();
|
|
86
86
|
const themeProps = (0, _styles.useThemeProps)({
|
|
87
87
|
props,
|
|
88
88
|
name
|
|
89
89
|
});
|
|
90
|
+
const reduceAnimations = (0, _internals.useReduceAnimations)(themeProps.reduceAnimations);
|
|
90
91
|
return (0, _extends2.default)({}, themeProps, {
|
|
91
92
|
renderLoading: themeProps.renderLoading ?? (() => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
92
93
|
children: "..."
|
|
93
94
|
})),
|
|
94
|
-
reduceAnimations
|
|
95
|
+
reduceAnimations,
|
|
95
96
|
loading: props.loading ?? false,
|
|
96
97
|
disablePast: props.disablePast ?? false,
|
|
97
98
|
disableFuture: props.disableFuture ?? false,
|
|
@@ -142,8 +143,8 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
142
143
|
reduceAnimations,
|
|
143
144
|
onMonthChange,
|
|
144
145
|
rangePosition: rangePositionProp,
|
|
145
|
-
defaultRangePosition:
|
|
146
|
-
onRangePositionChange:
|
|
146
|
+
defaultRangePosition: defaultRangePositionProp,
|
|
147
|
+
onRangePositionChange: onRangePositionChangeProp,
|
|
147
148
|
calendars,
|
|
148
149
|
currentMonthCalendarPosition = 1,
|
|
149
150
|
slots,
|
|
@@ -168,6 +169,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
168
169
|
onViewChange
|
|
169
170
|
} = props,
|
|
170
171
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
172
|
+
const rangePositionContext = (0, _useNullablePickerRangePositionContext.useNullablePickerRangePositionContext)();
|
|
171
173
|
const {
|
|
172
174
|
value,
|
|
173
175
|
handleValueChange,
|
|
@@ -176,6 +178,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
176
178
|
name: 'DateRangeCalendar',
|
|
177
179
|
timezone: timezoneProp,
|
|
178
180
|
value: valueProp,
|
|
181
|
+
referenceDate,
|
|
179
182
|
defaultValue,
|
|
180
183
|
onChange,
|
|
181
184
|
valueManager: _valueManagers.rangeValueManager
|
|
@@ -196,15 +199,15 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
196
199
|
const id = (0, _useId.default)();
|
|
197
200
|
const {
|
|
198
201
|
rangePosition,
|
|
199
|
-
|
|
202
|
+
setRangePosition
|
|
200
203
|
} = (0, _useRangePosition.useRangePosition)({
|
|
201
|
-
rangePosition: rangePositionProp,
|
|
202
|
-
defaultRangePosition:
|
|
203
|
-
onRangePositionChange:
|
|
204
|
+
rangePosition: rangePositionProp ?? rangePositionContext?.rangePosition,
|
|
205
|
+
defaultRangePosition: defaultRangePositionProp,
|
|
206
|
+
onRangePositionChange: onRangePositionChangeProp ?? rangePositionContext?.setRangePosition
|
|
204
207
|
});
|
|
205
208
|
const handleDatePositionChange = (0, _useEventCallback.default)(position => {
|
|
206
209
|
if (rangePosition !== position) {
|
|
207
|
-
|
|
210
|
+
setRangePosition(position);
|
|
208
211
|
}
|
|
209
212
|
});
|
|
210
213
|
const handleSelectedDayChange = (0, _useEventCallback.default)((newDate, selectionState, allowRangeFlip = false) => {
|
|
@@ -217,11 +220,12 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
217
220
|
range: value,
|
|
218
221
|
rangePosition,
|
|
219
222
|
allowRangeFlip,
|
|
220
|
-
shouldMergeDateAndTime: true
|
|
223
|
+
shouldMergeDateAndTime: true,
|
|
224
|
+
referenceDate
|
|
221
225
|
});
|
|
222
226
|
const isNextSectionAvailable = availableRangePositions.includes(nextSelection);
|
|
223
227
|
if (isNextSectionAvailable) {
|
|
224
|
-
|
|
228
|
+
setRangePosition(nextSelection);
|
|
225
229
|
}
|
|
226
230
|
const isFullRangeSelected = rangePosition === 'end' && (0, _dateUtils.isRangeValid)(utils, newRange);
|
|
227
231
|
setValueAndGoToNextView(newRange, isFullRangeSelected || !isNextSectionAvailable ? 'finish' : 'partial', view);
|
|
@@ -233,7 +237,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
233
237
|
|
|
234
238
|
// Range going for the start of the start day to the end of the end day.
|
|
235
239
|
// This makes sure that `isWithinRange` works with any time in the start and end day.
|
|
236
|
-
const valueDayRange = React.useMemo(() => [
|
|
240
|
+
const valueDayRange = React.useMemo(() => [!utils.isValid(value[0]) ? value[0] : utils.startOfDay(value[0]), !utils.isValid(value[1]) ? value[1] : utils.endOfDay(value[1])], [value, utils]);
|
|
237
241
|
const _useDragRange = (0, _useDragRange2.useDragRange)({
|
|
238
242
|
disableDragEditing: shouldDisableDragEditing,
|
|
239
243
|
onDrop: handleDrop,
|
|
@@ -321,7 +325,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
321
325
|
const prevValue = React.useRef(null);
|
|
322
326
|
React.useEffect(() => {
|
|
323
327
|
const date = rangePosition === 'start' ? value[0] : value[1];
|
|
324
|
-
if (!
|
|
328
|
+
if (!utils.isValid(date)) {
|
|
325
329
|
return;
|
|
326
330
|
}
|
|
327
331
|
const prevDate = rangePosition === 'start' ? prevValue.current?.[0] : prevValue.current?.[1];
|