@mui/x-date-pickers 8.0.0-alpha.4 → 8.0.0-alpha.6
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 +182 -0
- package/DatePicker/DatePickerToolbar.d.ts +1 -2
- package/DatePicker/DatePickerToolbar.js +6 -17
- package/DateTimePicker/DateTimePicker.types.d.ts +2 -2
- package/DateTimePicker/DateTimePickerTabs.d.ts +2 -5
- package/DateTimePicker/DateTimePickerTabs.js +6 -13
- package/DateTimePicker/DateTimePickerToolbar.d.ts +8 -4
- package/DateTimePicker/DateTimePickerToolbar.js +13 -24
- package/DateTimePicker/shared.d.ts +2 -2
- package/DesktopDatePicker/DesktopDatePicker.types.d.ts +2 -3
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +1 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -11
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
- package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -3
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +4 -4
- package/MobileTimePicker/MobileTimePicker.types.d.ts +4 -4
- package/MonthCalendar/MonthCalendar.d.ts +1 -1
- package/MonthCalendar/MonthCalendar.js +31 -11
- package/MonthCalendar/MonthCalendar.types.d.ts +2 -2
- package/MonthCalendar/MonthCalendarButton.d.ts +24 -0
- package/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
- package/MonthCalendar/index.d.ts +0 -3
- package/MonthCalendar/index.js +1 -2
- package/MonthCalendar/monthCalendarClasses.d.ts +7 -1
- package/MonthCalendar/monthCalendarClasses.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
- package/PickersActionBar/PickersActionBar.d.ts +0 -4
- package/PickersActionBar/PickersActionBar.js +12 -13
- package/PickersLayout/PickersLayout.d.ts +2 -2
- package/PickersLayout/PickersLayout.js +1 -11
- package/PickersLayout/PickersLayout.types.d.ts +12 -14
- package/PickersLayout/usePickerLayout.d.ts +2 -2
- package/PickersLayout/usePickerLayout.js +3 -18
- package/PickersSectionList/PickersSectionList.js +21 -16
- package/PickersSectionList/PickersSectionList.types.d.ts +13 -6
- package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +7 -0
- package/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
- package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
- package/PickersTextField/PickersInput/PickersInput.js +20 -14
- package/PickersTextField/PickersInput/pickersInputClasses.d.ts +3 -2
- package/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
- package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +3 -6
- package/PickersTextField/PickersInputBase/PickersInputBase.js +36 -37
- package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +1 -0
- package/PickersTextField/PickersOutlinedInput/Outline.d.ts +0 -1
- package/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
- package/PickersTextField/PickersTextField.js +75 -62
- package/PickersTextField/PickersTextField.types.d.ts +43 -4
- package/PickersTextField/usePickerTextFieldOwnerState.d.ts +4 -0
- package/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
- package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -3
- package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -2
- package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -2
- package/TimeClock/Clock.d.ts +4 -0
- package/TimeClock/Clock.js +9 -6
- package/TimeClock/TimeClock.js +21 -4
- package/TimePicker/TimePicker.types.d.ts +2 -2
- package/TimePicker/TimePickerToolbar.d.ts +2 -2
- package/TimePicker/TimePickerToolbar.js +6 -20
- package/YearCalendar/YearCalendar.js +46 -13
- package/YearCalendar/YearCalendar.types.d.ts +2 -2
- package/YearCalendar/YearCalendarButton.d.ts +23 -0
- package/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
- package/YearCalendar/index.d.ts +0 -3
- package/YearCalendar/index.js +1 -2
- package/YearCalendar/yearCalendarClasses.d.ts +7 -1
- package/YearCalendar/yearCalendarClasses.js +1 -1
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +2 -1
- package/hooks/usePickerActionsContext.d.ts +5 -0
- package/hooks/usePickerActionsContext.js +16 -0
- package/hooks/usePickerContext.d.ts +3 -1
- package/hooks/usePickerContext.js +0 -1
- package/index.js +1 -1
- package/internals/components/PickerProvider.d.ts +11 -6
- package/internals/components/PickerProvider.js +12 -6
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +1 -1
- package/internals/components/PickersModalDialog.d.ts +1 -3
- package/internals/components/PickersModalDialog.js +9 -3
- package/internals/components/PickersPopper.d.ts +1 -3
- package/internals/components/PickersPopper.js +11 -6
- package/internals/components/PickersToolbar.d.ts +3 -3
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +9 -9
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +5 -5
- package/internals/hooks/useFieldOwnerState.d.ts +1 -0
- package/internals/hooks/useFieldOwnerState.js +6 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.js +8 -7
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +5 -5
- package/internals/hooks/usePicker/usePicker.js +1 -3
- package/internals/hooks/usePicker/usePicker.types.d.ts +2 -2
- package/internals/hooks/usePicker/usePickerProvider.js +5 -4
- package/internals/hooks/usePicker/usePickerValue.js +46 -64
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +38 -17
- package/internals/hooks/usePicker/usePickerViews.d.ts +15 -4
- package/internals/hooks/usePicker/usePickerViews.js +9 -7
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +4 -4
- package/internals/index.d.ts +4 -4
- package/internals/index.js +1 -1
- package/internals/models/props/tabs.d.ts +0 -13
- package/internals/models/props/toolbar.d.ts +1 -16
- package/models/fields.d.ts +11 -1
- package/modern/DatePicker/DatePickerToolbar.js +6 -17
- package/modern/DateTimePicker/DateTimePickerTabs.js +6 -13
- package/modern/DateTimePicker/DateTimePickerToolbar.js +13 -24
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -11
- package/modern/MonthCalendar/MonthCalendar.js +31 -11
- package/modern/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
- package/modern/MonthCalendar/index.js +1 -2
- package/modern/MonthCalendar/monthCalendarClasses.js +1 -1
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
- package/modern/PickersActionBar/PickersActionBar.js +12 -13
- package/modern/PickersLayout/PickersLayout.js +1 -11
- package/modern/PickersLayout/usePickerLayout.js +3 -18
- package/modern/PickersSectionList/PickersSectionList.js +21 -16
- package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
- package/modern/PickersTextField/PickersInput/PickersInput.js +20 -14
- package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
- package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +36 -37
- package/modern/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
- package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
- package/modern/PickersTextField/PickersTextField.js +75 -62
- package/modern/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
- package/modern/TimeClock/Clock.js +9 -6
- package/modern/TimeClock/TimeClock.js +21 -4
- package/modern/TimePicker/TimePickerToolbar.js +6 -20
- package/modern/YearCalendar/YearCalendar.js +46 -13
- package/modern/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
- package/modern/YearCalendar/index.js +1 -2
- package/modern/YearCalendar/yearCalendarClasses.js +1 -1
- package/modern/hooks/index.js +2 -1
- package/modern/hooks/usePickerActionsContext.js +16 -0
- package/modern/hooks/usePickerContext.js +0 -1
- package/modern/index.js +1 -1
- package/modern/internals/components/PickerProvider.js +12 -6
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
- package/modern/internals/components/PickersModalDialog.js +9 -3
- package/modern/internals/components/PickersPopper.js +11 -6
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +9 -9
- package/modern/internals/hooks/useFieldOwnerState.js +6 -2
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +8 -7
- package/modern/internals/hooks/usePicker/usePicker.js +1 -3
- package/modern/internals/hooks/usePicker/usePickerProvider.js +5 -4
- package/modern/internals/hooks/usePicker/usePickerValue.js +46 -64
- package/modern/internals/hooks/usePicker/usePickerViews.js +9 -7
- package/modern/internals/index.js +1 -1
- package/node/DatePicker/DatePickerToolbar.js +6 -17
- package/node/DateTimePicker/DateTimePickerTabs.js +6 -13
- package/node/DateTimePicker/DateTimePickerToolbar.js +14 -25
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -11
- package/node/MonthCalendar/MonthCalendar.js +31 -11
- package/node/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
- package/node/MonthCalendar/index.js +1 -8
- package/node/MonthCalendar/monthCalendarClasses.js +1 -1
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
- package/node/PickersActionBar/PickersActionBar.js +12 -13
- package/node/PickersLayout/PickersLayout.js +1 -11
- package/node/PickersLayout/usePickerLayout.js +3 -18
- package/node/PickersSectionList/PickersSectionList.js +21 -16
- package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
- package/node/PickersTextField/PickersInput/PickersInput.js +20 -14
- package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
- package/node/PickersTextField/PickersInputBase/PickersInputBase.js +36 -37
- package/node/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
- package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
- package/node/PickersTextField/PickersTextField.js +75 -62
- package/node/PickersTextField/usePickerTextFieldOwnerState.js +18 -0
- package/node/TimeClock/Clock.js +9 -6
- package/node/TimeClock/TimeClock.js +21 -4
- package/node/TimePicker/TimePickerToolbar.js +6 -20
- package/node/YearCalendar/YearCalendar.js +45 -12
- package/node/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
- package/node/YearCalendar/index.js +1 -8
- package/node/YearCalendar/yearCalendarClasses.js +1 -1
- package/node/hooks/index.js +8 -1
- package/node/hooks/usePickerActionsContext.js +22 -0
- package/node/index.js +1 -1
- package/node/internals/components/PickerProvider.js +13 -7
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
- package/node/internals/components/PickersModalDialog.js +9 -3
- package/node/internals/components/PickersPopper.js +11 -6
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +9 -9
- package/node/internals/hooks/useFieldOwnerState.js +6 -2
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +8 -7
- package/node/internals/hooks/usePicker/usePicker.js +1 -3
- package/node/internals/hooks/usePicker/usePickerProvider.js +5 -4
- package/node/internals/hooks/usePicker/usePickerValue.js +46 -64
- package/node/internals/hooks/usePicker/usePickerViews.js +9 -7
- package/node/internals/index.js +2 -2
- package/package.json +3 -3
- package/themeAugmentation/components.d.ts +0 -8
- package/themeAugmentation/overrides.d.ts +2 -4
- package/themeAugmentation/props.d.ts +4 -7
- package/MonthCalendar/PickersMonth.d.ts +0 -28
- package/MonthCalendar/pickersMonthClasses.d.ts +0 -13
- package/MonthCalendar/pickersMonthClasses.js +0 -5
- package/YearCalendar/PickersYear.d.ts +0 -27
- package/YearCalendar/pickersYearClasses.d.ts +0 -13
- package/YearCalendar/pickersYearClasses.js +0 -5
- package/modern/MonthCalendar/pickersMonthClasses.js +0 -5
- package/modern/YearCalendar/pickersYearClasses.js +0 -5
- package/node/MonthCalendar/pickersMonthClasses.js +0 -12
- package/node/YearCalendar/pickersYearClasses.js +0 -12
|
@@ -193,6 +193,9 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
193
193
|
{
|
|
194
194
|
const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(rawValue, meridiemMode, ampm);
|
|
195
195
|
const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);
|
|
196
|
+
if (utils.getHours(dateWithNewHours) !== valueWithMeridiem) {
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
196
199
|
const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);
|
|
197
200
|
const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);
|
|
198
201
|
return !containsValidTime({
|
|
@@ -232,9 +235,20 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
232
235
|
const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(hourValue, meridiemMode, ampm);
|
|
233
236
|
setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish, 'hours');
|
|
234
237
|
};
|
|
238
|
+
const viewValue = utils.getHours(valueOrReferenceDate);
|
|
239
|
+
let viewRange;
|
|
240
|
+
if (ampm) {
|
|
241
|
+
if (viewValue > 12) {
|
|
242
|
+
viewRange = [12, 23];
|
|
243
|
+
} else {
|
|
244
|
+
viewRange = [0, 11];
|
|
245
|
+
}
|
|
246
|
+
} else {
|
|
247
|
+
viewRange = [0, 23];
|
|
248
|
+
}
|
|
235
249
|
return {
|
|
236
250
|
onChange: handleHoursChange,
|
|
237
|
-
viewValue
|
|
251
|
+
viewValue,
|
|
238
252
|
children: (0, _ClockNumbers.getHourNumbers)({
|
|
239
253
|
value,
|
|
240
254
|
utils,
|
|
@@ -243,7 +257,8 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
243
257
|
getClockNumberText: translations.hoursClockNumberText,
|
|
244
258
|
isDisabled: hourValue => disabled || isTimeDisabled(hourValue, 'hours'),
|
|
245
259
|
selectedId
|
|
246
|
-
})
|
|
260
|
+
}),
|
|
261
|
+
viewRange
|
|
247
262
|
};
|
|
248
263
|
}
|
|
249
264
|
case 'minutes':
|
|
@@ -262,7 +277,8 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
262
277
|
getClockNumberText: translations.minutesClockNumberText,
|
|
263
278
|
isDisabled: minuteValue => disabled || isTimeDisabled(minuteValue, 'minutes'),
|
|
264
279
|
selectedId
|
|
265
|
-
})
|
|
280
|
+
}),
|
|
281
|
+
viewRange: [0, 59]
|
|
266
282
|
};
|
|
267
283
|
}
|
|
268
284
|
case 'seconds':
|
|
@@ -281,7 +297,8 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
281
297
|
getClockNumberText: translations.secondsClockNumberText,
|
|
282
298
|
isDisabled: secondValue => disabled || isTimeDisabled(secondValue, 'seconds'),
|
|
283
299
|
selectedId
|
|
284
|
-
})
|
|
300
|
+
}),
|
|
301
|
+
viewRange: [0, 59]
|
|
285
302
|
};
|
|
286
303
|
}
|
|
287
304
|
default:
|
|
@@ -26,7 +26,7 @@ var _dateUtils = require("../internals/utils/date-utils");
|
|
|
26
26
|
var _hooks = require("../hooks");
|
|
27
27
|
var _useToolbarOwnerState = require("../internals/hooks/useToolbarOwnerState");
|
|
28
28
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
|
-
const _excluded = ["ampm", "ampmInClock", "value", "isLandscape", "onChange", "
|
|
29
|
+
const _excluded = ["ampm", "ampmInClock", "value", "isLandscape", "onChange", "className", "classes"];
|
|
30
30
|
const useUtilityClasses = (classes, ownerState) => {
|
|
31
31
|
const {
|
|
32
32
|
pickerOrientation,
|
|
@@ -132,9 +132,6 @@ function TimePickerToolbar(inProps) {
|
|
|
132
132
|
value,
|
|
133
133
|
isLandscape,
|
|
134
134
|
onChange,
|
|
135
|
-
view,
|
|
136
|
-
onViewChange,
|
|
137
|
-
views,
|
|
138
135
|
className,
|
|
139
136
|
classes: classesProp
|
|
140
137
|
} = props,
|
|
@@ -145,7 +142,10 @@ function TimePickerToolbar(inProps) {
|
|
|
145
142
|
const classes = useUtilityClasses(classesProp, ownerState);
|
|
146
143
|
const {
|
|
147
144
|
disabled,
|
|
148
|
-
readOnly
|
|
145
|
+
readOnly,
|
|
146
|
+
view,
|
|
147
|
+
onViewChange,
|
|
148
|
+
views
|
|
149
149
|
} = (0, _hooks.usePickerContext)();
|
|
150
150
|
const showAmPmControl = Boolean(ampm && !ampmInClock && views.includes('hours'));
|
|
151
151
|
const {
|
|
@@ -230,12 +230,6 @@ process.env.NODE_ENV !== "production" ? TimePickerToolbar.propTypes = {
|
|
|
230
230
|
hidden: _propTypes.default.bool,
|
|
231
231
|
isLandscape: _propTypes.default.bool.isRequired,
|
|
232
232
|
onChange: _propTypes.default.func.isRequired,
|
|
233
|
-
/**
|
|
234
|
-
* Callback called when a toolbar is clicked
|
|
235
|
-
* @template TView
|
|
236
|
-
* @param {TView} view The view to open
|
|
237
|
-
*/
|
|
238
|
-
onViewChange: _propTypes.default.func.isRequired,
|
|
239
233
|
/**
|
|
240
234
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
241
235
|
*/
|
|
@@ -250,13 +244,5 @@ process.env.NODE_ENV !== "production" ? TimePickerToolbar.propTypes = {
|
|
|
250
244
|
* @default "––"
|
|
251
245
|
*/
|
|
252
246
|
toolbarPlaceholder: _propTypes.default.node,
|
|
253
|
-
value: _propTypes.default.object
|
|
254
|
-
/**
|
|
255
|
-
* Currently visible picker view.
|
|
256
|
-
*/
|
|
257
|
-
view: _propTypes.default.oneOf(['hours', 'meridiem', 'minutes', 'seconds']).isRequired,
|
|
258
|
-
/**
|
|
259
|
-
* Available views.
|
|
260
|
-
*/
|
|
261
|
-
views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['hours', 'meridiem', 'minutes', 'seconds']).isRequired).isRequired
|
|
247
|
+
value: _propTypes.default.object
|
|
262
248
|
} : void 0;
|
|
@@ -13,9 +13,10 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
14
14
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
15
15
|
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
16
|
+
var _createStyled = require("@mui/system/createStyled");
|
|
16
17
|
var _styles = require("@mui/material/styles");
|
|
17
18
|
var _utils = require("@mui/utils");
|
|
18
|
-
var
|
|
19
|
+
var _YearCalendarButton = require("./YearCalendarButton");
|
|
19
20
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
20
21
|
var _yearCalendarClasses = require("./yearCalendarClasses");
|
|
21
22
|
var _dateUtils = require("../internals/utils/date-utils");
|
|
@@ -44,6 +45,7 @@ function useYearCalendarDefaultizedProps(props, name) {
|
|
|
44
45
|
disableFuture: false
|
|
45
46
|
}, themeProps, {
|
|
46
47
|
yearsPerRow: themeProps.yearsPerRow ?? 3,
|
|
48
|
+
yearsOrder: themeProps.yearsOrder ?? 'asc',
|
|
47
49
|
minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
|
|
48
50
|
maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
49
51
|
});
|
|
@@ -51,19 +53,43 @@ function useYearCalendarDefaultizedProps(props, name) {
|
|
|
51
53
|
const YearCalendarRoot = (0, _styles.styled)('div', {
|
|
52
54
|
name: 'MuiYearCalendar',
|
|
53
55
|
slot: 'Root',
|
|
54
|
-
|
|
56
|
+
shouldForwardProp: prop => (0, _createStyled.shouldForwardProp)(prop) && prop !== 'yearsPerRow'
|
|
55
57
|
})({
|
|
56
58
|
display: 'flex',
|
|
57
|
-
flexDirection: 'row',
|
|
58
59
|
flexWrap: 'wrap',
|
|
60
|
+
justifyContent: 'space-evenly',
|
|
61
|
+
rowGap: 12,
|
|
62
|
+
padding: '6px 0',
|
|
59
63
|
overflowY: 'auto',
|
|
60
64
|
height: '100%',
|
|
61
|
-
padding: '0 4px',
|
|
62
65
|
width: _dimensions.DIALOG_WIDTH,
|
|
63
66
|
maxHeight: _dimensions.MAX_CALENDAR_HEIGHT,
|
|
64
67
|
// avoid padding increasing width over defined
|
|
65
68
|
boxSizing: 'border-box',
|
|
66
|
-
position: 'relative'
|
|
69
|
+
position: 'relative',
|
|
70
|
+
variants: [{
|
|
71
|
+
props: {
|
|
72
|
+
yearsPerRow: 3
|
|
73
|
+
},
|
|
74
|
+
style: {
|
|
75
|
+
columnGap: 24
|
|
76
|
+
}
|
|
77
|
+
}, {
|
|
78
|
+
props: {
|
|
79
|
+
yearsPerRow: 4
|
|
80
|
+
},
|
|
81
|
+
style: {
|
|
82
|
+
columnGap: 0,
|
|
83
|
+
padding: '0 2px'
|
|
84
|
+
}
|
|
85
|
+
}]
|
|
86
|
+
});
|
|
87
|
+
const YearCalendarButtonFiller = (0, _styles.styled)('div', {
|
|
88
|
+
name: 'MuiYearCalendar',
|
|
89
|
+
slot: 'ButtonFiller'
|
|
90
|
+
})({
|
|
91
|
+
height: 36,
|
|
92
|
+
width: 72
|
|
67
93
|
});
|
|
68
94
|
/**
|
|
69
95
|
* Demos:
|
|
@@ -94,7 +120,7 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
94
120
|
onYearFocus,
|
|
95
121
|
hasFocus,
|
|
96
122
|
onFocusedViewChange,
|
|
97
|
-
yearsOrder
|
|
123
|
+
yearsOrder,
|
|
98
124
|
yearsPerRow,
|
|
99
125
|
timezone: timezoneProp,
|
|
100
126
|
gridLabelId,
|
|
@@ -246,18 +272,23 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
246
272
|
if (yearsOrder === 'desc') {
|
|
247
273
|
yearRange.reverse();
|
|
248
274
|
}
|
|
249
|
-
|
|
275
|
+
let fillerAmount = yearsPerRow - yearRange.length % yearsPerRow;
|
|
276
|
+
if (fillerAmount === yearsPerRow) {
|
|
277
|
+
fillerAmount = 0;
|
|
278
|
+
}
|
|
279
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(YearCalendarRoot, (0, _extends2.default)({
|
|
250
280
|
ref: handleRef,
|
|
251
281
|
className: (0, _clsx.default)(classes.root, className),
|
|
252
282
|
ownerState: ownerState,
|
|
253
283
|
role: "radiogroup",
|
|
254
|
-
"aria-labelledby": gridLabelId
|
|
284
|
+
"aria-labelledby": gridLabelId,
|
|
285
|
+
yearsPerRow: yearsPerRow
|
|
255
286
|
}, other, {
|
|
256
|
-
children: yearRange.map(year => {
|
|
287
|
+
children: [yearRange.map(year => {
|
|
257
288
|
const yearNumber = utils.getYear(year);
|
|
258
289
|
const isSelected = yearNumber === selectedYear;
|
|
259
290
|
const isDisabled = disabled || isYearDisabled(year);
|
|
260
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
291
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_YearCalendarButton.YearCalendarButton, {
|
|
261
292
|
selected: isSelected,
|
|
262
293
|
value: yearNumber,
|
|
263
294
|
onClick: handleYearSelection,
|
|
@@ -268,12 +299,14 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
268
299
|
onFocus: handleYearFocus,
|
|
269
300
|
onBlur: handleYearBlur,
|
|
270
301
|
"aria-current": todayYear === yearNumber ? 'date' : undefined,
|
|
271
|
-
yearsPerRow: yearsPerRow,
|
|
272
302
|
slots: slots,
|
|
273
303
|
slotProps: slotProps,
|
|
304
|
+
classes: classesProp,
|
|
274
305
|
children: utils.format(year, 'year')
|
|
275
306
|
}, utils.format(year, 'year'));
|
|
276
|
-
})
|
|
307
|
+
}), Array.from({
|
|
308
|
+
length: fillerAmount
|
|
309
|
+
}, (_, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(YearCalendarButtonFiller, {}, index))]
|
|
277
310
|
}));
|
|
278
311
|
});
|
|
279
312
|
process.env.NODE_ENV !== "production" ? YearCalendar.propTypes = {
|
|
@@ -5,51 +5,31 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.YearCalendarButton = void 0;
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
12
|
var _styles = require("@mui/material/styles");
|
|
14
13
|
var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
15
14
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
16
15
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
17
|
-
var _pickersYearClasses = require("./pickersYearClasses");
|
|
18
16
|
var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
|
|
17
|
+
var _yearCalendarClasses = require("./yearCalendarClasses");
|
|
19
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
-
const _excluded = ["autoFocus", "
|
|
19
|
+
const _excluded = ["autoFocus", "classes", "disabled", "selected", "value", "onClick", "onKeyDown", "onFocus", "onBlur", "slots", "slotProps"];
|
|
21
20
|
const useUtilityClasses = (classes, ownerState) => {
|
|
22
21
|
const slots = {
|
|
23
|
-
|
|
24
|
-
yearButton: ['yearButton', ownerState.isYearDisabled && 'disabled', ownerState.isYearSelected && 'selected']
|
|
22
|
+
button: ['button', ownerState.isYearDisabled && 'disabled', ownerState.isYearSelected && 'selected']
|
|
25
23
|
};
|
|
26
|
-
return (0, _composeClasses.default)(slots,
|
|
24
|
+
return (0, _composeClasses.default)(slots, _yearCalendarClasses.getYearCalendarUtilityClass, classes);
|
|
27
25
|
};
|
|
28
|
-
const
|
|
29
|
-
name: '
|
|
30
|
-
slot: '
|
|
31
|
-
overridesResolver: (_, styles) => [styles.
|
|
32
|
-
}
|
|
33
|
-
display: 'flex',
|
|
34
|
-
alignItems: 'center',
|
|
35
|
-
justifyContent: 'center',
|
|
36
|
-
flexBasis: '33.3%',
|
|
37
|
-
variants: [{
|
|
38
|
-
props: {
|
|
39
|
-
yearsPerRow: 4
|
|
40
|
-
},
|
|
41
|
-
style: {
|
|
42
|
-
flexBasis: '25%'
|
|
43
|
-
}
|
|
44
|
-
}]
|
|
45
|
-
});
|
|
46
|
-
const YearCalendarButton = (0, _styles.styled)('button', {
|
|
47
|
-
name: 'MuiPickersYear',
|
|
48
|
-
slot: 'YearButton',
|
|
49
|
-
overridesResolver: (_, styles) => [styles.yearButton, {
|
|
50
|
-
[`&.${_pickersYearClasses.pickersYearClasses.disabled}`]: styles.disabled
|
|
26
|
+
const DefaultYearButton = (0, _styles.styled)('button', {
|
|
27
|
+
name: 'MuiYearCalendar',
|
|
28
|
+
slot: 'Button',
|
|
29
|
+
overridesResolver: (_, styles) => [styles.button, {
|
|
30
|
+
[`&.${_yearCalendarClasses.yearCalendarClasses.disabled}`]: styles.disabled
|
|
51
31
|
}, {
|
|
52
|
-
[`&.${
|
|
32
|
+
[`&.${_yearCalendarClasses.yearCalendarClasses.selected}`]: styles.selected
|
|
53
33
|
}]
|
|
54
34
|
})(({
|
|
55
35
|
theme
|
|
@@ -59,7 +39,6 @@ const YearCalendarButton = (0, _styles.styled)('button', {
|
|
|
59
39
|
border: 0,
|
|
60
40
|
outline: 0
|
|
61
41
|
}, theme.typography.subtitle1, {
|
|
62
|
-
margin: '6px 0',
|
|
63
42
|
height: 36,
|
|
64
43
|
width: 72,
|
|
65
44
|
borderRadius: 18,
|
|
@@ -74,10 +53,10 @@ const YearCalendarButton = (0, _styles.styled)('button', {
|
|
|
74
53
|
cursor: 'auto',
|
|
75
54
|
pointerEvents: 'none'
|
|
76
55
|
},
|
|
77
|
-
[`&.${
|
|
56
|
+
[`&.${_yearCalendarClasses.yearCalendarClasses.disabled}`]: {
|
|
78
57
|
color: (theme.vars || theme).palette.text.secondary
|
|
79
58
|
},
|
|
80
|
-
[`&.${
|
|
59
|
+
[`&.${_yearCalendarClasses.yearCalendarClasses.selected}`]: {
|
|
81
60
|
color: (theme.vars || theme).palette.primary.contrastText,
|
|
82
61
|
backgroundColor: (theme.vars || theme).palette.primary.main,
|
|
83
62
|
'&:focus, &:hover': {
|
|
@@ -89,28 +68,17 @@ const YearCalendarButton = (0, _styles.styled)('button', {
|
|
|
89
68
|
/**
|
|
90
69
|
* @ignore - internal component.
|
|
91
70
|
*/
|
|
92
|
-
const
|
|
93
|
-
const props = (0, _styles.useThemeProps)({
|
|
94
|
-
props: inProps,
|
|
95
|
-
name: 'MuiPickersYear'
|
|
96
|
-
});
|
|
71
|
+
const YearCalendarButton = exports.YearCalendarButton = /*#__PURE__*/React.memo(function YearCalendarButton(props) {
|
|
97
72
|
const {
|
|
98
73
|
autoFocus,
|
|
99
|
-
className,
|
|
100
74
|
classes: classesProp,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
selected = false,
|
|
75
|
+
disabled,
|
|
76
|
+
selected,
|
|
104
77
|
value,
|
|
105
|
-
tabIndex,
|
|
106
78
|
onClick,
|
|
107
79
|
onKeyDown,
|
|
108
80
|
onFocus,
|
|
109
81
|
onBlur,
|
|
110
|
-
'aria-current': ariaCurrent
|
|
111
|
-
// We don't want to forward this prop to the root element
|
|
112
|
-
,
|
|
113
|
-
|
|
114
82
|
slots,
|
|
115
83
|
slotProps
|
|
116
84
|
} = props,
|
|
@@ -132,18 +100,16 @@ const PickersYear = exports.PickersYear = /*#__PURE__*/React.memo(function Picke
|
|
|
132
100
|
ref.current?.focus();
|
|
133
101
|
}
|
|
134
102
|
}, [autoFocus]);
|
|
135
|
-
const YearButton = slots?.yearButton ??
|
|
103
|
+
const YearButton = slots?.yearButton ?? DefaultYearButton;
|
|
136
104
|
const yearButtonProps = (0, _useSlotProps.default)({
|
|
137
105
|
elementType: YearButton,
|
|
138
106
|
externalSlotProps: slotProps?.yearButton,
|
|
107
|
+
externalForwardedProps: other,
|
|
139
108
|
additionalProps: {
|
|
140
|
-
children,
|
|
141
109
|
disabled,
|
|
142
|
-
tabIndex,
|
|
143
110
|
ref,
|
|
144
111
|
type: 'button',
|
|
145
112
|
role: 'radio',
|
|
146
|
-
'aria-current': ariaCurrent,
|
|
147
113
|
'aria-checked': selected,
|
|
148
114
|
onClick: event => onClick(event, value),
|
|
149
115
|
onKeyDown: event => onKeyDown(event, value),
|
|
@@ -151,12 +117,7 @@ const PickersYear = exports.PickersYear = /*#__PURE__*/React.memo(function Picke
|
|
|
151
117
|
onBlur: event => onBlur(event, value)
|
|
152
118
|
},
|
|
153
119
|
ownerState,
|
|
154
|
-
className: classes.
|
|
120
|
+
className: classes.button
|
|
155
121
|
});
|
|
156
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
157
|
-
className: (0, _clsx.default)(classes.root, className),
|
|
158
|
-
ownerState: ownerState
|
|
159
|
-
}, other, {
|
|
160
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(YearButton, (0, _extends2.default)({}, yearButtonProps))
|
|
161
|
-
}));
|
|
122
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(YearButton, (0, _extends2.default)({}, yearButtonProps));
|
|
162
123
|
});
|
|
@@ -15,12 +15,6 @@ Object.defineProperty(exports, "getYearCalendarUtilityClass", {
|
|
|
15
15
|
return _yearCalendarClasses.getYearCalendarUtilityClass;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "pickersYearClasses", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () {
|
|
21
|
-
return _pickersYearClasses.pickersYearClasses;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
18
|
Object.defineProperty(exports, "yearCalendarClasses", {
|
|
25
19
|
enumerable: true,
|
|
26
20
|
get: function () {
|
|
@@ -28,5 +22,4 @@ Object.defineProperty(exports, "yearCalendarClasses", {
|
|
|
28
22
|
}
|
|
29
23
|
});
|
|
30
24
|
var _YearCalendar = require("./YearCalendar");
|
|
31
|
-
var _yearCalendarClasses = require("./yearCalendarClasses");
|
|
32
|
-
var _pickersYearClasses = require("./pickersYearClasses");
|
|
25
|
+
var _yearCalendarClasses = require("./yearCalendarClasses");
|
|
@@ -9,4 +9,4 @@ var _utils = require("@mui/utils");
|
|
|
9
9
|
function getYearCalendarUtilityClass(slot) {
|
|
10
10
|
return (0, _utils.unstable_generateUtilityClass)('MuiYearCalendar', slot);
|
|
11
11
|
}
|
|
12
|
-
const yearCalendarClasses = exports.yearCalendarClasses = (0, _utils.unstable_generateUtilityClasses)('MuiYearCalendar', ['root']);
|
|
12
|
+
const yearCalendarClasses = exports.yearCalendarClasses = (0, _utils.unstable_generateUtilityClasses)('MuiYearCalendar', ['root', 'button', 'disabled', 'selected']);
|
package/node/hooks/index.js
CHANGED
|
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "useParsedFormat", {
|
|
|
15
15
|
return _useParsedFormat.useParsedFormat;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "usePickerActionsContext", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _usePickerActionsContext.usePickerActionsContext;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
18
24
|
Object.defineProperty(exports, "usePickerContext", {
|
|
19
25
|
enumerable: true,
|
|
20
26
|
get: function () {
|
|
@@ -37,4 +43,5 @@ var _useClearableField = require("./useClearableField");
|
|
|
37
43
|
var _usePickerTranslations = require("./usePickerTranslations");
|
|
38
44
|
var _useSplitFieldProps = require("./useSplitFieldProps");
|
|
39
45
|
var _useParsedFormat = require("./useParsedFormat");
|
|
40
|
-
var _usePickerContext = require("./usePickerContext");
|
|
46
|
+
var _usePickerContext = require("./usePickerContext");
|
|
47
|
+
var _usePickerActionsContext = require("./usePickerActionsContext");
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.usePickerActionsContext = void 0;
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _PickerProvider = require("../internals/components/PickerProvider");
|
|
11
|
+
/**
|
|
12
|
+
* Returns a subset of the context passed by the picker wrapping the current component.
|
|
13
|
+
* It only contains the actions and never causes a re-render of the component using it.
|
|
14
|
+
*/
|
|
15
|
+
const usePickerActionsContext = () => {
|
|
16
|
+
const value = React.useContext(_PickerProvider.PickerActionsContext);
|
|
17
|
+
if (value == null) {
|
|
18
|
+
throw new Error(['MUI X: The `usePickerActionsContext` can only be called in fields that are used as a slot of a picker component'].join('\n'));
|
|
19
|
+
}
|
|
20
|
+
return value;
|
|
21
|
+
};
|
|
22
|
+
exports.usePickerActionsContext = usePickerActionsContext;
|
package/node/index.js
CHANGED
|
@@ -4,12 +4,13 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.PickerPrivateContext = exports.PickerContext = void 0;
|
|
7
|
+
exports.PickerPrivateContext = exports.PickerContext = exports.PickerActionsContext = void 0;
|
|
8
8
|
exports.PickerProvider = PickerProvider;
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _LocalizationProvider = require("../../LocalizationProvider");
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
const PickerContext = exports.PickerContext = /*#__PURE__*/React.createContext(null);
|
|
13
|
+
const PickerActionsContext = exports.PickerActionsContext = /*#__PURE__*/React.createContext(null);
|
|
13
14
|
const PickerPrivateContext = exports.PickerPrivateContext = /*#__PURE__*/React.createContext({
|
|
14
15
|
ownerState: {
|
|
15
16
|
isPickerDisabled: false,
|
|
@@ -18,7 +19,8 @@ const PickerPrivateContext = exports.PickerPrivateContext = /*#__PURE__*/React.c
|
|
|
18
19
|
isPickerOpen: false,
|
|
19
20
|
pickerVariant: 'desktop',
|
|
20
21
|
pickerOrientation: 'portrait'
|
|
21
|
-
}
|
|
22
|
+
},
|
|
23
|
+
dismissViews: () => {}
|
|
22
24
|
});
|
|
23
25
|
|
|
24
26
|
/**
|
|
@@ -31,17 +33,21 @@ const PickerPrivateContext = exports.PickerPrivateContext = /*#__PURE__*/React.c
|
|
|
31
33
|
function PickerProvider(props) {
|
|
32
34
|
const {
|
|
33
35
|
contextValue,
|
|
36
|
+
actionsContextValue,
|
|
34
37
|
privateContextValue,
|
|
35
38
|
localeText,
|
|
36
39
|
children
|
|
37
40
|
} = props;
|
|
38
41
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerContext.Provider, {
|
|
39
42
|
value: contextValue,
|
|
40
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
41
|
-
value:
|
|
42
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
43
|
-
|
|
44
|
-
children:
|
|
43
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerActionsContext.Provider, {
|
|
44
|
+
value: actionsContextValue,
|
|
45
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerPrivateContext.Provider, {
|
|
46
|
+
value: privateContextValue,
|
|
47
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LocalizationProvider.LocalizationProvider, {
|
|
48
|
+
localeText: localeText,
|
|
49
|
+
children: children
|
|
50
|
+
})
|
|
45
51
|
})
|
|
46
52
|
})
|
|
47
53
|
});
|
|
@@ -46,7 +46,7 @@ const PickersArrowSwitcherButton = (0, _styles.styled)(_IconButton.default, {
|
|
|
46
46
|
})({
|
|
47
47
|
variants: [{
|
|
48
48
|
props: {
|
|
49
|
-
|
|
49
|
+
isButtonHidden: true
|
|
50
50
|
},
|
|
51
51
|
style: {
|
|
52
52
|
visibility: 'hidden'
|
|
@@ -117,7 +117,7 @@ const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.f
|
|
|
117
117
|
onClick: previousProps.goTo
|
|
118
118
|
},
|
|
119
119
|
ownerState: (0, _extends2.default)({}, ownerState, {
|
|
120
|
-
|
|
120
|
+
isButtonHidden: previousProps.isHidden ?? false
|
|
121
121
|
}),
|
|
122
122
|
className: (0, _clsx.default)(classes.button, classes.previousIconButton)
|
|
123
123
|
});
|
|
@@ -134,7 +134,7 @@ const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.f
|
|
|
134
134
|
onClick: nextProps.goTo
|
|
135
135
|
},
|
|
136
136
|
ownerState: (0, _extends2.default)({}, ownerState, {
|
|
137
|
-
|
|
137
|
+
isButtonHidden: nextProps.isHidden ?? false
|
|
138
138
|
}),
|
|
139
139
|
className: (0, _clsx.default)(classes.button, classes.nextIconButton)
|
|
140
140
|
});
|
|
@@ -13,6 +13,8 @@ var _Fade = _interopRequireDefault(require("@mui/material/Fade"));
|
|
|
13
13
|
var _Dialog = _interopRequireWildcard(require("@mui/material/Dialog"));
|
|
14
14
|
var _styles = require("@mui/material/styles");
|
|
15
15
|
var _dimensions = require("../constants/dimensions");
|
|
16
|
+
var _hooks = require("../../hooks");
|
|
17
|
+
var _usePickerPrivateContext = require("../hooks/usePickerPrivateContext");
|
|
16
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
19
|
const PickersModalDialogRoot = (0, _styles.styled)(_Dialog.default)({
|
|
18
20
|
[`& .${_Dialog.dialogClasses.container}`]: {
|
|
@@ -31,16 +33,20 @@ const PickersModalDialogContent = (0, _styles.styled)(_DialogContent.default)({
|
|
|
31
33
|
function PickersModalDialog(props) {
|
|
32
34
|
const {
|
|
33
35
|
children,
|
|
34
|
-
onDismiss,
|
|
35
|
-
open,
|
|
36
36
|
slots,
|
|
37
37
|
slotProps
|
|
38
38
|
} = props;
|
|
39
|
+
const {
|
|
40
|
+
open
|
|
41
|
+
} = (0, _hooks.usePickerContext)();
|
|
42
|
+
const {
|
|
43
|
+
dismissViews
|
|
44
|
+
} = (0, _usePickerPrivateContext.usePickerPrivateContext)();
|
|
39
45
|
const Dialog = slots?.dialog ?? PickersModalDialogRoot;
|
|
40
46
|
const Transition = slots?.mobileTransition ?? _Fade.default;
|
|
41
47
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Dialog, (0, _extends2.default)({
|
|
42
48
|
open: open,
|
|
43
|
-
onClose:
|
|
49
|
+
onClose: dismissViews
|
|
44
50
|
}, slotProps?.dialog, {
|
|
45
51
|
TransitionComponent: Transition,
|
|
46
52
|
TransitionProps: slotProps?.mobileTransition,
|
|
@@ -21,6 +21,7 @@ var _pickersPopperClasses = require("./pickersPopperClasses");
|
|
|
21
21
|
var _utils2 = require("../utils/utils");
|
|
22
22
|
var _useDefaultReduceAnimations = require("../hooks/useDefaultReduceAnimations");
|
|
23
23
|
var _usePickerPrivateContext = require("../hooks/usePickerPrivateContext");
|
|
24
|
+
var _hooks = require("../../hooks");
|
|
24
25
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
26
|
const _excluded = ["PaperComponent", "ownerState", "children", "paperSlotProps", "paperClasses", "onPaperClick", "onPaperTouchStart"];
|
|
26
27
|
const useUtilityClasses = classes => {
|
|
@@ -218,8 +219,6 @@ function PickersPopper(inProps) {
|
|
|
218
219
|
containerRef = null,
|
|
219
220
|
shouldRestoreFocus,
|
|
220
221
|
onBlur,
|
|
221
|
-
onDismiss,
|
|
222
|
-
open,
|
|
223
222
|
role,
|
|
224
223
|
placement = 'bottom',
|
|
225
224
|
slots,
|
|
@@ -227,17 +226,23 @@ function PickersPopper(inProps) {
|
|
|
227
226
|
reduceAnimations: inReduceAnimations,
|
|
228
227
|
classes: classesProp
|
|
229
228
|
} = props;
|
|
229
|
+
const {
|
|
230
|
+
open
|
|
231
|
+
} = (0, _hooks.usePickerContext)();
|
|
232
|
+
const {
|
|
233
|
+
dismissViews
|
|
234
|
+
} = (0, _usePickerPrivateContext.usePickerPrivateContext)();
|
|
230
235
|
React.useEffect(() => {
|
|
231
236
|
function handleKeyDown(nativeEvent) {
|
|
232
237
|
if (open && nativeEvent.key === 'Escape') {
|
|
233
|
-
|
|
238
|
+
dismissViews();
|
|
234
239
|
}
|
|
235
240
|
}
|
|
236
241
|
document.addEventListener('keydown', handleKeyDown);
|
|
237
242
|
return () => {
|
|
238
243
|
document.removeEventListener('keydown', handleKeyDown);
|
|
239
244
|
};
|
|
240
|
-
}, [
|
|
245
|
+
}, [dismissViews, open]);
|
|
241
246
|
const lastFocusedElementRef = React.useRef(null);
|
|
242
247
|
React.useEffect(() => {
|
|
243
248
|
if (role === 'tooltip' || shouldRestoreFocus && !shouldRestoreFocus()) {
|
|
@@ -255,7 +260,7 @@ function PickersPopper(inProps) {
|
|
|
255
260
|
});
|
|
256
261
|
}
|
|
257
262
|
}, [open, role, shouldRestoreFocus]);
|
|
258
|
-
const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur ??
|
|
263
|
+
const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur ?? dismissViews);
|
|
259
264
|
const paperRef = React.useRef(null);
|
|
260
265
|
const handleRef = (0, _utils.unstable_useForkRef)(paperRef, containerRef);
|
|
261
266
|
const handlePaperRef = (0, _utils.unstable_useForkRef)(handleRef, clickAwayRef);
|
|
@@ -272,7 +277,7 @@ function PickersPopper(inProps) {
|
|
|
272
277
|
if (event.key === 'Escape') {
|
|
273
278
|
// stop the propagation to avoid closing parent modal
|
|
274
279
|
event.stopPropagation();
|
|
275
|
-
|
|
280
|
+
dismissViews();
|
|
276
281
|
}
|
|
277
282
|
};
|
|
278
283
|
const Transition = slots?.desktopTransition ?? reduceAnimations ? _Fade.default : _Grow.default;
|