@mui/x-date-pickers-pro 8.0.0-alpha.6 → 8.0.0-alpha.8
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 +242 -1
- package/DateRangeCalendar/DateRangeCalendar.js +12 -10
- package/DateRangePicker/DateRangePicker.js +1 -1
- package/DateRangePicker/DateRangePicker.types.d.ts +5 -0
- package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
- package/DateRangePicker/DateRangePickerToolbar.js +27 -19
- package/DateRangePicker/shared.d.ts +1 -1
- package/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
- package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +3 -4
- package/DateTimeRangePicker/DateTimeRangePickerTabs.js +10 -9
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -3
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +29 -31
- package/DateTimeRangePicker/shared.d.ts +2 -2
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
- package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +5 -0
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
- package/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
- package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
- 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 +12 -116
- 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 +13 -117
- 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/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
- package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -17
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -18
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -18
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
- 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/{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 +6 -8
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +40 -67
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +3 -5
- package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +18 -9
- package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +33 -56
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +3 -5
- package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
- package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/internals/hooks/useRangePosition.d.ts +2 -2
- package/internals/hooks/useRangePosition.js +1 -1
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
- package/internals/models/dateTimeRange.d.ts +1 -6
- package/internals/models/fields.d.ts +1 -2
- 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 +133 -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-range-manager.js +2 -1
- package/internals/utils/releaseInfo.js +1 -1
- 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 +1 -2
- package/models/index.d.ts +0 -2
- package/models/index.js +0 -2
- package/models/range.d.ts +0 -1
- package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +12 -10
- package/modern/DateRangePicker/DateRangePicker.js +1 -1
- package/modern/DateRangePicker/DateRangePickerToolbar.js +27 -19
- package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
- package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +10 -9
- package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +29 -31
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
- package/modern/MultiInputDateRangeField/index.js +2 -2
- package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
- package/modern/MultiInputDateTimeRangeField/index.js +2 -2
- package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
- package/modern/MultiInputTimeRangeField/index.js +2 -2
- package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
- package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
- package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
- 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/modern/{internals/hooks/useMultiInputFieldSelectedSections.js → 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 +40 -67
- package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +33 -56
- package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/modern/internals/hooks/useRangePosition.js +1 -1
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
- package/modern/internals/models/index.js +0 -1
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
- package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
- package/modern/internals/utils/date-range-manager.js +2 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/internals/utils/valueManagers.js +7 -7
- package/modern/managers/index.js +3 -0
- package/modern/managers/useDateRangeManager.js +33 -0
- package/modern/managers/useDateTimeRangeManager.js +33 -0
- package/modern/managers/useTimeRangeManager.js +31 -0
- package/modern/models/index.js +0 -2
- package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/node/DateRangeCalendar/DateRangeCalendar.js +12 -10
- package/node/DateRangePicker/DateRangePicker.js +1 -1
- package/node/DateRangePicker/DateRangePickerToolbar.js +26 -18
- package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
- package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +10 -9
- package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +29 -31
- package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
- package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
- package/node/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +11 -119
- package/node/MultiInputDateRangeField/index.js +3 -9
- package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +11 -119
- package/node/MultiInputDateTimeRangeField/index.js +3 -9
- package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +12 -120
- package/node/MultiInputTimeRangeField/index.js +3 -9
- package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +19 -29
- package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
- package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +19 -29
- package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
- package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +19 -29
- package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
- 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 +39 -66
- package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +41 -54
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +32 -55
- package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
- package/node/internals/hooks/useRangePosition.js +1 -1
- package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
- package/node/internals/models/index.js +0 -11
- package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +140 -0
- package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
- package/node/internals/utils/date-range-manager.js +2 -1
- package/node/internals/utils/releaseInfo.js +1 -1
- package/node/internals/utils/valueManagers.js +7 -7
- package/node/managers/index.js +26 -0
- package/node/managers/useDateRangeManager.js +40 -0
- package/node/managers/useDateTimeRangeManager.js +40 -0
- package/node/managers/useTimeRangeManager.js +38 -0
- package/node/models/index.js +0 -22
- package/package.json +5 -5
- package/themeAugmentation/overrides.d.ts +6 -4
- package/themeAugmentation/props.d.ts +2 -2
- package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -55
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -56
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -56
- package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -20
- package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
- package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
- package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
- package/internals/models/timeRange.d.ts +0 -6
- package/internals/models/timeRange.js +0 -1
- package/models/dateRange.d.ts +0 -7
- package/models/dateRange.js +0 -1
- package/models/multiInputRangeFieldClasses.d.ts +0 -7
- package/models/multiInputRangeFieldClasses.js +0 -1
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
- package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
- package/modern/internals/models/timeRange.js +0 -1
- package/modern/models/dateRange.js +0 -1
- package/modern/models/multiInputRangeFieldClasses.js +0 -1
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
- package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -121
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -121
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -121
- package/node/internals/models/timeRange.js +0 -5
- package/node/models/dateRange.js +0 -5
- package/node/models/multiInputRangeFieldClasses.js +0 -5
- /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
- /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
- /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
- /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
- /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
- /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { DefaultizedProps } from '@mui/x-internals/types';
|
|
3
2
|
import { PickerSelectionState, PickerViewRenderer, TimeViewWithMeridiem, BaseClockProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
view:
|
|
7
|
-
|
|
8
|
-
views: readonly TView[];
|
|
3
|
+
export type DateTimeRangePickerTimeWrapperProps<TComponentProps extends DefaultizedProps<Omit<BaseClockProps<TimeViewWithMeridiem>, 'value' | 'defaultValue' | 'onChange'>, 'views'>> = Omit<TComponentProps, 'views' | 'view' | 'onViewChange' | 'value' | 'defaultValue' | 'onChange'> & {
|
|
4
|
+
view: TimeViewWithMeridiem;
|
|
5
|
+
onViewChange?: (view: TimeViewWithMeridiem) => void;
|
|
6
|
+
views: readonly TimeViewWithMeridiem[];
|
|
9
7
|
value?: PickerRangeValue;
|
|
10
8
|
defaultValue?: PickerRangeValue;
|
|
11
|
-
onChange?: (value: PickerRangeValue, selectionState: PickerSelectionState, selectedView:
|
|
12
|
-
viewRenderer?: PickerViewRenderer<PickerRangeValue,
|
|
13
|
-
openTo?:
|
|
9
|
+
onChange?: (value: PickerRangeValue, selectionState: PickerSelectionState, selectedView: TimeViewWithMeridiem) => void;
|
|
10
|
+
viewRenderer?: PickerViewRenderer<PickerRangeValue, TComponentProps> | null;
|
|
11
|
+
openTo?: TimeViewWithMeridiem;
|
|
14
12
|
};
|
|
15
13
|
/**
|
|
16
14
|
* @ignore - internal component.
|
|
17
15
|
*/
|
|
18
|
-
declare function DateTimeRangePickerTimeWrapper<
|
|
16
|
+
declare function DateTimeRangePickerTimeWrapper<TComponentProps extends DefaultizedProps<Omit<BaseClockProps<TimeViewWithMeridiem>, 'value' | 'defaultValue' | 'onChange'>, 'views'>>(props: DateTimeRangePickerTimeWrapperProps<TComponentProps>): import("react").ReactNode;
|
|
19
17
|
export { DateTimeRangePickerTimeWrapper };
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["
|
|
3
|
+
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className"];
|
|
4
4
|
import { isInternalTimeView, useUtils } from '@mui/x-date-pickers/internals';
|
|
5
5
|
import { isRangeValid } from "../internals/utils/date-utils.js";
|
|
6
6
|
import { calculateRangeChange } from "../internals/utils/date-range-manager.js";
|
|
7
|
+
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
7
8
|
/**
|
|
8
9
|
* @ignore - internal component.
|
|
9
10
|
*/
|
|
10
|
-
function DateTimeRangePickerTimeWrapper(props
|
|
11
|
+
function DateTimeRangePickerTimeWrapper(props) {
|
|
11
12
|
const utils = useUtils();
|
|
12
13
|
const {
|
|
13
|
-
rangePosition,
|
|
14
|
-
onRangePositionChange,
|
|
15
14
|
viewRenderer,
|
|
16
15
|
value,
|
|
17
16
|
onChange,
|
|
@@ -20,6 +19,10 @@ function DateTimeRangePickerTimeWrapper(props, ref) {
|
|
|
20
19
|
views
|
|
21
20
|
} = props,
|
|
22
21
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
22
|
+
const {
|
|
23
|
+
rangePosition,
|
|
24
|
+
setRangePosition
|
|
25
|
+
} = usePickerRangePositionContext();
|
|
23
26
|
if (!viewRenderer) {
|
|
24
27
|
return null;
|
|
25
28
|
}
|
|
@@ -42,12 +45,11 @@ function DateTimeRangePickerTimeWrapper(props, ref) {
|
|
|
42
45
|
// reset view to the first time view and swap range position after selecting the last time view (start or end position)
|
|
43
46
|
if (selectedView === timeViews[timeViews.length - 1] && onViewChange) {
|
|
44
47
|
onViewChange(views[0]);
|
|
45
|
-
|
|
48
|
+
setRangePosition(rangePosition === 'start' ? 'end' : 'start');
|
|
46
49
|
}
|
|
47
50
|
onChange(newRange, isFullRangeSelected ? 'finish' : 'partial', selectedView);
|
|
48
51
|
};
|
|
49
52
|
return viewRenderer(_extends({}, other, {
|
|
50
|
-
ref,
|
|
51
53
|
views,
|
|
52
54
|
onViewChange,
|
|
53
55
|
value: currentValue,
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { BaseToolbarProps, ExportedBaseToolbarProps
|
|
3
|
-
import { UseRangePositionResponse } from '../internals/hooks/useRangePosition';
|
|
2
|
+
import { BaseToolbarProps, ExportedBaseToolbarProps } from '@mui/x-date-pickers/internals';
|
|
4
3
|
import { DateTimeRangePickerToolbarClasses } from './dateTimeRangePickerToolbarClasses';
|
|
5
|
-
export interface DateTimeRangePickerToolbarProps extends BaseToolbarProps
|
|
4
|
+
export interface DateTimeRangePickerToolbarProps extends BaseToolbarProps, ExportedDateTimeRangePickerToolbarProps {
|
|
6
5
|
ampm?: boolean;
|
|
7
6
|
}
|
|
8
7
|
export interface ExportedDateTimeRangePickerToolbarProps extends ExportedBaseToolbarProps {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["
|
|
5
|
+
const _excluded = ["className", "classes", "classes", "ampm", "hidden", "toolbarFormat", "toolbarPlaceholder", "titleId", "sx"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import clsx from 'clsx';
|
|
@@ -13,6 +13,7 @@ import { usePickerContext, usePickerTranslations } from '@mui/x-date-pickers/hoo
|
|
|
13
13
|
import { DateTimePickerToolbar } from '@mui/x-date-pickers/DateTimePicker';
|
|
14
14
|
import { getDateTimeRangePickerToolbarUtilityClass } from "./dateTimeRangePickerToolbarClasses.js";
|
|
15
15
|
import { calculateRangeChange } from "../internals/utils/date-range-manager.js";
|
|
16
|
+
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
16
17
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
18
|
const useUtilityClasses = classes => {
|
|
18
19
|
const slots = {
|
|
@@ -50,13 +51,8 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
50
51
|
});
|
|
51
52
|
const utils = useUtils();
|
|
52
53
|
const {
|
|
53
|
-
value: [start, end],
|
|
54
|
-
rangePosition,
|
|
55
|
-
onRangePositionChange,
|
|
56
54
|
className,
|
|
57
55
|
classes: classesProp,
|
|
58
|
-
onChange,
|
|
59
|
-
isLandscape,
|
|
60
56
|
ampm,
|
|
61
57
|
hidden,
|
|
62
58
|
toolbarFormat,
|
|
@@ -66,17 +62,22 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
66
62
|
} = props,
|
|
67
63
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
68
64
|
const {
|
|
65
|
+
value,
|
|
66
|
+
setValue,
|
|
69
67
|
disabled,
|
|
70
68
|
readOnly,
|
|
71
69
|
view,
|
|
72
|
-
|
|
70
|
+
setView,
|
|
73
71
|
views
|
|
74
72
|
} = usePickerContext();
|
|
75
73
|
const translations = usePickerTranslations();
|
|
76
74
|
const ownerState = useToolbarOwnerState();
|
|
75
|
+
const {
|
|
76
|
+
rangePosition,
|
|
77
|
+
setRangePosition
|
|
78
|
+
} = usePickerRangePositionContext();
|
|
77
79
|
const classes = useUtilityClasses(classesProp);
|
|
78
80
|
const commonToolbarProps = {
|
|
79
|
-
isLandscape,
|
|
80
81
|
views,
|
|
81
82
|
ampm,
|
|
82
83
|
disabled,
|
|
@@ -85,52 +86,58 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
85
86
|
toolbarFormat,
|
|
86
87
|
toolbarPlaceholder
|
|
87
88
|
};
|
|
88
|
-
const
|
|
89
|
+
const wrappedSetValue = React.useCallback(newDate => {
|
|
89
90
|
const {
|
|
90
91
|
nextSelection,
|
|
91
92
|
newRange
|
|
92
93
|
} = calculateRangeChange({
|
|
93
94
|
newDate,
|
|
94
95
|
utils,
|
|
95
|
-
range:
|
|
96
|
+
range: value,
|
|
96
97
|
rangePosition,
|
|
97
98
|
allowRangeFlip: true
|
|
98
99
|
});
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
setRangePosition(nextSelection);
|
|
101
|
+
setValue(newRange, {
|
|
102
|
+
changeImportance: 'set'
|
|
103
|
+
});
|
|
104
|
+
}, [setValue, setRangePosition, value, rangePosition, utils]);
|
|
102
105
|
const startOverrides = React.useMemo(() => {
|
|
103
106
|
const handleStartRangeViewChange = newView => {
|
|
104
107
|
if (newView === 'year' || newView === 'month') {
|
|
105
108
|
return;
|
|
106
109
|
}
|
|
107
110
|
if (rangePosition !== 'start') {
|
|
108
|
-
|
|
111
|
+
setRangePosition('start');
|
|
109
112
|
}
|
|
110
|
-
|
|
113
|
+
setView(newView);
|
|
111
114
|
};
|
|
112
115
|
return {
|
|
116
|
+
value: value[0],
|
|
117
|
+
setValue: wrappedSetValue,
|
|
113
118
|
forceDesktopVariant: true,
|
|
114
|
-
|
|
119
|
+
setView: handleStartRangeViewChange,
|
|
115
120
|
view: rangePosition === 'start' ? view : null
|
|
116
121
|
};
|
|
117
|
-
}, [rangePosition, view,
|
|
122
|
+
}, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
|
|
118
123
|
const endOverrides = React.useMemo(() => {
|
|
119
124
|
const handleEndRangeViewChange = newView => {
|
|
120
125
|
if (newView === 'year' || newView === 'month') {
|
|
121
126
|
return;
|
|
122
127
|
}
|
|
123
128
|
if (rangePosition !== 'end') {
|
|
124
|
-
|
|
129
|
+
setRangePosition('end');
|
|
125
130
|
}
|
|
126
|
-
|
|
131
|
+
setView(newView);
|
|
127
132
|
};
|
|
128
133
|
return {
|
|
134
|
+
value: value[1],
|
|
135
|
+
setValue: wrappedSetValue,
|
|
129
136
|
forceDesktopVariant: true,
|
|
130
|
-
|
|
137
|
+
setView: handleEndRangeViewChange,
|
|
131
138
|
view: rangePosition === 'end' ? view : null
|
|
132
139
|
};
|
|
133
|
-
}, [rangePosition, view,
|
|
140
|
+
}, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
|
|
134
141
|
if (hidden) {
|
|
135
142
|
return null;
|
|
136
143
|
}
|
|
@@ -143,21 +150,17 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
143
150
|
children: [/*#__PURE__*/_jsx(DateTimePickerToolbarOverrideContext.Provider, {
|
|
144
151
|
value: startOverrides,
|
|
145
152
|
children: /*#__PURE__*/_jsx(DateTimeRangePickerToolbarStart, _extends({
|
|
146
|
-
value: start,
|
|
147
153
|
toolbarTitle: translations.start,
|
|
148
154
|
ownerState: ownerState,
|
|
149
155
|
className: classes.startToolbar,
|
|
150
|
-
onChange: handleOnChange,
|
|
151
156
|
titleId: titleId ? `${titleId}-start-toolbar` : undefined
|
|
152
157
|
}, commonToolbarProps))
|
|
153
158
|
}), /*#__PURE__*/_jsx(DateTimePickerToolbarOverrideContext.Provider, {
|
|
154
159
|
value: endOverrides,
|
|
155
160
|
children: /*#__PURE__*/_jsx(DateTimeRangePickerToolbarEnd, _extends({
|
|
156
|
-
value: end,
|
|
157
161
|
toolbarTitle: translations.end,
|
|
158
162
|
ownerState: ownerState,
|
|
159
163
|
className: classes.endToolbar,
|
|
160
|
-
onChange: handleOnChange,
|
|
161
164
|
titleId: titleId ? `${titleId}-end-toolbar` : undefined
|
|
162
165
|
}, commonToolbarProps))
|
|
163
166
|
})]
|
|
@@ -179,10 +182,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
|
179
182
|
* @default `true` for Desktop, `false` for Mobile.
|
|
180
183
|
*/
|
|
181
184
|
hidden: PropTypes.bool,
|
|
182
|
-
isLandscape: PropTypes.bool.isRequired,
|
|
183
|
-
onChange: PropTypes.func.isRequired,
|
|
184
|
-
onRangePositionChange: PropTypes.func.isRequired,
|
|
185
|
-
rangePosition: PropTypes.oneOf(['end', 'start']).isRequired,
|
|
186
185
|
/**
|
|
187
186
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
188
187
|
*/
|
|
@@ -196,7 +195,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
|
196
195
|
* Toolbar value placeholder—it is displayed when the value is empty.
|
|
197
196
|
* @default "––"
|
|
198
197
|
*/
|
|
199
|
-
toolbarPlaceholder: PropTypes.node
|
|
200
|
-
value: PropTypes.arrayOf(PropTypes.object).isRequired
|
|
198
|
+
toolbarPlaceholder: PropTypes.node
|
|
201
199
|
} : void 0;
|
|
202
200
|
export { DateTimeRangePickerToolbar };
|
|
@@ -34,9 +34,9 @@ export interface BaseDateTimeRangePickerSlotProps extends DateRangeCalendarSlotP
|
|
|
34
34
|
*/
|
|
35
35
|
toolbar?: ExportedDateTimeRangePickerToolbarProps;
|
|
36
36
|
}
|
|
37
|
-
export type DateTimeRangePickerRenderers<TView extends DateOrTimeViewWithMeridiem
|
|
37
|
+
export type DateTimeRangePickerRenderers<TView extends DateOrTimeViewWithMeridiem> = PickerViewRendererLookup<PickerRangeValue, TView, Omit<DateRangeViewRendererProps<'day'>, 'view' | 'slots' | 'slotProps'> & Omit<TimeViewRendererProps<TimeViewWithMeridiem, BaseClockProps<TimeViewWithMeridiem>>, 'view' | 'slots' | 'slotProps'> & {
|
|
38
38
|
view: TView;
|
|
39
|
-
}
|
|
39
|
+
}>;
|
|
40
40
|
export interface BaseDateTimeRangePickerProps extends Omit<BasePickerInputProps<PickerRangeValue, DateTimeRangePickerView, DateTimeRangeValidationError>, 'orientation' | 'views' | 'openTo'>, ExportedDateRangeCalendarProps, ExportedValidateDateTimeRangeProps, DesktopOnlyTimePickerProps, Partial<Pick<UseViewsOptions<PickerRangeValue, DateTimeRangePickerViewExternal>, 'openTo' | 'views'>> {
|
|
41
41
|
/**
|
|
42
42
|
* Overridable component slots.
|
|
@@ -13,6 +13,8 @@ import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js"
|
|
|
13
13
|
import { MultiInputDateRangeField } from "../MultiInputDateRangeField/index.js";
|
|
14
14
|
import { useDesktopRangePicker } from "../internals/hooks/useDesktopRangePicker/index.js";
|
|
15
15
|
import { validateDateRange } from "../validation/index.js";
|
|
16
|
+
const emptyActions = [];
|
|
17
|
+
|
|
16
18
|
/**
|
|
17
19
|
* Demos:
|
|
18
20
|
*
|
|
@@ -32,6 +34,7 @@ const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDat
|
|
|
32
34
|
day: renderDateRangeViewCalendar
|
|
33
35
|
}, defaultizedProps.viewRenderers);
|
|
34
36
|
const props = _extends({}, defaultizedProps, {
|
|
37
|
+
closeOnSelect: defaultizedProps.closeOnSelect ?? true,
|
|
35
38
|
viewRenderers,
|
|
36
39
|
format: utils.formats.keyboardDate,
|
|
37
40
|
calendars: defaultizedProps.calendars ?? 2,
|
|
@@ -46,7 +49,10 @@ const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDat
|
|
|
46
49
|
}),
|
|
47
50
|
toolbar: _extends({
|
|
48
51
|
hidden: true
|
|
49
|
-
}, defaultizedProps.slotProps?.toolbar)
|
|
52
|
+
}, defaultizedProps.slotProps?.toolbar),
|
|
53
|
+
actionBar: ownerState => _extends({
|
|
54
|
+
actions: emptyActions
|
|
55
|
+
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
50
56
|
})
|
|
51
57
|
});
|
|
52
58
|
const {
|
|
@@ -78,8 +84,8 @@ DesktopDateRangePicker.propTypes = {
|
|
|
78
84
|
calendars: PropTypes.oneOf([1, 2, 3]),
|
|
79
85
|
className: PropTypes.string,
|
|
80
86
|
/**
|
|
81
|
-
* If `true`, the
|
|
82
|
-
* @default
|
|
87
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
88
|
+
* @default true
|
|
83
89
|
*/
|
|
84
90
|
closeOnSelect: PropTypes.bool,
|
|
85
91
|
/**
|
|
@@ -21,4 +21,9 @@ export interface DesktopDateRangePickerProps<TEnableAccessibleFieldDOMStructure
|
|
|
21
21
|
* @default {}
|
|
22
22
|
*/
|
|
23
23
|
slotProps?: DesktopDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
24
|
+
/**
|
|
25
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
closeOnSelect?: boolean;
|
|
24
29
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["openTo"
|
|
5
|
+
const _excluded = ["openTo"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import { isDatePickerView, isInternalTimeView, resolveDateTimeFormat, useUtils } from '@mui/x-date-pickers/internals';
|
|
@@ -22,15 +22,22 @@ import { useDateTimeRangePickerDefaultizedProps } from "../DateTimeRangePicker/s
|
|
|
22
22
|
import { MultiInputDateTimeRangeField } from "../MultiInputDateTimeRangeField/index.js";
|
|
23
23
|
import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
|
|
24
24
|
import { RANGE_VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
25
|
+
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
25
26
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
|
-
const rendererInterceptor = function
|
|
27
|
+
const rendererInterceptor = function RendererInterceptor(props) {
|
|
27
28
|
const {
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
viewRenderers,
|
|
30
|
+
popperView,
|
|
31
|
+
rendererProps
|
|
32
|
+
} = props;
|
|
33
|
+
const {
|
|
34
|
+
openTo
|
|
30
35
|
} = rendererProps,
|
|
31
36
|
otherProps = _objectWithoutPropertiesLoose(rendererProps, _excluded);
|
|
37
|
+
const {
|
|
38
|
+
rangePosition
|
|
39
|
+
} = usePickerRangePositionContext();
|
|
32
40
|
const finalProps = _extends({}, otherProps, {
|
|
33
|
-
rangePosition,
|
|
34
41
|
focusedView: null,
|
|
35
42
|
sx: [{
|
|
36
43
|
[`&.${multiSectionDigitalClockClasses.root}`]: {
|
|
@@ -43,7 +50,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
43
50
|
});
|
|
44
51
|
const isTimeViewActive = isInternalTimeView(popperView);
|
|
45
52
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
46
|
-
children: [
|
|
53
|
+
children: [viewRenderers.day?.(_extends({}, rendererProps, {
|
|
47
54
|
availableRangePositions: [rangePosition],
|
|
48
55
|
view: !isTimeViewActive ? popperView : 'day',
|
|
49
56
|
views: rendererProps.views.filter(isDatePickerView),
|
|
@@ -59,7 +66,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
59
66
|
view: isTimeViewActive ? popperView : 'hours',
|
|
60
67
|
views: finalProps.views.filter(isInternalTimeView),
|
|
61
68
|
openTo: isInternalTimeView(openTo) ? openTo : 'hours',
|
|
62
|
-
viewRenderer:
|
|
69
|
+
viewRenderer: viewRenderers[isTimeViewActive ? popperView : 'hours'],
|
|
63
70
|
sx: [{
|
|
64
71
|
gridColumn: 3
|
|
65
72
|
}, ...finalProps.sx]
|
|
@@ -92,7 +99,6 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
92
99
|
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
93
100
|
const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
|
|
94
101
|
const views = !shouldHoursRendererContainMeridiemView ? defaultizedProps.views.filter(view => view !== 'meridiem') : defaultizedProps.views;
|
|
95
|
-
const actionBarActions = defaultizedProps.shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
96
102
|
const props = _extends({}, defaultizedProps, {
|
|
97
103
|
views,
|
|
98
104
|
viewRenderers,
|
|
@@ -113,10 +119,7 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
113
119
|
}, defaultizedProps.slotProps?.tabs),
|
|
114
120
|
toolbar: _extends({
|
|
115
121
|
hidden: true
|
|
116
|
-
}, defaultizedProps.slotProps?.toolbar)
|
|
117
|
-
actionBar: ownerState => _extends({
|
|
118
|
-
actions: actionBarActions
|
|
119
|
-
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
122
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
120
123
|
})
|
|
121
124
|
});
|
|
122
125
|
const {
|
|
@@ -154,8 +157,8 @@ DesktopDateTimeRangePicker.propTypes = {
|
|
|
154
157
|
calendars: PropTypes.oneOf([1, 2, 3]),
|
|
155
158
|
className: PropTypes.string,
|
|
156
159
|
/**
|
|
157
|
-
* If `true`, the
|
|
158
|
-
* @default
|
|
160
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
161
|
+
* @default false
|
|
159
162
|
*/
|
|
160
163
|
closeOnSelect: PropTypes.bool,
|
|
161
164
|
/**
|
|
@@ -74,8 +74,8 @@ MobileDateRangePicker.propTypes = {
|
|
|
74
74
|
autoFocus: PropTypes.bool,
|
|
75
75
|
className: PropTypes.string,
|
|
76
76
|
/**
|
|
77
|
-
* If `true`, the
|
|
78
|
-
* @default
|
|
77
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
78
|
+
* @default false
|
|
79
79
|
*/
|
|
80
80
|
closeOnSelect: PropTypes.bool,
|
|
81
81
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["view", "openTo"
|
|
5
|
+
const _excluded = ["view", "openTo"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import { refType } from '@mui/utils';
|
|
@@ -20,16 +20,23 @@ import { useDateTimeRangePickerDefaultizedProps } from "../DateTimeRangePicker/s
|
|
|
20
20
|
import { MultiInputDateTimeRangeField } from "../MultiInputDateTimeRangeField/index.js";
|
|
21
21
|
import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
|
|
22
22
|
import { RANGE_VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
23
|
+
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
23
24
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
-
const rendererInterceptor = function
|
|
25
|
+
const rendererInterceptor = function RendererInterceptor(props) {
|
|
26
|
+
const {
|
|
27
|
+
viewRenderers,
|
|
28
|
+
popperView,
|
|
29
|
+
rendererProps
|
|
30
|
+
} = props;
|
|
31
|
+
const {
|
|
32
|
+
rangePosition
|
|
33
|
+
} = usePickerRangePositionContext();
|
|
25
34
|
const {
|
|
26
35
|
view,
|
|
27
|
-
openTo
|
|
28
|
-
rangePosition
|
|
36
|
+
openTo
|
|
29
37
|
} = rendererProps,
|
|
30
38
|
otherRendererProps = _objectWithoutPropertiesLoose(rendererProps, _excluded);
|
|
31
39
|
const finalProps = _extends({}, otherRendererProps, {
|
|
32
|
-
rangePosition,
|
|
33
40
|
focusedView: null,
|
|
34
41
|
sx: [{
|
|
35
42
|
width: DIALOG_WIDTH,
|
|
@@ -53,7 +60,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
53
60
|
}]
|
|
54
61
|
});
|
|
55
62
|
const isTimeView = isInternalTimeView(popperView);
|
|
56
|
-
const viewRenderer =
|
|
63
|
+
const viewRenderer = viewRenderers[popperView];
|
|
57
64
|
if (!viewRenderer) {
|
|
58
65
|
return null;
|
|
59
66
|
}
|
|
@@ -148,8 +155,8 @@ MobileDateTimeRangePicker.propTypes = {
|
|
|
148
155
|
autoFocus: PropTypes.bool,
|
|
149
156
|
className: PropTypes.string,
|
|
150
157
|
/**
|
|
151
|
-
* If `true`, the
|
|
152
|
-
* @default
|
|
158
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
159
|
+
* @default false
|
|
153
160
|
*/
|
|
154
161
|
closeOnSelect: PropTypes.bool,
|
|
155
162
|
/**
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export
|
|
2
|
+
import { UseDateRangeManagerReturnValue } from '../managers';
|
|
3
|
+
import { MultiInputRangeFieldProps } from '../internals/utils/createMultiInputRangeField';
|
|
4
|
+
import { MultiInputDateRangeFieldClasses } from './multiInputDateRangeFieldClasses';
|
|
5
|
+
export interface MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MultiInputRangeFieldProps<UseDateRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure>> {
|
|
6
|
+
/**
|
|
7
|
+
* Override or extend the styles applied to the component.
|
|
8
|
+
*/
|
|
9
|
+
classes?: Partial<MultiInputDateRangeFieldClasses>;
|
|
10
|
+
}
|
|
6
11
|
type MultiInputDateRangeFieldComponent = (<TEnableAccessibleFieldDOMStructure extends boolean = true>(props: MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
7
12
|
propTypes?: any;
|
|
8
13
|
};
|
|
@@ -1,48 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
|
-
const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className", "classes"];
|
|
6
|
-
import * as React from 'react';
|
|
7
3
|
import PropTypes from 'prop-types';
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
import {
|
|
13
|
-
import useSlotProps from '@mui/utils/useSlotProps';
|
|
14
|
-
import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
|
|
15
|
-
import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } 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 { useMultiInputDateRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js";
|
|
19
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
-
export const multiInputDateRangeFieldClasses = generateUtilityClasses('MuiMultiInputDateRangeField', ['root', 'separator']);
|
|
21
|
-
export const getMultiInputDateRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputDateRangeField', slot);
|
|
22
|
-
const useUtilityClasses = classes => {
|
|
23
|
-
const slots = {
|
|
24
|
-
root: ['root'],
|
|
25
|
-
separator: ['separator']
|
|
26
|
-
};
|
|
27
|
-
return composeClasses(slots, getMultiInputDateRangeFieldUtilityClass, classes);
|
|
28
|
-
};
|
|
29
|
-
const MultiInputDateRangeFieldRoot = styled(/*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
|
|
30
|
-
ref: ref,
|
|
31
|
-
spacing: 2,
|
|
32
|
-
direction: "row",
|
|
33
|
-
alignItems: "center"
|
|
34
|
-
}, props))), {
|
|
35
|
-
name: 'MuiMultiInputDateRangeField',
|
|
36
|
-
slot: 'Root',
|
|
37
|
-
overridesResolver: (props, styles) => styles.root
|
|
38
|
-
})({});
|
|
39
|
-
const MultiInputDateRangeFieldSeparator = styled(Typography, {
|
|
40
|
-
name: 'MuiMultiInputDateRangeField',
|
|
41
|
-
slot: 'Separator',
|
|
42
|
-
overridesResolver: (props, styles) => styles.separator
|
|
43
|
-
})({
|
|
44
|
-
lineHeight: '1.4375em' // 23px
|
|
45
|
-
});
|
|
4
|
+
import { useDateRangeManager } from "../managers/index.js";
|
|
5
|
+
import {
|
|
6
|
+
// The alias is needed to have the doc gen working.
|
|
7
|
+
createMultiInputRangeField as createMultiInputDateRangeField } from "../internals/utils/createMultiInputRangeField/index.js";
|
|
8
|
+
import { getMultiInputDateRangeFieldUtilityClass } from "./multiInputDateRangeFieldClasses.js";
|
|
46
9
|
/**
|
|
47
10
|
* Demos:
|
|
48
11
|
*
|
|
@@ -53,86 +16,19 @@ const MultiInputDateRangeFieldSeparator = styled(Typography, {
|
|
|
53
16
|
*
|
|
54
17
|
* - [MultiInputDateRangeField API](https://mui.com/x/api/multi-input-date-range-field/)
|
|
55
18
|
*/
|
|
56
|
-
const MultiInputDateRangeField =
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
});
|
|
61
|
-
const {
|
|
62
|
-
internalProps,
|
|
63
|
-
forwardedProps
|
|
64
|
-
} = useSplitFieldProps(themeProps, 'date');
|
|
65
|
-
const {
|
|
66
|
-
slots,
|
|
67
|
-
slotProps,
|
|
68
|
-
unstableStartFieldRef,
|
|
69
|
-
unstableEndFieldRef,
|
|
70
|
-
className,
|
|
71
|
-
classes: classesProp
|
|
72
|
-
} = forwardedProps,
|
|
73
|
-
otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
|
|
74
|
-
const ownerState = useFieldOwnerState(internalProps);
|
|
75
|
-
const classes = useUtilityClasses(classesProp);
|
|
76
|
-
const Root = slots?.root ?? MultiInputDateRangeFieldRoot;
|
|
77
|
-
const rootProps = useSlotProps({
|
|
78
|
-
elementType: Root,
|
|
79
|
-
externalSlotProps: slotProps?.root,
|
|
80
|
-
externalForwardedProps: otherForwardedProps,
|
|
81
|
-
additionalProps: {
|
|
82
|
-
ref
|
|
83
|
-
},
|
|
84
|
-
ownerState,
|
|
85
|
-
className: clsx(className, classes.root)
|
|
86
|
-
});
|
|
87
|
-
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
88
|
-
const startTextFieldProps = useSlotProps({
|
|
89
|
-
elementType: TextField,
|
|
90
|
-
externalSlotProps: slotProps?.textField,
|
|
91
|
-
ownerState: _extends({}, ownerState, {
|
|
92
|
-
position: 'start'
|
|
93
|
-
})
|
|
94
|
-
});
|
|
95
|
-
const endTextFieldProps = useSlotProps({
|
|
96
|
-
elementType: TextField,
|
|
97
|
-
externalSlotProps: slotProps?.textField,
|
|
98
|
-
ownerState: _extends({}, ownerState, {
|
|
99
|
-
position: 'end'
|
|
100
|
-
})
|
|
101
|
-
});
|
|
102
|
-
const Separator = slots?.separator ?? MultiInputDateRangeFieldSeparator;
|
|
103
|
-
const separatorProps = useSlotProps({
|
|
104
|
-
elementType: Separator,
|
|
105
|
-
externalSlotProps: slotProps?.separator,
|
|
106
|
-
additionalProps: {
|
|
107
|
-
children: ` ${internalProps.dateSeparator ?? '–'} `
|
|
108
|
-
},
|
|
109
|
-
ownerState,
|
|
110
|
-
className: classes.separator
|
|
111
|
-
});
|
|
112
|
-
const fieldResponse = useMultiInputDateRangeField({
|
|
113
|
-
sharedProps: internalProps,
|
|
114
|
-
startTextFieldProps,
|
|
115
|
-
endTextFieldProps,
|
|
116
|
-
unstableStartFieldRef,
|
|
117
|
-
unstableEndFieldRef
|
|
118
|
-
});
|
|
119
|
-
const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
|
|
120
|
-
const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
|
|
121
|
-
return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
|
|
122
|
-
children: [/*#__PURE__*/_jsx(TextField, _extends({
|
|
123
|
-
fullWidth: true
|
|
124
|
-
}, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
|
|
125
|
-
fullWidth: true
|
|
126
|
-
}, endDateProps))]
|
|
127
|
-
}));
|
|
19
|
+
const MultiInputDateRangeField = createMultiInputDateRangeField({
|
|
20
|
+
name: 'MuiMultiInputDateRangeField',
|
|
21
|
+
getUtilityClass: getMultiInputDateRangeFieldUtilityClass,
|
|
22
|
+
useManager: useDateRangeManager
|
|
128
23
|
});
|
|
129
|
-
|
|
24
|
+
MultiInputDateRangeField.propTypes = {
|
|
130
25
|
// ----------------------------- Warning --------------------------------
|
|
131
26
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
132
27
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
133
28
|
// ----------------------------------------------------------------------
|
|
134
29
|
/**
|
|
135
30
|
* If `true`, the `input` element is focused during the first mount.
|
|
31
|
+
* @default false
|
|
136
32
|
*/
|
|
137
33
|
autoFocus: PropTypes.bool,
|
|
138
34
|
/**
|
|
@@ -315,5 +211,5 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
|
|
|
315
211
|
* Used when the component is controlled.
|
|
316
212
|
*/
|
|
317
213
|
value: PropTypes.arrayOf(PropTypes.object)
|
|
318
|
-
}
|
|
214
|
+
};
|
|
319
215
|
export { MultiInputDateRangeField };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export { MultiInputDateRangeField
|
|
2
|
-
export {
|
|
3
|
-
export
|
|
1
|
+
export { MultiInputDateRangeField } from './MultiInputDateRangeField';
|
|
2
|
+
export type { MultiInputDateRangeFieldProps } from './MultiInputDateRangeField';
|
|
3
|
+
export { multiInputDateRangeFieldClasses, getMultiInputDateRangeFieldUtilityClass, } from './multiInputDateRangeFieldClasses';
|
|
4
|
+
export type { MultiInputDateRangeFieldClassKey, MultiInputDateRangeFieldClasses, } from './multiInputDateRangeFieldClasses';
|
|
5
|
+
export type { MultiInputRangeFieldSlots as MultiInputDateRangeFieldSlots, MultiInputRangeFieldSlotProps as MultiInputDateRangeFieldSlotProps, } from '../internals/utils/createMultiInputRangeField';
|