@mui/x-date-pickers 5.0.2 → 6.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +212 -3
- package/CalendarPicker/CalendarPicker.d.ts +8 -2
- package/CalendarPicker/CalendarPicker.js +54 -71
- package/CalendarPicker/DayPicker.d.ts +2 -2
- package/CalendarPicker/DayPicker.js +6 -2
- package/CalendarPicker/PickersCalendarHeader.d.ts +3 -10
- package/CalendarPicker/PickersCalendarHeader.js +7 -20
- package/CalendarPicker/useCalendarState.d.ts +2 -2
- package/CalendarPicker/useCalendarState.js +7 -7
- package/ClockPicker/Clock.d.ts +9 -4
- package/ClockPicker/Clock.js +13 -13
- package/ClockPicker/ClockNumbers.d.ts +3 -3
- package/ClockPicker/ClockNumbers.js +2 -2
- package/ClockPicker/ClockPicker.d.ts +8 -58
- package/ClockPicker/ClockPicker.js +52 -128
- package/ClockPicker/ClockPointer.d.ts +1 -1
- package/ClockPicker/ClockPointer.js +4 -4
- package/DateField/useDateField.d.ts +1 -1
- package/DateField/useDateField.js +5 -1
- package/DatePicker/DatePicker.js +10 -20
- package/DateTimePicker/DateTimePicker.js +10 -39
- package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -1
- package/DesktopDatePicker/DesktopDatePicker.js +14 -22
- package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -1
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -40
- package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -1
- package/DesktopTimePicker/DesktopTimePicker.js +9 -21
- package/LocalizationProvider/LocalizationProvider.d.ts +10 -11
- package/LocalizationProvider/LocalizationProvider.js +31 -24
- package/MobileDatePicker/MobileDatePicker.d.ts +1 -1
- package/MobileDatePicker/MobileDatePicker.js +14 -22
- package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -1
- package/MobileDateTimePicker/MobileDateTimePicker.js +13 -40
- package/MobileTimePicker/MobileTimePicker.d.ts +1 -1
- package/MobileTimePicker/MobileTimePicker.js +9 -21
- package/MonthPicker/MonthPicker.d.ts +12 -9
- package/MonthPicker/MonthPicker.js +60 -57
- package/MonthPicker/PickersMonth.d.ts +10 -7
- package/MonthPicker/PickersMonth.js +76 -44
- package/MonthPicker/pickersMonthClasses.d.ts +9 -1
- package/MonthPicker/pickersMonthClasses.js +1 -1
- package/PickersDay/PickersDay.d.ts +0 -6
- package/PickersDay/PickersDay.js +0 -5
- package/StaticDatePicker/StaticDatePicker.d.ts +1 -1
- package/StaticDatePicker/StaticDatePicker.js +17 -23
- package/StaticDateTimePicker/StaticDateTimePicker.d.ts +1 -1
- package/StaticDateTimePicker/StaticDateTimePicker.js +17 -42
- package/StaticTimePicker/StaticTimePicker.d.ts +1 -1
- package/StaticTimePicker/StaticTimePicker.js +17 -22
- package/TimePicker/TimePicker.js +5 -19
- package/YearPicker/PickersYear.d.ts +7 -6
- package/YearPicker/PickersYear.js +34 -23
- package/YearPicker/YearPicker.d.ts +21 -4
- package/YearPicker/YearPicker.js +109 -49
- package/YearPicker/pickersYearClasses.d.ts +1 -1
- package/index.js +1 -1
- package/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +2 -2
- package/internals/components/PickerStaticWrapper/PickerStaticWrapper.d.ts +20 -6
- package/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +38 -22
- package/internals/components/PickerStaticWrapper/index.d.ts +1 -1
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.d.ts +3 -0
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +166 -0
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +63 -0
- package/internals/{models/muiPickersAdapter.js → components/PickersArrowSwitcher/PickersArrowSwitcher.types.js} +0 -0
- package/internals/components/PickersArrowSwitcher/index.d.ts +2 -0
- package/internals/components/PickersArrowSwitcher/index.js +1 -0
- package/internals/components/{pickersArrowSwitcherClasses.d.ts → PickersArrowSwitcher/pickersArrowSwitcherClasses.d.ts} +0 -0
- package/internals/components/{pickersArrowSwitcherClasses.js → PickersArrowSwitcher/pickersArrowSwitcherClasses.js} +0 -0
- package/internals/components/PickersPopper.d.ts +2 -6
- package/internals/components/PickersPopper.js +5 -5
- package/internals/components/PickersToolbar.d.ts +1 -1
- package/internals/components/PickersToolbar.js +1 -2
- package/internals/components/PickersToolbarText.d.ts +1 -1
- package/internals/components/wrappers/DesktopTooltipWrapper.d.ts +1 -1
- package/internals/components/wrappers/DesktopTooltipWrapper.js +29 -24
- package/internals/components/wrappers/DesktopWrapper.d.ts +8 -3
- package/internals/components/wrappers/DesktopWrapper.js +26 -21
- package/internals/components/wrappers/MobileWrapper.d.ts +8 -3
- package/internals/components/wrappers/MobileWrapper.js +23 -18
- package/internals/hooks/useField/useField.interfaces.d.ts +0 -1
- package/internals/hooks/useField/useField.js +19 -23
- package/internals/hooks/useField/useField.utils.js +10 -2
- package/internals/hooks/useUtils.d.ts +5 -2
- package/internals/hooks/useUtils.js +11 -2
- package/internals/hooks/validation/useDateValidation.d.ts +4 -4
- package/internals/hooks/validation/useDateValidation.js +12 -2
- package/internals/index.d.ts +5 -5
- package/internals/index.js +3 -3
- package/internals/models/muiPickersAdapter.d.ts +12 -7
- package/internals/models/props/baseToolbarProps.d.ts +0 -8
- package/internals/models/props/staticPickerProps.d.ts +2 -8
- package/legacy/CalendarPicker/CalendarPicker.js +52 -69
- package/legacy/CalendarPicker/DayPicker.js +6 -2
- package/legacy/CalendarPicker/PickersCalendarHeader.js +7 -20
- package/legacy/CalendarPicker/useCalendarState.js +7 -7
- package/legacy/ClockPicker/Clock.js +13 -13
- package/legacy/ClockPicker/ClockNumbers.js +2 -2
- package/legacy/ClockPicker/ClockPicker.js +57 -133
- package/legacy/ClockPicker/ClockPointer.js +4 -4
- package/legacy/DateField/useDateField.js +5 -1
- package/legacy/DatePicker/DatePicker.js +10 -20
- package/legacy/DateTimePicker/DateTimePicker.js +10 -39
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +13 -21
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -40
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +8 -20
- package/legacy/LocalizationProvider/LocalizationProvider.js +28 -23
- package/legacy/MobileDatePicker/MobileDatePicker.js +13 -21
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +13 -40
- package/legacy/MobileTimePicker/MobileTimePicker.js +8 -20
- package/legacy/MonthPicker/MonthPicker.js +67 -62
- package/legacy/MonthPicker/PickersMonth.js +89 -57
- package/legacy/MonthPicker/pickersMonthClasses.js +1 -1
- package/legacy/PickersDay/PickersDay.js +0 -5
- package/legacy/StaticDatePicker/StaticDatePicker.js +17 -24
- package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +17 -43
- package/legacy/StaticTimePicker/StaticTimePicker.js +17 -23
- package/legacy/TimePicker/TimePicker.js +5 -19
- package/legacy/YearPicker/PickersYear.js +35 -25
- package/legacy/YearPicker/YearPicker.js +111 -51
- package/legacy/index.js +1 -1
- package/legacy/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +2 -2
- package/legacy/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +41 -24
- package/legacy/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +180 -0
- package/legacy/internals/{models/muiPickersAdapter.js → components/PickersArrowSwitcher/PickersArrowSwitcher.types.js} +0 -0
- package/legacy/internals/components/PickersArrowSwitcher/index.js +1 -0
- package/legacy/internals/components/{pickersArrowSwitcherClasses.js → PickersArrowSwitcher/pickersArrowSwitcherClasses.js} +0 -0
- package/legacy/internals/components/PickersPopper.js +5 -5
- package/legacy/internals/components/PickersToolbar.js +1 -2
- package/legacy/internals/components/wrappers/DesktopTooltipWrapper.js +29 -24
- package/legacy/internals/components/wrappers/DesktopWrapper.js +26 -21
- package/legacy/internals/components/wrappers/MobileWrapper.js +22 -17
- package/legacy/internals/hooks/useField/useField.js +21 -23
- package/legacy/internals/hooks/useField/useField.utils.js +10 -2
- package/legacy/internals/hooks/useUtils.js +13 -2
- package/legacy/internals/hooks/validation/useDateValidation.js +12 -2
- package/legacy/internals/index.js +3 -3
- package/legacy/locales/faIR.js +52 -0
- package/legacy/locales/fiFI.js +61 -0
- package/legacy/locales/index.js +2 -0
- package/legacy/locales/isIS.js +0 -1
- package/locales/faIR.d.ts +35 -0
- package/locales/faIR.js +36 -0
- package/locales/fiFI.d.ts +35 -0
- package/locales/fiFI.js +45 -0
- package/locales/index.d.ts +2 -0
- package/locales/index.js +2 -0
- package/locales/isIS.js +0 -1
- package/locales/utils/pickersLocaleTextApi.d.ts +1 -0
- package/modern/CalendarPicker/CalendarPicker.js +54 -71
- package/modern/CalendarPicker/DayPicker.js +6 -2
- package/modern/CalendarPicker/PickersCalendarHeader.js +7 -20
- package/modern/CalendarPicker/useCalendarState.js +7 -7
- package/modern/ClockPicker/Clock.js +13 -13
- package/modern/ClockPicker/ClockNumbers.js +2 -2
- package/modern/ClockPicker/ClockPicker.js +52 -128
- package/modern/ClockPicker/ClockPointer.js +4 -4
- package/modern/DateField/useDateField.js +5 -1
- package/modern/DatePicker/DatePicker.js +10 -20
- package/modern/DateTimePicker/DateTimePicker.js +10 -39
- package/modern/DesktopDatePicker/DesktopDatePicker.js +14 -22
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -40
- package/modern/DesktopTimePicker/DesktopTimePicker.js +9 -21
- package/modern/LocalizationProvider/LocalizationProvider.js +29 -24
- package/modern/MobileDatePicker/MobileDatePicker.js +14 -22
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +13 -40
- package/modern/MobileTimePicker/MobileTimePicker.js +9 -21
- package/modern/MonthPicker/MonthPicker.js +60 -57
- package/modern/MonthPicker/PickersMonth.js +76 -44
- package/modern/MonthPicker/pickersMonthClasses.js +1 -1
- package/modern/PickersDay/PickersDay.js +0 -5
- package/modern/StaticDatePicker/StaticDatePicker.js +17 -23
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +17 -42
- package/modern/StaticTimePicker/StaticTimePicker.js +17 -22
- package/modern/TimePicker/TimePicker.js +5 -19
- package/modern/YearPicker/PickersYear.js +34 -23
- package/modern/YearPicker/YearPicker.js +109 -49
- package/modern/index.js +1 -1
- package/modern/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +2 -2
- package/modern/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +38 -22
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +164 -0
- package/modern/internals/{models/muiPickersAdapter.js → components/PickersArrowSwitcher/PickersArrowSwitcher.types.js} +0 -0
- package/modern/internals/components/PickersArrowSwitcher/index.js +1 -0
- package/modern/internals/components/{pickersArrowSwitcherClasses.js → PickersArrowSwitcher/pickersArrowSwitcherClasses.js} +0 -0
- package/modern/internals/components/PickersPopper.js +5 -5
- package/modern/internals/components/PickersToolbar.js +1 -2
- package/modern/internals/components/wrappers/DesktopTooltipWrapper.js +29 -24
- package/modern/internals/components/wrappers/DesktopWrapper.js +26 -21
- package/modern/internals/components/wrappers/MobileWrapper.js +23 -18
- package/modern/internals/hooks/useField/useField.js +19 -21
- package/modern/internals/hooks/useField/useField.utils.js +10 -2
- package/modern/internals/hooks/useUtils.js +11 -2
- package/modern/internals/hooks/validation/useDateValidation.js +12 -2
- package/modern/internals/index.js +3 -3
- package/modern/locales/faIR.js +36 -0
- package/modern/locales/fiFI.js +45 -0
- package/modern/locales/index.js +2 -0
- package/modern/locales/isIS.js +0 -1
- package/node/CalendarPicker/CalendarPicker.js +54 -71
- package/node/CalendarPicker/DayPicker.js +5 -1
- package/node/CalendarPicker/PickersCalendarHeader.js +7 -21
- package/node/CalendarPicker/useCalendarState.js +6 -6
- package/node/ClockPicker/Clock.js +12 -12
- package/node/ClockPicker/ClockNumbers.js +2 -2
- package/node/ClockPicker/ClockPicker.js +52 -129
- package/node/ClockPicker/ClockPointer.js +4 -4
- package/node/DateField/useDateField.js +5 -1
- package/node/DatePicker/DatePicker.js +10 -20
- package/node/DateTimePicker/DateTimePicker.js +10 -39
- package/node/DesktopDatePicker/DesktopDatePicker.js +14 -22
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -40
- package/node/DesktopTimePicker/DesktopTimePicker.js +9 -21
- package/node/LocalizationProvider/LocalizationProvider.js +31 -25
- package/node/MobileDatePicker/MobileDatePicker.js +14 -22
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +13 -40
- package/node/MobileTimePicker/MobileTimePicker.js +9 -21
- package/node/MonthPicker/MonthPicker.js +61 -58
- package/node/MonthPicker/PickersMonth.js +71 -43
- package/node/MonthPicker/pickersMonthClasses.js +1 -1
- package/node/PickersDay/PickersDay.js +0 -5
- package/node/StaticDatePicker/StaticDatePicker.js +17 -23
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +17 -42
- package/node/StaticTimePicker/StaticTimePicker.js +17 -22
- package/node/TimePicker/TimePicker.js +5 -19
- package/node/YearPicker/PickersYear.js +33 -22
- package/node/YearPicker/YearPicker.js +111 -49
- package/node/index.js +1 -1
- package/node/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +2 -2
- package/node/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +39 -22
- package/node/internals/components/{PickersArrowSwitcher.js → PickersArrowSwitcher/PickersArrowSwitcher.js} +102 -58
- package/node/internals/{models/muiPickersAdapter.js → components/PickersArrowSwitcher/PickersArrowSwitcher.types.js} +0 -0
- package/node/internals/components/PickersArrowSwitcher/index.js +13 -0
- package/node/internals/components/{pickersArrowSwitcherClasses.js → PickersArrowSwitcher/pickersArrowSwitcherClasses.js} +0 -0
- package/node/internals/components/PickersPopper.js +5 -5
- package/node/internals/components/PickersToolbar.js +1 -2
- package/node/internals/components/wrappers/DesktopTooltipWrapper.js +30 -24
- package/node/internals/components/wrappers/DesktopWrapper.js +27 -21
- package/node/internals/components/wrappers/MobileWrapper.js +24 -18
- package/node/internals/hooks/useField/useField.js +19 -23
- package/node/internals/hooks/useField/useField.utils.js +10 -2
- package/node/internals/hooks/useUtils.js +15 -2
- package/node/internals/hooks/validation/useDateValidation.js +14 -4
- package/node/internals/index.js +8 -2
- package/node/locales/faIR.js +45 -0
- package/node/locales/fiFI.js +54 -0
- package/node/locales/index.js +26 -0
- package/node/locales/isIS.js +0 -1
- package/package.json +4 -4
- package/themeAugmentation/props.d.ts +3 -3
- package/internals/components/PickersArrowSwitcher.d.ts +0 -62
- package/internals/components/PickersArrowSwitcher.js +0 -124
- package/legacy/internals/components/PickersArrowSwitcher.js +0 -128
- package/modern/internals/components/PickersArrowSwitcher.js +0 -124
|
@@ -9,7 +9,6 @@ import { PickersFadeTransitionGroup } from './PickersFadeTransitionGroup';
|
|
|
9
9
|
import { ArrowDropDown } from '../internals/components/icons';
|
|
10
10
|
import { PickersArrowSwitcher } from '../internals/components/PickersArrowSwitcher';
|
|
11
11
|
import { usePreviousMonthDisabled, useNextMonthDisabled } from '../internals/hooks/date-helpers-hooks';
|
|
12
|
-
import { buildDeprecatedPropsWarning } from '../internals/utils/warning';
|
|
13
12
|
import { getPickersCalendarHeaderUtilityClass } from './pickersCalendarHeaderClasses';
|
|
14
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
14
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -87,7 +86,6 @@ const PickersCalendarHeaderSwitchViewIcon = styled(ArrowDropDown, {
|
|
|
87
86
|
}, ownerState.openView === 'year' && {
|
|
88
87
|
transform: 'rotate(180deg)'
|
|
89
88
|
}));
|
|
90
|
-
const deprecatedPropsWarning = buildDeprecatedPropsWarning('Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information.');
|
|
91
89
|
/**
|
|
92
90
|
* @ignore - do not document.
|
|
93
91
|
*/
|
|
@@ -104,27 +102,16 @@ export function PickersCalendarHeader(inProps) {
|
|
|
104
102
|
disabled,
|
|
105
103
|
disableFuture,
|
|
106
104
|
disablePast,
|
|
107
|
-
getViewSwitchingButtonText: getViewSwitchingButtonTextProp,
|
|
108
|
-
leftArrowButtonText: leftArrowButtonTextProp,
|
|
109
105
|
maxDate,
|
|
110
106
|
minDate,
|
|
111
107
|
onMonthChange,
|
|
112
108
|
onViewChange,
|
|
113
109
|
openView: currentView,
|
|
114
110
|
reduceAnimations,
|
|
115
|
-
rightArrowButtonText: rightArrowButtonTextProp,
|
|
116
111
|
views,
|
|
117
112
|
labelId
|
|
118
113
|
} = props;
|
|
119
|
-
deprecatedPropsWarning({
|
|
120
|
-
leftArrowButtonText: leftArrowButtonTextProp,
|
|
121
|
-
rightArrowButtonText: rightArrowButtonTextProp,
|
|
122
|
-
getViewSwitchingButtonText: getViewSwitchingButtonTextProp
|
|
123
|
-
});
|
|
124
114
|
const localeText = useLocaleText();
|
|
125
|
-
const leftArrowButtonText = leftArrowButtonTextProp != null ? leftArrowButtonTextProp : localeText.previousMonth;
|
|
126
|
-
const rightArrowButtonText = rightArrowButtonTextProp != null ? rightArrowButtonTextProp : localeText.nextMonth;
|
|
127
|
-
const getViewSwitchingButtonText = getViewSwitchingButtonTextProp != null ? getViewSwitchingButtonTextProp : localeText.calendarViewSwitchingButtonAriaLabel;
|
|
128
115
|
const utils = useUtils();
|
|
129
116
|
const classes = useUtilityClasses(props);
|
|
130
117
|
const switchViewButtonProps = componentsProps.switchViewButton || {};
|
|
@@ -184,7 +171,7 @@ export function PickersCalendarHeader(inProps) {
|
|
|
184
171
|
}), views.length > 1 && !disabled && /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchViewButton, _extends({
|
|
185
172
|
size: "small",
|
|
186
173
|
as: components.SwitchViewButton,
|
|
187
|
-
"aria-label":
|
|
174
|
+
"aria-label": localeText.calendarViewSwitchingButtonAriaLabel(currentView),
|
|
188
175
|
className: classes.switchViewButton
|
|
189
176
|
}, switchViewButtonProps, {
|
|
190
177
|
children: /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchViewIcon, {
|
|
@@ -196,14 +183,14 @@ export function PickersCalendarHeader(inProps) {
|
|
|
196
183
|
}), /*#__PURE__*/_jsx(Fade, {
|
|
197
184
|
in: currentView === 'day',
|
|
198
185
|
children: /*#__PURE__*/_jsx(PickersArrowSwitcher, {
|
|
199
|
-
leftArrowButtonText: leftArrowButtonText,
|
|
200
|
-
rightArrowButtonText: rightArrowButtonText,
|
|
201
186
|
components: components,
|
|
202
187
|
componentsProps: componentsProps,
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
188
|
+
onGoToPrevious: selectPreviousMonth,
|
|
189
|
+
isPreviousDisabled: isPreviousMonthDisabled,
|
|
190
|
+
previousLabel: localeText.previousMonth,
|
|
191
|
+
onGoToNext: selectNextMonth,
|
|
192
|
+
isNextDisabled: isNextMonthDisabled,
|
|
193
|
+
nextLabel: localeText.nextMonth
|
|
207
194
|
})
|
|
208
195
|
})]
|
|
209
196
|
});
|
|
@@ -25,10 +25,10 @@ interface ChangeFocusedDayPayload<TDate> {
|
|
|
25
25
|
export declare const createCalendarStateReducer: <TDate extends unknown>(reduceAnimations: boolean, disableSwitchToMonthOnDayFocus: boolean, utils: MuiPickersAdapter<TDate>) => (state: CalendarState<TDate>, action: {
|
|
26
26
|
type: "finishMonthSwitchingAnimation";
|
|
27
27
|
} | ReducerAction<"changeMonth", ChangeMonthPayload<TDate>> | ReducerAction<"changeFocusedDay", ChangeFocusedDayPayload<TDate>>) => CalendarState<TDate>;
|
|
28
|
-
interface CalendarStateInput<TDate> extends Pick<CalendarPickerDefaultizedProps<TDate>, '
|
|
28
|
+
interface CalendarStateInput<TDate> extends Pick<CalendarPickerDefaultizedProps<TDate>, 'value' | 'defaultCalendarMonth' | 'disableFuture' | 'disablePast' | 'minDate' | 'maxDate' | 'onMonthChange' | 'reduceAnimations' | 'shouldDisableDate'> {
|
|
29
29
|
disableSwitchToMonthOnDayFocus?: boolean;
|
|
30
30
|
}
|
|
31
|
-
export declare const useCalendarState: <TDate extends unknown>({
|
|
31
|
+
export declare const useCalendarState: <TDate extends unknown>({ value, defaultCalendarMonth, disableFuture, disablePast, disableSwitchToMonthOnDayFocus, maxDate, minDate, onMonthChange, reduceAnimations, shouldDisableDate, }: CalendarStateInput<TDate>) => {
|
|
32
32
|
calendarState: CalendarState<TDate>;
|
|
33
33
|
changeMonth: (newDate: TDate) => void;
|
|
34
34
|
changeFocusedDay: (newFocusedDate: TDate | null, withoutMonthSwitchingAnimation?: boolean) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { useIsDateDisabled } from '../internals/hooks/validation/useDateValidation';
|
|
4
4
|
import { useUtils, useNow } from '../internals/hooks/useUtils';
|
|
5
5
|
export const createCalendarStateReducer = (reduceAnimations, disableSwitchToMonthOnDayFocus, utils) => (state, action) => {
|
|
6
6
|
switch (action.type) {
|
|
@@ -36,7 +36,7 @@ export const createCalendarStateReducer = (reduceAnimations, disableSwitchToMont
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
export const useCalendarState = ({
|
|
39
|
-
|
|
39
|
+
value,
|
|
40
40
|
defaultCalendarMonth,
|
|
41
41
|
disableFuture,
|
|
42
42
|
disablePast,
|
|
@@ -54,8 +54,8 @@ export const useCalendarState = ({
|
|
|
54
54
|
const reducerFn = React.useRef(createCalendarStateReducer(Boolean(reduceAnimations), disableSwitchToMonthOnDayFocus, utils)).current;
|
|
55
55
|
const [calendarState, dispatch] = React.useReducer(reducerFn, {
|
|
56
56
|
isMonthSwitchingAnimating: false,
|
|
57
|
-
focusedDay:
|
|
58
|
-
currentMonth: utils.startOfMonth((_ref =
|
|
57
|
+
focusedDay: value || now,
|
|
58
|
+
currentMonth: utils.startOfMonth((_ref = value != null ? value : defaultCalendarMonth) != null ? _ref : now),
|
|
59
59
|
slideDirection: 'left'
|
|
60
60
|
});
|
|
61
61
|
const handleChangeMonth = React.useCallback(payload => {
|
|
@@ -68,7 +68,7 @@ export const useCalendarState = ({
|
|
|
68
68
|
}
|
|
69
69
|
}, [onMonthChange]);
|
|
70
70
|
const changeMonth = React.useCallback(newDate => {
|
|
71
|
-
const newDateRequested = newDate
|
|
71
|
+
const newDateRequested = newDate;
|
|
72
72
|
|
|
73
73
|
if (utils.isSameMonth(newDateRequested, calendarState.currentMonth)) {
|
|
74
74
|
return;
|
|
@@ -78,8 +78,8 @@ export const useCalendarState = ({
|
|
|
78
78
|
newMonth: utils.startOfMonth(newDateRequested),
|
|
79
79
|
direction: utils.isAfterDay(newDateRequested, calendarState.currentMonth) ? 'left' : 'right'
|
|
80
80
|
});
|
|
81
|
-
}, [calendarState.currentMonth, handleChangeMonth,
|
|
82
|
-
const isDateDisabled =
|
|
81
|
+
}, [calendarState.currentMonth, handleChangeMonth, utils]);
|
|
82
|
+
const isDateDisabled = useIsDateDisabled({
|
|
83
83
|
shouldDisableDate,
|
|
84
84
|
minDate,
|
|
85
85
|
maxDate,
|
package/ClockPicker/Clock.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { PickerSelectionState } from '../internals/hooks/usePickerState';
|
|
3
3
|
import { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';
|
|
4
|
-
import { ClockPickerView
|
|
4
|
+
import { ClockPickerView } from '../internals/models';
|
|
5
5
|
import { ClockClasses } from './clockClasses';
|
|
6
6
|
export interface ClockProps<TDate> extends ReturnType<typeof useMeridiemMode> {
|
|
7
7
|
ampm: boolean;
|
|
8
8
|
ampmInClock: boolean;
|
|
9
9
|
autoFocus?: boolean;
|
|
10
10
|
children: readonly React.ReactNode[];
|
|
11
|
-
date: TDate | null;
|
|
12
|
-
getClockLabelText: (view: ClockPickerView, time: TDate | null, adapter: MuiPickersAdapter<TDate>) => string;
|
|
13
11
|
isTimeDisabled: (timeValue: number, type: ClockPickerView) => boolean;
|
|
14
12
|
minutesStep?: number;
|
|
15
13
|
onChange: (value: number, isFinish?: PickerSelectionState) => void;
|
|
@@ -19,7 +17,14 @@ export interface ClockProps<TDate> extends ReturnType<typeof useMeridiemMode> {
|
|
|
19
17
|
*/
|
|
20
18
|
selectedId: string | undefined;
|
|
21
19
|
type: ClockPickerView;
|
|
22
|
-
|
|
20
|
+
/**
|
|
21
|
+
* The numeric value of the current view.
|
|
22
|
+
*/
|
|
23
|
+
viewValue: number;
|
|
24
|
+
/**
|
|
25
|
+
* The current full date value.
|
|
26
|
+
*/
|
|
27
|
+
value: TDate | null;
|
|
23
28
|
disabled?: boolean;
|
|
24
29
|
readOnly?: boolean;
|
|
25
30
|
className?: string;
|
package/ClockPicker/Clock.js
CHANGED
|
@@ -6,7 +6,7 @@ import Typography from '@mui/material/Typography';
|
|
|
6
6
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
7
7
|
import { unstable_useEnhancedEffect as useEnhancedEffect, unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
8
8
|
import { ClockPointer } from './ClockPointer';
|
|
9
|
-
import { useUtils } from '../internals/hooks/useUtils';
|
|
9
|
+
import { useLocaleText, useUtils } from '../internals/hooks/useUtils';
|
|
10
10
|
import { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';
|
|
11
11
|
import { getHours, getMinutes } from './shared';
|
|
12
12
|
import { getClockUtilityClass } from './clockClasses';
|
|
@@ -155,8 +155,7 @@ export function Clock(inProps) {
|
|
|
155
155
|
ampmInClock,
|
|
156
156
|
autoFocus,
|
|
157
157
|
children,
|
|
158
|
-
|
|
159
|
-
getClockLabelText,
|
|
158
|
+
value,
|
|
160
159
|
handleMeridiemChange,
|
|
161
160
|
isTimeDisabled,
|
|
162
161
|
meridiemMode,
|
|
@@ -164,18 +163,19 @@ export function Clock(inProps) {
|
|
|
164
163
|
onChange,
|
|
165
164
|
selectedId,
|
|
166
165
|
type,
|
|
167
|
-
|
|
166
|
+
viewValue,
|
|
168
167
|
disabled,
|
|
169
168
|
readOnly,
|
|
170
169
|
className
|
|
171
170
|
} = props;
|
|
172
171
|
const ownerState = props;
|
|
173
172
|
const utils = useUtils();
|
|
173
|
+
const localeText = useLocaleText();
|
|
174
174
|
const wrapperVariant = React.useContext(WrapperVariantContext);
|
|
175
175
|
const isMoving = React.useRef(false);
|
|
176
176
|
const classes = useUtilityClasses(ownerState);
|
|
177
|
-
const isSelectedTimeDisabled = isTimeDisabled(
|
|
178
|
-
const isPointerInner = !ampm && type === 'hours' && (
|
|
177
|
+
const isSelectedTimeDisabled = isTimeDisabled(viewValue, type);
|
|
178
|
+
const isPointerInner = !ampm && type === 'hours' && (viewValue < 1 || viewValue > 12);
|
|
179
179
|
|
|
180
180
|
const handleValueChange = (newValue, isFinish) => {
|
|
181
181
|
if (disabled || readOnly) {
|
|
@@ -237,8 +237,8 @@ export function Clock(inProps) {
|
|
|
237
237
|
return true;
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
return
|
|
241
|
-
}, [type,
|
|
240
|
+
return viewValue % 5 === 0;
|
|
241
|
+
}, [type, viewValue]);
|
|
242
242
|
const keyboardControlStep = type === 'minutes' ? minutesStep : 1;
|
|
243
243
|
const listboxRef = React.useRef(null); // Since this is rendered when a Popper is opened we can't use passive effects.
|
|
244
244
|
// Focusing in passive effects in Popper causes scroll jump.
|
|
@@ -269,12 +269,12 @@ export function Clock(inProps) {
|
|
|
269
269
|
break;
|
|
270
270
|
|
|
271
271
|
case 'ArrowUp':
|
|
272
|
-
handleValueChange(
|
|
272
|
+
handleValueChange(viewValue + keyboardControlStep, 'partial');
|
|
273
273
|
event.preventDefault();
|
|
274
274
|
break;
|
|
275
275
|
|
|
276
276
|
case 'ArrowDown':
|
|
277
|
-
handleValueChange(
|
|
277
|
+
handleValueChange(viewValue - keyboardControlStep, 'partial');
|
|
278
278
|
event.preventDefault();
|
|
279
279
|
break;
|
|
280
280
|
|
|
@@ -299,15 +299,15 @@ export function Clock(inProps) {
|
|
|
299
299
|
}), !isSelectedTimeDisabled && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
300
300
|
children: [/*#__PURE__*/_jsx(ClockPin, {
|
|
301
301
|
className: classes.pin
|
|
302
|
-
}),
|
|
302
|
+
}), value != null && /*#__PURE__*/_jsx(ClockPointer, {
|
|
303
303
|
type: type,
|
|
304
|
-
|
|
304
|
+
viewValue: viewValue,
|
|
305
305
|
isInner: isPointerInner,
|
|
306
306
|
hasSelected: hasSelected
|
|
307
307
|
})]
|
|
308
308
|
}), /*#__PURE__*/_jsx(ClockWrapper, {
|
|
309
309
|
"aria-activedescendant": selectedId,
|
|
310
|
-
"aria-label":
|
|
310
|
+
"aria-label": localeText.clockLabelText(type, value, utils),
|
|
311
311
|
ref: listboxRef,
|
|
312
312
|
role: "listbox",
|
|
313
313
|
onKeyDown: handleKeyDown,
|
|
@@ -3,7 +3,7 @@ import { MuiPickersAdapter } from '../internals/models';
|
|
|
3
3
|
import { PickerSelectionState } from '../internals/hooks/usePickerState';
|
|
4
4
|
interface GetHourNumbersOptions<TDate> {
|
|
5
5
|
ampm: boolean;
|
|
6
|
-
|
|
6
|
+
value: TDate | null;
|
|
7
7
|
getClockNumberText: (hour: string) => string;
|
|
8
8
|
isDisabled: (value: number) => boolean;
|
|
9
9
|
onChange: (value: number, isFinish?: PickerSelectionState) => void;
|
|
@@ -17,8 +17,8 @@ interface GetHourNumbersOptions<TDate> {
|
|
|
17
17
|
/**
|
|
18
18
|
* @ignore - internal component.
|
|
19
19
|
*/
|
|
20
|
-
export declare const getHourNumbers: <TDate extends unknown>({ ampm,
|
|
21
|
-
export declare const getMinutesNumbers: <TDate extends unknown>({ utils, value, isDisabled, getClockNumberText, selectedId, }: Omit<GetHourNumbersOptions<TDate>, "
|
|
20
|
+
export declare const getHourNumbers: <TDate extends unknown>({ ampm, value, getClockNumberText, isDisabled, selectedId, utils, }: GetHourNumbersOptions<TDate>) => JSX.Element[];
|
|
21
|
+
export declare const getMinutesNumbers: <TDate extends unknown>({ utils, value, isDisabled, getClockNumberText, selectedId, }: Omit<GetHourNumbersOptions<TDate>, "value" | "ampm"> & {
|
|
22
22
|
value: number;
|
|
23
23
|
}) => JSX.Element[];
|
|
24
24
|
export {};
|
|
@@ -7,13 +7,13 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
7
7
|
*/
|
|
8
8
|
export const getHourNumbers = ({
|
|
9
9
|
ampm,
|
|
10
|
-
|
|
10
|
+
value,
|
|
11
11
|
getClockNumberText,
|
|
12
12
|
isDisabled,
|
|
13
13
|
selectedId,
|
|
14
14
|
utils
|
|
15
15
|
}) => {
|
|
16
|
-
const currentHours =
|
|
16
|
+
const currentHours = value ? utils.getHours(value) : null;
|
|
17
17
|
const hourNumbers = [];
|
|
18
18
|
const startHour = ampm ? 1 : 0;
|
|
19
19
|
const endHour = ampm ? 12 : 23;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { Theme } from '@mui/material/styles';
|
|
3
|
+
import { SxProps } from '@mui/system';
|
|
2
4
|
import { PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps } from '../internals/components/PickersArrowSwitcher';
|
|
3
5
|
import { PickerOnChangeFn } from '../internals/hooks/useViews';
|
|
4
6
|
import { ExportedTimeValidationProps } from '../internals/hooks/validation/useTimeValidation';
|
|
5
|
-
import { ClockPickerView
|
|
7
|
+
import { ClockPickerView } from '../internals/models';
|
|
6
8
|
import { ClockPickerClasses } from './clockPickerClasses';
|
|
7
9
|
export interface ExportedClockPickerProps<TDate> extends ExportedTimeValidationProps<TDate> {
|
|
8
10
|
/**
|
|
@@ -15,33 +17,17 @@ export interface ExportedClockPickerProps<TDate> extends ExportedTimeValidationP
|
|
|
15
17
|
* @default false
|
|
16
18
|
*/
|
|
17
19
|
ampmInClock?: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Accessible text that helps user to understand which time and view is selected.
|
|
20
|
-
* @template TDate
|
|
21
|
-
* @param {ClockPickerView} view The current view rendered.
|
|
22
|
-
* @param {TDate | null} time The current time.
|
|
23
|
-
* @param {MuiPickersAdapter<TDate>} adapter The current date adapter.
|
|
24
|
-
* @returns {string} The clock label.
|
|
25
|
-
* @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization
|
|
26
|
-
* @default <TDate extends any>(
|
|
27
|
-
* view: ClockView,
|
|
28
|
-
* time: TDate | null,
|
|
29
|
-
* adapter: MuiPickersAdapter<TDate>,
|
|
30
|
-
* ) =>
|
|
31
|
-
* `Select ${view}. ${
|
|
32
|
-
* time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`
|
|
33
|
-
* }`
|
|
34
|
-
*/
|
|
35
|
-
getClockLabelText?: (view: ClockPickerView, time: TDate | null, adapter: MuiPickersAdapter<TDate>) => string;
|
|
36
20
|
}
|
|
37
21
|
export interface ClockPickerSlotsComponent extends PickersArrowSwitcherSlotsComponent {
|
|
38
22
|
}
|
|
39
|
-
export interface ClockPickerComponentsPropsOverrides {
|
|
40
|
-
}
|
|
41
23
|
export interface ClockPickerSlotsComponentsProps extends PickersArrowSwitcherSlotsComponentsProps {
|
|
42
24
|
}
|
|
43
25
|
export interface ClockPickerProps<TDate> extends ExportedClockPickerProps<TDate> {
|
|
44
26
|
className?: string;
|
|
27
|
+
/**
|
|
28
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
29
|
+
*/
|
|
30
|
+
sx?: SxProps<Theme>;
|
|
45
31
|
/**
|
|
46
32
|
* Set to `true` if focus should be moved to clock picker.
|
|
47
33
|
*/
|
|
@@ -63,47 +49,11 @@ export interface ClockPickerProps<TDate> extends ExportedClockPickerProps<TDate>
|
|
|
63
49
|
/**
|
|
64
50
|
* Selected date @DateIOType.
|
|
65
51
|
*/
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Get clock number aria-text for hours.
|
|
69
|
-
* @param {string} hours The hours to format.
|
|
70
|
-
* @returns {string} the formatted hours text.
|
|
71
|
-
* @default (hours: string) => `${hours} hours`
|
|
72
|
-
* @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization
|
|
73
|
-
*/
|
|
74
|
-
getHoursClockNumberText?: (hours: string) => string;
|
|
75
|
-
/**
|
|
76
|
-
* Get clock number aria-text for minutes.
|
|
77
|
-
* @param {string} minutes The minutes to format.
|
|
78
|
-
* @returns {string} the formatted minutes text.
|
|
79
|
-
* @default (minutes: string) => `${minutes} minutes`
|
|
80
|
-
* @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization
|
|
81
|
-
*/
|
|
82
|
-
getMinutesClockNumberText?: (minutes: string) => string;
|
|
83
|
-
/**
|
|
84
|
-
* Get clock number aria-text for seconds.
|
|
85
|
-
* @param {string} seconds The seconds to format.
|
|
86
|
-
* @returns {string} the formatted seconds text.
|
|
87
|
-
* @default (seconds: string) => `${seconds} seconds`
|
|
88
|
-
* @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization
|
|
89
|
-
*/
|
|
90
|
-
getSecondsClockNumberText?: (seconds: string) => string;
|
|
91
|
-
/**
|
|
92
|
-
* Left arrow icon aria-label text.
|
|
93
|
-
* @default 'open previous view'
|
|
94
|
-
* @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization
|
|
95
|
-
*/
|
|
96
|
-
leftArrowButtonText?: string;
|
|
52
|
+
value: TDate | null;
|
|
97
53
|
/**
|
|
98
54
|
* On change callback @DateIOType.
|
|
99
55
|
*/
|
|
100
56
|
onChange: PickerOnChangeFn<TDate>;
|
|
101
|
-
/**
|
|
102
|
-
* Right arrow icon aria-label text.
|
|
103
|
-
* @default 'open next view'
|
|
104
|
-
* @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization
|
|
105
|
-
*/
|
|
106
|
-
rightArrowButtonText?: string;
|
|
107
57
|
showViewSwitcher?: boolean;
|
|
108
58
|
/**
|
|
109
59
|
* Controlled open view.
|