@mui/x-date-pickers 7.0.0-beta.7 → 7.1.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/AdapterDateFns/AdapterDateFns.js +1 -1
- package/AdapterDateFnsBase/AdapterDateFnsBase.js +1 -2
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -4
- package/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
- package/AdapterDayjs/AdapterDayjs.js +2 -4
- package/AdapterLuxon/AdapterLuxon.js +12 -9
- package/AdapterMoment/AdapterMoment.js +5 -6
- package/CHANGELOG.md +266 -12
- package/DateCalendar/DateCalendar.js +14 -16
- package/DateCalendar/DayCalendar.js +5 -6
- package/DateField/DateField.js +3 -4
- package/DatePicker/DatePicker.js +1 -1
- package/DatePicker/DatePickerToolbar.js +11 -6
- package/DatePicker/shared.d.ts +2 -1
- package/DatePicker/shared.js +3 -5
- package/DateTimeField/DateTimeField.js +3 -4
- package/DateTimePicker/DateTimePicker.js +1 -1
- package/DateTimePicker/DateTimePickerToolbar.js +98 -46
- package/DateTimePicker/shared.d.ts +2 -1
- package/DateTimePicker/shared.js +11 -13
- package/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/DesktopDatePicker/DesktopDatePicker.js +7 -11
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +72 -37
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +12 -0
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
- package/DesktopDateTimePicker/index.d.ts +1 -0
- package/DesktopDateTimePicker/index.js +2 -1
- package/DesktopTimePicker/DesktopTimePicker.js +8 -12
- package/DigitalClock/DigitalClock.js +16 -9
- package/LocalizationProvider/LocalizationProvider.js +1 -2
- package/MobileDatePicker/MobileDatePicker.js +6 -10
- package/MobileDateTimePicker/MobileDateTimePicker.js +8 -12
- package/MobileTimePicker/MobileTimePicker.js +6 -10
- package/MonthCalendar/MonthCalendar.js +4 -4
- package/MonthCalendar/PickersMonth.js +13 -8
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +16 -9
- package/PickersActionBar/PickersActionBar.js +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.js +17 -14
- package/PickersDay/PickersDay.js +30 -15
- package/PickersLayout/PickersLayout.js +31 -17
- package/PickersLayout/usePickerLayout.js +8 -9
- package/PickersSectionList/PickersSectionList.js +9 -11
- package/PickersTextField/PickersFilledInput/PickersFilledInput.js +138 -74
- package/PickersTextField/PickersInput/PickersInput.js +77 -55
- package/PickersTextField/PickersInputBase/PickersInputBase.js +67 -28
- package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +7 -0
- package/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +33 -14
- package/README.md +1 -1
- package/StaticDatePicker/StaticDatePicker.js +4 -5
- package/StaticDateTimePicker/StaticDateTimePicker.js +6 -7
- package/StaticTimePicker/StaticTimePicker.js +3 -4
- package/TimeClock/Clock.js +48 -35
- package/TimeClock/ClockNumber.js +12 -7
- package/TimeClock/ClockPointer.js +23 -13
- package/TimeClock/TimeClock.js +1 -1
- package/TimeField/TimeField.js +2 -3
- package/TimePicker/TimePickerToolbar.js +25 -16
- package/TimePicker/shared.d.ts +2 -1
- package/TimePicker/shared.js +5 -7
- package/YearCalendar/PickersYear.js +12 -6
- package/YearCalendar/YearCalendar.js +5 -6
- package/hooks/useClearableField.js +6 -7
- package/index.js +1 -1
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +19 -15
- package/internals/components/PickersModalDialog.js +6 -7
- package/internals/components/PickersPopper.js +25 -24
- package/internals/components/PickersToolbar.js +42 -24
- package/internals/hooks/date-helpers-hooks.js +1 -1
- package/internals/hooks/defaultizedFieldProps.js +15 -18
- package/internals/hooks/useClockReferenceDate.js +1 -1
- package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +11 -12
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
- package/internals/hooks/useField/buildSectionsFromFormat.js +35 -31
- package/internals/hooks/useField/useField.js +6 -4
- package/internals/hooks/useField/useField.types.d.ts +1 -0
- package/internals/hooks/useField/useField.utils.js +4 -7
- package/internals/hooks/useField/useFieldCharacterEditing.js +1 -2
- package/internals/hooks/useField/useFieldState.js +1 -1
- package/internals/hooks/useField/useFieldV6TextField.js +17 -18
- package/internals/hooks/useField/useFieldV7TextField.js +9 -11
- package/internals/hooks/useMobilePicker/useMobilePicker.js +7 -8
- package/internals/hooks/useOpenState.js +1 -1
- package/internals/hooks/usePicker/index.d.ts +1 -0
- package/internals/hooks/usePicker/usePickerViews.d.ts +4 -2
- package/internals/hooks/usePicker/usePickerViews.js +1 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.js +13 -17
- package/internals/hooks/useValueWithTimezone.js +5 -6
- package/internals/hooks/useViews.js +3 -4
- package/internals/index.d.ts +1 -1
- package/internals/models/validation.d.ts +1 -1
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +3 -3
- package/internals/utils/date-time-utils.js +2 -5
- package/internals/utils/fields.js +1 -1
- package/internals/utils/getDefaultReferenceDate.js +2 -6
- package/internals/utils/views.js +1 -1
- package/locales/csCZ.js +1 -4
- package/locales/daDK.js +1 -4
- package/locales/deDE.js +1 -4
- package/locales/huHU.js +1 -4
- package/locales/itIT.js +16 -20
- package/locales/jaJP.js +1 -4
- package/locales/roRO.js +1 -4
- package/locales/skSK.js +1 -4
- package/locales/zhHK.js +14 -17
- package/modern/AdapterLuxon/AdapterLuxon.js +9 -4
- package/modern/DateCalendar/DateCalendar.js +1 -1
- package/modern/DateField/DateField.js +1 -1
- package/modern/DatePicker/DatePicker.js +1 -1
- package/modern/DatePicker/DatePickerToolbar.js +11 -6
- package/modern/DateTimeField/DateTimeField.js +1 -1
- package/modern/DateTimePicker/DateTimePicker.js +1 -1
- package/modern/DateTimePicker/DateTimePickerToolbar.js +97 -45
- package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +64 -25
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
- package/modern/DesktopDateTimePicker/index.js +2 -1
- package/modern/DigitalClock/DigitalClock.js +14 -6
- package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/modern/MonthCalendar/PickersMonth.js +12 -6
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
- package/modern/PickersDay/PickersDay.js +30 -15
- package/modern/PickersLayout/PickersLayout.js +31 -17
- package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
- package/modern/PickersTextField/PickersInput/PickersInput.js +76 -54
- package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
- package/modern/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
- package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/modern/TimeClock/Clock.js +48 -35
- package/modern/TimeClock/ClockNumber.js +12 -7
- package/modern/TimeClock/ClockPointer.js +23 -13
- package/modern/TimePicker/TimePickerToolbar.js +25 -16
- package/modern/YearCalendar/PickersYear.js +12 -6
- package/modern/index.js +1 -1
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
- package/modern/internals/components/PickersPopper.js +13 -9
- package/modern/internals/components/PickersToolbar.js +39 -18
- package/modern/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
- package/modern/internals/hooks/useField/useField.js +4 -2
- package/modern/internals/hooks/useField/useFieldV6TextField.js +8 -3
- package/modern/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/modern/internals/hooks/useOpenState.js +1 -1
- package/modern/internals/utils/fields.js +1 -1
- package/modern/locales/itIT.js +16 -20
- package/modern/locales/zhHK.js +14 -17
- package/node/AdapterLuxon/AdapterLuxon.js +9 -4
- package/node/DateCalendar/DateCalendar.js +1 -1
- package/node/DateField/DateField.js +1 -1
- package/node/DatePicker/DatePicker.js +1 -1
- package/node/DatePicker/DatePickerToolbar.js +11 -6
- package/node/DateTimeField/DateTimeField.js +1 -1
- package/node/DateTimePicker/DateTimePicker.js +1 -1
- package/node/DateTimePicker/DateTimePickerToolbar.js +97 -45
- package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +63 -25
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +108 -0
- package/node/DesktopDateTimePicker/index.js +8 -1
- package/node/DigitalClock/DigitalClock.js +14 -6
- package/node/MobileDatePicker/MobileDatePicker.js +1 -1
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/node/MonthCalendar/PickersMonth.js +12 -6
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
- package/node/PickersDay/PickersDay.js +30 -15
- package/node/PickersLayout/PickersLayout.js +31 -17
- package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
- package/node/PickersTextField/PickersInput/PickersInput.js +76 -54
- package/node/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
- package/node/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
- package/node/StaticDatePicker/StaticDatePicker.js +1 -1
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/node/TimeClock/Clock.js +48 -35
- package/node/TimeClock/ClockNumber.js +12 -7
- package/node/TimeClock/ClockPointer.js +23 -13
- package/node/TimePicker/TimePickerToolbar.js +25 -16
- package/node/YearCalendar/PickersYear.js +12 -6
- package/node/index.js +1 -1
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
- package/node/internals/components/PickersPopper.js +13 -9
- package/node/internals/components/PickersToolbar.js +39 -18
- package/node/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
- package/node/internals/hooks/useField/useField.js +4 -2
- package/node/internals/hooks/useField/useFieldV6TextField.js +8 -3
- package/node/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/node/internals/hooks/useOpenState.js +1 -1
- package/node/internals/utils/fields.js +1 -1
- package/node/locales/itIT.js +16 -20
- package/node/locales/zhHK.js +14 -17
- package/package.json +5 -5
- package/timeViewRenderers/timeViewRenderers.js +1 -1
- package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +0 -15
- package/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -163
- package/dateTimeViewRenderers/index.d.ts +0 -2
- package/dateTimeViewRenderers/index.js +0 -1
- package/dateTimeViewRenderers/package.json +0 -6
- package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -162
- package/modern/dateTimeViewRenderers/index.js +0 -1
- package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -171
- package/node/dateTimeViewRenderers/index.js +0 -12
|
@@ -32,14 +32,20 @@ const PickersYearRoot = (0, _styles.styled)('div', {
|
|
|
32
32
|
name: 'MuiPickersYear',
|
|
33
33
|
slot: 'Root',
|
|
34
34
|
overridesResolver: (_, styles) => [styles.root]
|
|
35
|
-
})(
|
|
36
|
-
ownerState
|
|
37
|
-
}) => ({
|
|
38
|
-
flexBasis: ownerState.yearsPerRow === 3 ? '33.3%' : '25%',
|
|
35
|
+
})({
|
|
39
36
|
display: 'flex',
|
|
40
37
|
alignItems: 'center',
|
|
41
|
-
justifyContent: 'center'
|
|
42
|
-
|
|
38
|
+
justifyContent: 'center',
|
|
39
|
+
flexBasis: '33.3%',
|
|
40
|
+
variants: [{
|
|
41
|
+
props: {
|
|
42
|
+
yearsPerRow: 4
|
|
43
|
+
},
|
|
44
|
+
style: {
|
|
45
|
+
flexBasis: '25%'
|
|
46
|
+
}
|
|
47
|
+
}]
|
|
48
|
+
});
|
|
43
49
|
const PickersYearButton = (0, _styles.styled)('button', {
|
|
44
50
|
name: 'MuiPickersYear',
|
|
45
51
|
slot: 'YearButton',
|
package/node/index.js
CHANGED
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.PickersArrowSwitcher = void 0;
|
|
8
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
12
12
|
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
@@ -42,11 +42,16 @@ const PickersArrowSwitcherButton = (0, _styles.styled)(_IconButton.default, {
|
|
|
42
42
|
name: 'MuiPickersArrowSwitcher',
|
|
43
43
|
slot: 'Button',
|
|
44
44
|
overridesResolver: (props, styles) => styles.button
|
|
45
|
-
})(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
45
|
+
})({
|
|
46
|
+
variants: [{
|
|
47
|
+
props: {
|
|
48
|
+
hidden: true
|
|
49
|
+
},
|
|
50
|
+
style: {
|
|
51
|
+
visibility: 'hidden'
|
|
52
|
+
}
|
|
53
|
+
}]
|
|
54
|
+
});
|
|
50
55
|
const useUtilityClasses = ownerState => {
|
|
51
56
|
const {
|
|
52
57
|
classes
|
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.PickersPopper = PickersPopper;
|
|
8
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _utils = require("@mui/base/utils");
|
|
12
12
|
var _Grow = _interopRequireDefault(require("@mui/material/Grow"));
|
|
@@ -46,14 +46,18 @@ const PickersPopperPaper = (0, _styles.styled)(_Paper.default, {
|
|
|
46
46
|
name: 'MuiPickersPopper',
|
|
47
47
|
slot: 'Paper',
|
|
48
48
|
overridesResolver: (_, styles) => styles.paper
|
|
49
|
-
})(
|
|
50
|
-
ownerState
|
|
51
|
-
}) => (0, _extends2.default)({
|
|
49
|
+
})({
|
|
52
50
|
outline: 0,
|
|
53
|
-
transformOrigin: 'top center'
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
transformOrigin: 'top center',
|
|
52
|
+
variants: [{
|
|
53
|
+
props: ({
|
|
54
|
+
placement
|
|
55
|
+
}) => ['top', 'top-start', 'top-end'].includes(placement),
|
|
56
|
+
style: {
|
|
57
|
+
transformOrigin: 'bottom center'
|
|
58
|
+
}
|
|
59
|
+
}]
|
|
60
|
+
});
|
|
57
61
|
function clickedRootScrollbar(event, doc) {
|
|
58
62
|
return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;
|
|
59
63
|
}
|
|
@@ -155,7 +159,7 @@ function useClickAwayListener(active, onClickAway) {
|
|
|
155
159
|
// TODO This behavior is not tested automatically
|
|
156
160
|
// It's unclear whether this is due to different update semantics in test (batched in act() vs discrete on click).
|
|
157
161
|
// Or if this is a timing related issues due to different Transition components
|
|
158
|
-
// Once we get rid of all the manual scheduling (
|
|
162
|
+
// Once we get rid of all the manual scheduling (for example setTimeout(update, 0)) we can revisit this code+test.
|
|
159
163
|
if (active) {
|
|
160
164
|
const doc = (0, _utils2.unstable_ownerDocument)(nodeRef.current);
|
|
161
165
|
doc.addEventListener('click', handleClickAway);
|
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.PickersToolbar = void 0;
|
|
8
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
12
12
|
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
@@ -34,36 +34,57 @@ const PickersToolbarRoot = (0, _styles.styled)('div', {
|
|
|
34
34
|
slot: 'Root',
|
|
35
35
|
overridesResolver: (props, styles) => styles.root
|
|
36
36
|
})(({
|
|
37
|
-
theme
|
|
38
|
-
|
|
39
|
-
}) => (0, _extends2.default)({
|
|
37
|
+
theme
|
|
38
|
+
}) => ({
|
|
40
39
|
display: 'flex',
|
|
41
40
|
flexDirection: 'column',
|
|
42
41
|
alignItems: 'flex-start',
|
|
43
42
|
justifyContent: 'space-between',
|
|
44
|
-
padding: theme.spacing(2, 3)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
padding: theme.spacing(2, 3),
|
|
44
|
+
variants: [{
|
|
45
|
+
props: {
|
|
46
|
+
isLandscape: true
|
|
47
|
+
},
|
|
48
|
+
style: {
|
|
49
|
+
height: 'auto',
|
|
50
|
+
maxWidth: 160,
|
|
51
|
+
padding: 16,
|
|
52
|
+
justifyContent: 'flex-start',
|
|
53
|
+
flexWrap: 'wrap'
|
|
54
|
+
}
|
|
55
|
+
}]
|
|
51
56
|
}));
|
|
52
57
|
const PickersToolbarContent = (0, _styles.styled)('div', {
|
|
53
58
|
name: 'MuiPickersToolbar',
|
|
54
59
|
slot: 'Content',
|
|
55
60
|
overridesResolver: (props, styles) => styles.content
|
|
56
|
-
})(
|
|
57
|
-
ownerState
|
|
58
|
-
}) => ({
|
|
61
|
+
})({
|
|
59
62
|
display: 'flex',
|
|
60
63
|
flexWrap: 'wrap',
|
|
61
64
|
width: '100%',
|
|
62
|
-
justifyContent: ownerState.isLandscape ? 'flex-start' : 'space-between',
|
|
63
|
-
flexDirection: ownerState.isLandscape ? ownerState.landscapeDirection ?? 'column' : 'row',
|
|
64
65
|
flex: 1,
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
justifyContent: 'space-between',
|
|
67
|
+
alignItems: 'center',
|
|
68
|
+
flexDirection: 'row',
|
|
69
|
+
variants: [{
|
|
70
|
+
props: {
|
|
71
|
+
isLandscape: true
|
|
72
|
+
},
|
|
73
|
+
style: {
|
|
74
|
+
justifyContent: 'flex-start',
|
|
75
|
+
alignItems: 'flex-start',
|
|
76
|
+
flexDirection: 'column'
|
|
77
|
+
}
|
|
78
|
+
}, {
|
|
79
|
+
props: {
|
|
80
|
+
isLandscape: true,
|
|
81
|
+
landscapeDirection: 'row'
|
|
82
|
+
},
|
|
83
|
+
style: {
|
|
84
|
+
flexDirection: 'row'
|
|
85
|
+
}
|
|
86
|
+
}]
|
|
87
|
+
});
|
|
67
88
|
const PickersToolbar = exports.PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersToolbar(inProps, ref) {
|
|
68
89
|
const props = (0, _styles.useThemeProps)({
|
|
69
90
|
props: inProps,
|
|
@@ -159,49 +159,53 @@ const buildSections = params => {
|
|
|
159
159
|
const sections = [];
|
|
160
160
|
let startSeparator = '';
|
|
161
161
|
|
|
162
|
-
// This RegExp
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
162
|
+
// This RegExp tests if the beginning of a string corresponds to a supported token
|
|
163
|
+
const validTokens = Object.keys(utils.formatTokenMap).sort((a, b) => b.length - a.length); // Sort to put longest word first
|
|
164
|
+
|
|
165
|
+
const regExpFirstWordInFormat = /^([a-zA-Z]+)/;
|
|
166
|
+
const regExpWordOnlyComposedOfTokens = new RegExp(`^(${validTokens.join('|')})*$`);
|
|
167
|
+
const regExpFirstTokenInWord = new RegExp(`^(${validTokens.join('|')})`);
|
|
168
|
+
const getEscapedPartOfCurrentChar = i => escapedParts.find(escapeIndex => escapeIndex.start <= i && escapeIndex.end >= i);
|
|
169
|
+
let i = 0;
|
|
170
|
+
while (i < expandedFormat.length) {
|
|
171
|
+
const escapedPartOfCurrentChar = getEscapedPartOfCurrentChar(i);
|
|
170
172
|
const isEscapedChar = escapedPartOfCurrentChar != null;
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
173
|
+
const firstWordInFormat = regExpFirstWordInFormat.exec(expandedFormat.slice(i))?.[1];
|
|
174
|
+
|
|
175
|
+
// The first word in the format is only composed of tokens.
|
|
176
|
+
// We extract those tokens to create a new sections.
|
|
177
|
+
if (!isEscapedChar && firstWordInFormat != null && regExpWordOnlyComposedOfTokens.test(firstWordInFormat)) {
|
|
178
|
+
let word = firstWordInFormat;
|
|
179
|
+
while (word.length > 0) {
|
|
180
|
+
const firstWord = regExpFirstTokenInWord.exec(word)[1];
|
|
181
|
+
word = word.slice(firstWord.length);
|
|
182
|
+
sections.push(createSection((0, _extends2.default)({}, params, {
|
|
183
|
+
now,
|
|
184
|
+
token: firstWord,
|
|
185
|
+
startSeparator
|
|
186
|
+
})));
|
|
187
|
+
startSeparator = '';
|
|
188
|
+
}
|
|
189
|
+
i += firstWordInFormat.length;
|
|
190
|
+
}
|
|
191
|
+
// The remaining format does not start with a token,
|
|
192
|
+
// We take the first character and add it to the current section's end separator.
|
|
193
|
+
else {
|
|
194
|
+
const char = expandedFormat[i];
|
|
195
|
+
|
|
177
196
|
// If we are on the opening or closing character of an escaped part of the format,
|
|
178
197
|
// Then we ignore this character.
|
|
179
198
|
const isEscapeBoundary = isEscapedChar && escapedPartOfCurrentChar?.start === i || escapedPartOfCurrentChar?.end === i;
|
|
180
199
|
if (!isEscapeBoundary) {
|
|
181
|
-
if (currentTokenValue !== '') {
|
|
182
|
-
sections.push(createSection((0, _extends2.default)({}, params, {
|
|
183
|
-
now,
|
|
184
|
-
token: currentTokenValue,
|
|
185
|
-
startSeparator
|
|
186
|
-
})));
|
|
187
|
-
currentTokenValue = '';
|
|
188
|
-
}
|
|
189
200
|
if (sections.length === 0) {
|
|
190
201
|
startSeparator += char;
|
|
191
202
|
} else {
|
|
192
|
-
startSeparator = '';
|
|
193
203
|
sections[sections.length - 1].endSeparator += char;
|
|
194
204
|
}
|
|
195
205
|
}
|
|
206
|
+
i += 1;
|
|
196
207
|
}
|
|
197
208
|
}
|
|
198
|
-
if (currentTokenValue !== '') {
|
|
199
|
-
sections.push(createSection((0, _extends2.default)({}, params, {
|
|
200
|
-
now,
|
|
201
|
-
token: currentTokenValue,
|
|
202
|
-
startSeparator
|
|
203
|
-
})));
|
|
204
|
-
}
|
|
205
209
|
if (sections.length === 0 && startSeparator.length > 0) {
|
|
206
210
|
sections.push({
|
|
207
211
|
type: 'empty',
|
|
@@ -211,9 +211,11 @@ const useField = params => {
|
|
|
211
211
|
event.preventDefault();
|
|
212
212
|
onClear?.(event, ...args);
|
|
213
213
|
clearValue();
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
if (!interactions.isFieldFocused()) {
|
|
215
|
+
// setSelectedSections is called internally
|
|
216
216
|
interactions.focusField(0);
|
|
217
|
+
} else {
|
|
218
|
+
setSelectedSections(sectionOrder.startIndex);
|
|
217
219
|
}
|
|
218
220
|
});
|
|
219
221
|
const commonForwardedProps = {
|
|
@@ -53,7 +53,8 @@ const useFieldV6TextField = params => {
|
|
|
53
53
|
onClick,
|
|
54
54
|
onPaste,
|
|
55
55
|
onBlur,
|
|
56
|
-
inputRef: inputRefProp
|
|
56
|
+
inputRef: inputRefProp,
|
|
57
|
+
placeholder: inPlaceholder
|
|
57
58
|
},
|
|
58
59
|
internalProps: {
|
|
59
60
|
readOnly = false
|
|
@@ -137,7 +138,6 @@ const useFieldV6TextField = params => {
|
|
|
137
138
|
}), [inputRef, parsedSelectedSections, sections, setSelectedSections]);
|
|
138
139
|
const syncSelectionFromDOM = () => {
|
|
139
140
|
if (readOnly) {
|
|
140
|
-
setSelectedSections(null);
|
|
141
141
|
return;
|
|
142
142
|
}
|
|
143
143
|
const browserStartIndex = inputRef.current.selectionStart ?? 0;
|
|
@@ -285,7 +285,12 @@ const useFieldV6TextField = params => {
|
|
|
285
285
|
sectionIndex: activeSectionIndex
|
|
286
286
|
});
|
|
287
287
|
});
|
|
288
|
-
const placeholder = React.useMemo(() =>
|
|
288
|
+
const placeholder = React.useMemo(() => {
|
|
289
|
+
if (inPlaceholder) {
|
|
290
|
+
return inPlaceholder;
|
|
291
|
+
}
|
|
292
|
+
return fieldValueManager.getV6InputValueFromSections(getSectionsFromValue(valueManager.emptyValue), localizedDigits, isRTL);
|
|
293
|
+
}, [inPlaceholder, fieldValueManager, getSectionsFromValue, valueManager.emptyValue, localizedDigits, isRTL]);
|
|
289
294
|
const valueStr = React.useMemo(() => state.tempValueStrAndroid ?? fieldValueManager.getV6InputValueFromSections(state.sections, localizedDigits, isRTL), [state.sections, fieldValueManager, state.tempValueStrAndroid, localizedDigits, isRTL]);
|
|
290
295
|
React.useEffect(() => {
|
|
291
296
|
// Select all the sections when focused on mount (`autoFocus = true` on the input)
|
|
@@ -375,7 +375,7 @@ const useFieldV7TextField = params => {
|
|
|
375
375
|
const valueStr = React.useMemo(() => areAllSectionsEmpty ? '' : fieldValueManager.getV7HiddenInputValueFromSections(state.sections), [areAllSectionsEmpty, state.sections, fieldValueManager]);
|
|
376
376
|
React.useEffect(() => {
|
|
377
377
|
if (sectionListRef.current == null) {
|
|
378
|
-
throw new Error(['MUI X: The `sectionListRef` prop has not been initialized by `PickersSectionList`', 'You probably tried to pass a component to the `textField` slot that contains an `<input />` element instead of a `PickersSectionList`.', '', 'If you want to keep using an `<input />` HTML element for the editing, please remove the `enableAccessibleFieldDOMStructure` prop from your picker or field component:', '', '<DatePicker slots={{ textField: MyCustomTextField }} />', '', 'Learn more about the field accessible DOM structure on the MUI documentation: https://
|
|
378
|
+
throw new Error(['MUI X: The `sectionListRef` prop has not been initialized by `PickersSectionList`', 'You probably tried to pass a component to the `textField` slot that contains an `<input />` element instead of a `PickersSectionList`.', '', 'If you want to keep using an `<input />` HTML element for the editing, please remove the `enableAccessibleFieldDOMStructure` prop from your picker or field component:', '', '<DatePicker slots={{ textField: MyCustomTextField }} />', '', 'Learn more about the field accessible DOM structure on the MUI documentation: https://mui.com/x/react-date-pickers/fields/#fields-to-edit-a-single-element'].join('\n'));
|
|
379
379
|
}
|
|
380
380
|
if (autoFocus && sectionListRef.current) {
|
|
381
381
|
sectionListRef.current.getSectionContent(sectionOrder.startIndex).focus();
|
|
@@ -16,7 +16,7 @@ const useOpenState = ({
|
|
|
16
16
|
const [openState, setIsOpenState] = React.useState(false);
|
|
17
17
|
|
|
18
18
|
// It is required to update inner state in useEffect in order to avoid situation when
|
|
19
|
-
// Our component is not mounted yet, but `open` state is set to `true` (
|
|
19
|
+
// Our component is not mounted yet, but `open` state is set to `true` (for example initially opened)
|
|
20
20
|
React.useEffect(() => {
|
|
21
21
|
if (isControllingOpenProp) {
|
|
22
22
|
if (typeof open !== 'boolean') {
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.splitFieldInternalAndForwardedProps = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _extractValidationProps = require("./validation/extractValidationProps");
|
|
10
|
-
const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef', 'enableAccessibleFieldDOMStructure', 'disabled', 'readOnly'];
|
|
10
|
+
const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef', 'enableAccessibleFieldDOMStructure', 'disabled', 'readOnly', 'dateSeparator'];
|
|
11
11
|
const splitFieldInternalAndForwardedProps = (props, valueType) => {
|
|
12
12
|
const forwardedProps = (0, _extends2.default)({}, props);
|
|
13
13
|
const internalProps = {};
|
package/node/locales/itIT.js
CHANGED
|
@@ -22,11 +22,10 @@ const itITPickers = {
|
|
|
22
22
|
// DateRange labels
|
|
23
23
|
start: 'Inizio',
|
|
24
24
|
end: 'Fine',
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
startDate: 'Data di inizio',
|
|
26
|
+
startTime: 'Ora di inizio',
|
|
27
|
+
endDate: 'Data di fine',
|
|
28
|
+
endTime: 'Ora di fine',
|
|
30
29
|
// Action bar
|
|
31
30
|
cancelButtonLabel: 'Cancellare',
|
|
32
31
|
clearButtonLabel: 'Sgomberare',
|
|
@@ -52,8 +51,7 @@ const itITPickers = {
|
|
|
52
51
|
// Open picker labels
|
|
53
52
|
openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Scegli la data, la data selezionata è ${utils.format(value, 'fullDate')}` : 'Scegli la data',
|
|
54
53
|
openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Scegli l'ora, l'ora selezionata è ${utils.format(value, 'fullTime')}` : "Scegli l'ora",
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
fieldClearLabel: 'Cancella valore',
|
|
57
55
|
// Table labels
|
|
58
56
|
timeTableLabel: "scegli un'ora",
|
|
59
57
|
dateTableLabel: 'scegli una data',
|
|
@@ -61,23 +59,21 @@ const itITPickers = {
|
|
|
61
59
|
fieldYearPlaceholder: params => 'A'.repeat(params.digitAmount),
|
|
62
60
|
fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
|
|
63
61
|
fieldDayPlaceholder: () => 'GG',
|
|
64
|
-
|
|
62
|
+
fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'GGGG' : 'GG',
|
|
65
63
|
fieldHoursPlaceholder: () => 'hh',
|
|
66
64
|
fieldMinutesPlaceholder: () => 'mm',
|
|
67
65
|
fieldSecondsPlaceholder: () => 'ss',
|
|
68
|
-
fieldMeridiemPlaceholder: () => 'aa'
|
|
69
|
-
|
|
66
|
+
fieldMeridiemPlaceholder: () => 'aa',
|
|
70
67
|
// View names
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
68
|
+
year: 'Anno',
|
|
69
|
+
month: 'Mese',
|
|
70
|
+
day: 'Giorno',
|
|
71
|
+
weekDay: 'Giorno della settimana',
|
|
72
|
+
hours: 'Ore',
|
|
73
|
+
minutes: 'Minuti',
|
|
74
|
+
seconds: 'Secondi',
|
|
75
|
+
meridiem: 'Meridiano',
|
|
80
76
|
// Common
|
|
81
|
-
|
|
77
|
+
empty: 'Vuoto'
|
|
82
78
|
};
|
|
83
79
|
const itIT = exports.itIT = (0, _getPickersLocalization.getPickersLocalization)(itITPickers);
|
package/node/locales/zhHK.js
CHANGED
|
@@ -22,11 +22,10 @@ const zhHKPickers = {
|
|
|
22
22
|
// DateRange labels
|
|
23
23
|
start: '開始',
|
|
24
24
|
end: '結束',
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
startDate: '開始日期',
|
|
26
|
+
startTime: '開始時間',
|
|
27
|
+
endDate: '結束日期',
|
|
28
|
+
endTime: '結束時間',
|
|
30
29
|
// Action bar
|
|
31
30
|
cancelButtonLabel: '取消',
|
|
32
31
|
clearButtonLabel: '清除',
|
|
@@ -65,19 +64,17 @@ const zhHKPickers = {
|
|
|
65
64
|
fieldHoursPlaceholder: () => 'hh',
|
|
66
65
|
fieldMinutesPlaceholder: () => 'mm',
|
|
67
66
|
fieldSecondsPlaceholder: () => 'ss',
|
|
68
|
-
fieldMeridiemPlaceholder: () => 'aa'
|
|
69
|
-
|
|
67
|
+
fieldMeridiemPlaceholder: () => 'aa',
|
|
70
68
|
// View names
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
69
|
+
year: '年',
|
|
70
|
+
month: '月',
|
|
71
|
+
day: '日',
|
|
72
|
+
weekDay: '星期',
|
|
73
|
+
hours: '小時',
|
|
74
|
+
minutes: '分鐘',
|
|
75
|
+
seconds: '秒',
|
|
76
|
+
meridiem: '子午線',
|
|
80
77
|
// Common
|
|
81
|
-
|
|
78
|
+
empty: '空值'
|
|
82
79
|
};
|
|
83
80
|
const zhHK = exports.zhHK = (0, _getPickersLocalization.getPickersLocalization)(zhHKPickers);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-date-pickers",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.0",
|
|
4
4
|
"description": "The community edition of the date picker components (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./node/index.js",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@babel/runtime": "^7.24.0",
|
|
38
|
-
"@mui/base": "^5.0.0-beta.
|
|
39
|
-
"@mui/system": "^5.15.
|
|
40
|
-
"@mui/utils": "^5.15.
|
|
38
|
+
"@mui/base": "^5.0.0-beta.40",
|
|
39
|
+
"@mui/system": "^5.15.14",
|
|
40
|
+
"@mui/utils": "^5.15.14",
|
|
41
41
|
"@types/react-transition-group": "^4.4.10",
|
|
42
42
|
"clsx": "^2.1.0",
|
|
43
43
|
"prop-types": "^15.8.1",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@emotion/react": "^11.9.0",
|
|
48
48
|
"@emotion/styled": "^11.8.1",
|
|
49
|
-
"@mui/material": "^5.15.
|
|
49
|
+
"@mui/material": "^5.15.14",
|
|
50
50
|
"date-fns": "^2.25.0 || ^3.2.0",
|
|
51
51
|
"date-fns-jalali": "^2.13.0-0",
|
|
52
52
|
"dayjs": "^1.10.7",
|
|
@@ -118,7 +118,7 @@ export const renderDigitalClockTimeView = ({
|
|
|
118
118
|
sx: sx,
|
|
119
119
|
autoFocus: autoFocus,
|
|
120
120
|
disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
|
|
121
|
-
timeStep: timeSteps
|
|
121
|
+
timeStep: timeSteps?.minutes,
|
|
122
122
|
skipDisabled: skipDisabled,
|
|
123
123
|
timezone: timezone
|
|
124
124
|
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { DateCalendarProps } from '../DateCalendar';
|
|
3
|
-
import { DateOrTimeViewWithMeridiem } from '../internals/models';
|
|
4
|
-
import { MultiSectionDigitalClockProps } from '../MultiSectionDigitalClock';
|
|
5
|
-
import type { DateTimePickerProps } from '../DateTimePicker/DateTimePicker.types';
|
|
6
|
-
import { PickerValidDate } from '../models';
|
|
7
|
-
export interface DateTimeViewRendererProps<TDate extends PickerValidDate> extends Omit<DateCalendarProps<TDate> & MultiSectionDigitalClockProps<TDate>, 'views' | 'openTo' | 'view' | 'onViewChange' | 'focusedView' | 'slots' | 'slotProps'>, Pick<DateTimePickerProps<TDate>, 'slots' | 'slotProps'> {
|
|
8
|
-
view: DateOrTimeViewWithMeridiem;
|
|
9
|
-
onViewChange?: (view: DateOrTimeViewWithMeridiem) => void;
|
|
10
|
-
views: readonly DateOrTimeViewWithMeridiem[];
|
|
11
|
-
focusedView: DateOrTimeViewWithMeridiem | null;
|
|
12
|
-
timeViewsCount: number;
|
|
13
|
-
shouldRenderTimeInASingleColumn: boolean;
|
|
14
|
-
}
|
|
15
|
-
export declare const renderDesktopDateTimeView: <TDate extends PickerValidDate>({ view, onViewChange, views, focusedView, onFocusedViewChange, value, defaultValue, referenceDate, onChange, className, classes, disableFuture, disablePast, minDate, minTime, maxDate, maxTime, shouldDisableDate, shouldDisableMonth, shouldDisableYear, shouldDisableTime, reduceAnimations, minutesStep, ampm, onMonthChange, monthsPerRow, onYearChange, yearsPerRow, slots, slotProps, loading, renderLoading, disableHighlightToday, readOnly, disabled, showDaysOutsideCurrentMonth, dayOfWeekFormatter, sx, autoFocus, fixedWeekNumber, displayWeekNumber, timezone, disableIgnoringDatePartForTimeValidation, timeSteps, skipDisabled, timeViewsCount, shouldRenderTimeInASingleColumn, }: DateTimeViewRendererProps<TDate>) => React.JSX.Element;
|