@mui/x-date-pickers-pro 8.0.0-alpha.0 → 8.0.0-alpha.1
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 +429 -5
- package/DateRangeCalendar/DateRangeCalendar.js +3 -1
- package/DateRangePicker/DateRangePickerToolbar.js +0 -12
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -2
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +6 -16
- package/README.md +2 -2
- package/index.js +1 -1
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -2
- package/internals/hooks/useEnrichedRangePickerFieldProps.d.ts +2 -2
- package/internals/hooks/useEnrichedRangePickerFieldProps.js +9 -9
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -2
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +2 -0
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +2 -0
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +3 -1
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -1
- package/internals/utils/date-range-manager.d.ts +2 -1
- package/internals/utils/date-range-manager.js +11 -9
- package/internals/utils/releaseInfo.js +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +3 -1
- package/modern/DateRangePicker/DateRangePickerToolbar.js +0 -12
- package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +6 -16
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -2
- package/modern/internals/hooks/useEnrichedRangePickerFieldProps.js +9 -9
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -2
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +2 -0
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +2 -0
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +3 -1
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -1
- package/modern/internals/utils/date-range-manager.js +11 -9
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/node/DateRangeCalendar/DateRangeCalendar.js +3 -1
- package/node/DateRangePicker/DateRangePickerToolbar.js +0 -12
- package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +5 -15
- package/node/index.js +1 -1
- package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -2
- package/node/internals/hooks/useEnrichedRangePickerFieldProps.js +9 -9
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -2
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +2 -0
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +2 -0
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +3 -1
- package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -1
- package/node/internals/utils/date-range-manager.js +11 -9
- package/node/internals/utils/releaseInfo.js +1 -1
- package/package.json +6 -6
|
@@ -20,7 +20,7 @@ var _DateTimePicker = require("@mui/x-date-pickers/DateTimePicker");
|
|
|
20
20
|
var _dateTimeRangePickerToolbarClasses = require("./dateTimeRangePickerToolbarClasses");
|
|
21
21
|
var _dateRangeManager = require("../internals/utils/date-range-manager");
|
|
22
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
-
const _excluded = ["value", "rangePosition", "onRangePositionChange", "className", "onViewChange", "toolbarVariant", "onChange", "classes", "view", "isLandscape", "views", "ampm", "
|
|
23
|
+
const _excluded = ["value", "rangePosition", "onRangePositionChange", "className", "onViewChange", "toolbarVariant", "onChange", "classes", "view", "isLandscape", "views", "ampm", "hidden", "toolbarFormat", "toolbarPlaceholder", "titleId", "sx"];
|
|
24
24
|
const useUtilityClasses = ownerState => {
|
|
25
25
|
const {
|
|
26
26
|
classes
|
|
@@ -93,8 +93,6 @@ const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PUR
|
|
|
93
93
|
isLandscape,
|
|
94
94
|
views,
|
|
95
95
|
ampm,
|
|
96
|
-
disabled,
|
|
97
|
-
readOnly,
|
|
98
96
|
hidden,
|
|
99
97
|
toolbarFormat,
|
|
100
98
|
toolbarPlaceholder,
|
|
@@ -102,6 +100,10 @@ const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PUR
|
|
|
102
100
|
sx
|
|
103
101
|
} = props,
|
|
104
102
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
103
|
+
const {
|
|
104
|
+
disabled,
|
|
105
|
+
readOnly
|
|
106
|
+
} = (0, _hooks.usePickerContext)();
|
|
105
107
|
const commonToolbarProps = {
|
|
106
108
|
isLandscape,
|
|
107
109
|
views,
|
|
@@ -190,12 +192,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
|
190
192
|
*/
|
|
191
193
|
classes: _propTypes.default.object,
|
|
192
194
|
className: _propTypes.default.string,
|
|
193
|
-
/**
|
|
194
|
-
* If `true`, the component is disabled.
|
|
195
|
-
* When disabled, the value cannot be changed and no interaction is possible.
|
|
196
|
-
* @default false
|
|
197
|
-
*/
|
|
198
|
-
disabled: _propTypes.default.bool,
|
|
199
195
|
/**
|
|
200
196
|
* If `true`, show the toolbar even in desktop mode.
|
|
201
197
|
* @default `true` for Desktop, `false` for Mobile.
|
|
@@ -211,12 +207,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
|
211
207
|
*/
|
|
212
208
|
onViewChange: _propTypes.default.func.isRequired,
|
|
213
209
|
rangePosition: _propTypes.default.oneOf(['end', 'start']).isRequired,
|
|
214
|
-
/**
|
|
215
|
-
* If `true`, the component is read-only.
|
|
216
|
-
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
217
|
-
* @default false
|
|
218
|
-
*/
|
|
219
|
-
readOnly: _propTypes.default.bool,
|
|
220
210
|
/**
|
|
221
211
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
222
212
|
*/
|
package/node/index.js
CHANGED
|
@@ -68,7 +68,7 @@ const useDesktopRangePicker = _ref => {
|
|
|
68
68
|
ownerState
|
|
69
69
|
} = (0, _internals.usePicker)((0, _extends2.default)({}, pickerParams, {
|
|
70
70
|
props,
|
|
71
|
-
|
|
71
|
+
variant: 'desktop',
|
|
72
72
|
autoFocusView: false,
|
|
73
73
|
fieldRef: rangePosition === 'start' ? startFieldRef : endFieldRef,
|
|
74
74
|
localeText,
|
|
@@ -121,7 +121,7 @@ const useDesktopRangePicker = _ref => {
|
|
|
121
121
|
ownerState
|
|
122
122
|
});
|
|
123
123
|
const enrichedFieldProps = (0, _useEnrichedRangePickerFieldProps.useEnrichedRangePickerFieldProps)({
|
|
124
|
-
|
|
124
|
+
variant: 'desktop',
|
|
125
125
|
fieldType,
|
|
126
126
|
open,
|
|
127
127
|
actions,
|
|
@@ -16,7 +16,7 @@ var _hooks = require("@mui/x-date-pickers/hooks");
|
|
|
16
16
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
17
17
|
const _excluded = ["clearable", "onClear"];
|
|
18
18
|
const useMultiInputFieldSlotProps = ({
|
|
19
|
-
|
|
19
|
+
variant,
|
|
20
20
|
open,
|
|
21
21
|
actions,
|
|
22
22
|
readOnly,
|
|
@@ -41,7 +41,7 @@ const useMultiInputFieldSlotProps = ({
|
|
|
41
41
|
const handleEndFieldRef = (0, _useForkRef.default)(fieldProps.unstableEndFieldRef, endFieldRef);
|
|
42
42
|
const previousRangePosition = React.useRef(rangePosition);
|
|
43
43
|
React.useEffect(() => {
|
|
44
|
-
if (!open) {
|
|
44
|
+
if (!open || variant === 'mobile') {
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
47
|
const currentFieldRef = rangePosition === 'start' ? startFieldRef : endFieldRef;
|
|
@@ -57,7 +57,7 @@ const useMultiInputFieldSlotProps = ({
|
|
|
57
57
|
// use the current view or `0` when the range position has just been swapped
|
|
58
58
|
previousRangePosition.current === rangePosition ? currentView : 0);
|
|
59
59
|
previousRangePosition.current = rangePosition;
|
|
60
|
-
}, [rangePosition, open, currentView, startFieldRef, endFieldRef]);
|
|
60
|
+
}, [rangePosition, open, currentView, startFieldRef, endFieldRef, variant]);
|
|
61
61
|
const openRangeStartSelection = event => {
|
|
62
62
|
event.stopPropagation();
|
|
63
63
|
onRangePositionChange('start');
|
|
@@ -106,7 +106,7 @@ const useMultiInputFieldSlotProps = ({
|
|
|
106
106
|
focused: open ? rangePosition === 'start' : undefined
|
|
107
107
|
}, !readOnly && !fieldProps.disabled && {
|
|
108
108
|
onClick: openRangeStartSelection
|
|
109
|
-
},
|
|
109
|
+
}, variant === 'mobile' && {
|
|
110
110
|
readOnly: true
|
|
111
111
|
});
|
|
112
112
|
if (anchorRef) {
|
|
@@ -122,7 +122,7 @@ const useMultiInputFieldSlotProps = ({
|
|
|
122
122
|
focused: open ? rangePosition === 'end' : undefined
|
|
123
123
|
}, !readOnly && !fieldProps.disabled && {
|
|
124
124
|
onClick: openRangeEndSelection
|
|
125
|
-
},
|
|
125
|
+
}, variant === 'mobile' && {
|
|
126
126
|
readOnly: true
|
|
127
127
|
});
|
|
128
128
|
InputProps = resolvedComponentProps?.InputProps;
|
|
@@ -154,7 +154,7 @@ const useMultiInputFieldSlotProps = ({
|
|
|
154
154
|
return enrichedFieldProps;
|
|
155
155
|
};
|
|
156
156
|
const useSingleInputFieldSlotProps = ({
|
|
157
|
-
|
|
157
|
+
variant,
|
|
158
158
|
open,
|
|
159
159
|
actions,
|
|
160
160
|
readOnly,
|
|
@@ -174,7 +174,7 @@ const useSingleInputFieldSlotProps = ({
|
|
|
174
174
|
}) => {
|
|
175
175
|
const handleFieldRef = (0, _useForkRef.default)(fieldProps.unstableFieldRef, startFieldRef, endFieldRef);
|
|
176
176
|
React.useEffect(() => {
|
|
177
|
-
if (!open || !startFieldRef.current) {
|
|
177
|
+
if (!open || !startFieldRef.current || variant === 'mobile') {
|
|
178
178
|
return;
|
|
179
179
|
}
|
|
180
180
|
if (startFieldRef.current.isFieldFocused()) {
|
|
@@ -187,7 +187,7 @@ const useSingleInputFieldSlotProps = ({
|
|
|
187
187
|
const newSelectedSection = rangePosition === 'start' ? sections.indexOf(currentView) : sections.lastIndexOf(currentView);
|
|
188
188
|
startFieldRef.current?.focusField(newSelectedSection);
|
|
189
189
|
}
|
|
190
|
-
}, [rangePosition, open, currentView, startFieldRef]);
|
|
190
|
+
}, [rangePosition, open, currentView, startFieldRef, variant]);
|
|
191
191
|
const updateRangePosition = () => {
|
|
192
192
|
if (!startFieldRef.current?.isFieldFocused()) {
|
|
193
193
|
return;
|
|
@@ -233,7 +233,7 @@ const useSingleInputFieldSlotProps = ({
|
|
|
233
233
|
focused: open ? true : undefined
|
|
234
234
|
}, labelId != null && {
|
|
235
235
|
id: labelId
|
|
236
|
-
},
|
|
236
|
+
}, variant === 'mobile' && {
|
|
237
237
|
readOnly: true
|
|
238
238
|
}, !readOnly && !fieldProps.disabled && {
|
|
239
239
|
onClick: openPicker
|
|
@@ -65,7 +65,7 @@ const useMobileRangePicker = _ref => {
|
|
|
65
65
|
ownerState
|
|
66
66
|
} = (0, _internals.usePicker)((0, _extends2.default)({}, pickerParams, {
|
|
67
67
|
props,
|
|
68
|
-
|
|
68
|
+
variant: 'mobile',
|
|
69
69
|
autoFocusView: true,
|
|
70
70
|
fieldRef: rangePosition === 'start' ? startFieldRef : endFieldRef,
|
|
71
71
|
localeText,
|
|
@@ -103,7 +103,7 @@ const useMobileRangePicker = _ref => {
|
|
|
103
103
|
});
|
|
104
104
|
const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
|
|
105
105
|
const enrichedFieldProps = (0, _useEnrichedRangePickerFieldProps.useEnrichedRangePickerFieldProps)({
|
|
106
|
-
|
|
106
|
+
variant: 'mobile',
|
|
107
107
|
fieldType,
|
|
108
108
|
open,
|
|
109
109
|
actions,
|
|
@@ -25,6 +25,7 @@ const useMultiInputDateRangeField = ({
|
|
|
25
25
|
const {
|
|
26
26
|
value: valueProp,
|
|
27
27
|
defaultValue,
|
|
28
|
+
referenceDate,
|
|
28
29
|
format,
|
|
29
30
|
formatDensity,
|
|
30
31
|
shouldRespectLeadingZeros,
|
|
@@ -46,6 +47,7 @@ const useMultiInputDateRangeField = ({
|
|
|
46
47
|
timezone: timezoneProp,
|
|
47
48
|
value: valueProp,
|
|
48
49
|
defaultValue,
|
|
50
|
+
referenceDate,
|
|
49
51
|
onChange,
|
|
50
52
|
valueManager: _valueManagers.rangeValueManager
|
|
51
53
|
});
|
|
@@ -25,6 +25,7 @@ const useMultiInputDateTimeRangeField = ({
|
|
|
25
25
|
const {
|
|
26
26
|
value: valueProp,
|
|
27
27
|
defaultValue,
|
|
28
|
+
referenceDate,
|
|
28
29
|
format,
|
|
29
30
|
formatDensity,
|
|
30
31
|
shouldRespectLeadingZeros,
|
|
@@ -46,6 +47,7 @@ const useMultiInputDateTimeRangeField = ({
|
|
|
46
47
|
timezone: timezoneProp,
|
|
47
48
|
value: valueProp,
|
|
48
49
|
defaultValue,
|
|
50
|
+
referenceDate,
|
|
49
51
|
onChange,
|
|
50
52
|
valueManager: _valueManagers.rangeValueManager
|
|
51
53
|
});
|
|
@@ -25,6 +25,7 @@ const useMultiInputTimeRangeField = ({
|
|
|
25
25
|
const {
|
|
26
26
|
value: valueProp,
|
|
27
27
|
defaultValue,
|
|
28
|
+
referenceDate,
|
|
28
29
|
format,
|
|
29
30
|
formatDensity,
|
|
30
31
|
shouldRespectLeadingZeros,
|
|
@@ -47,7 +48,8 @@ const useMultiInputTimeRangeField = ({
|
|
|
47
48
|
value: valueProp,
|
|
48
49
|
defaultValue,
|
|
49
50
|
onChange,
|
|
50
|
-
valueManager: _valueManagers.rangeValueManager
|
|
51
|
+
valueManager: _valueManagers.rangeValueManager,
|
|
52
|
+
referenceDate
|
|
51
53
|
});
|
|
52
54
|
const {
|
|
53
55
|
validationError,
|
|
@@ -60,7 +60,7 @@ const useStaticRangePicker = _ref => {
|
|
|
60
60
|
rangePosition,
|
|
61
61
|
onRangePositionChange
|
|
62
62
|
},
|
|
63
|
-
|
|
63
|
+
variant: displayStaticWrapperAs
|
|
64
64
|
}));
|
|
65
65
|
const Layout = slots?.layout ?? PickerStaticLayout;
|
|
66
66
|
const slotPropsForLayout = (0, _extends2.default)({}, slotProps, {
|
|
@@ -12,7 +12,8 @@ function calculateRangeChange({
|
|
|
12
12
|
newDate: selectedDate,
|
|
13
13
|
rangePosition,
|
|
14
14
|
allowRangeFlip = false,
|
|
15
|
-
shouldMergeDateAndTime = false
|
|
15
|
+
shouldMergeDateAndTime = false,
|
|
16
|
+
referenceDate
|
|
16
17
|
}) {
|
|
17
18
|
const [start, end] = range;
|
|
18
19
|
if (shouldMergeDateAndTime && selectedDate) {
|
|
@@ -24,29 +25,30 @@ function calculateRangeChange({
|
|
|
24
25
|
selectedDate = (0, _internals.mergeDateAndTime)(utils, selectedDate, end);
|
|
25
26
|
}
|
|
26
27
|
}
|
|
28
|
+
const newSelectedDate = referenceDate && selectedDate && shouldMergeDateAndTime ? (0, _internals.mergeDateAndTime)(utils, selectedDate, referenceDate) : selectedDate;
|
|
27
29
|
if (rangePosition === 'start') {
|
|
28
30
|
const truthyResult = allowRangeFlip ? {
|
|
29
31
|
nextSelection: 'start',
|
|
30
|
-
newRange: [end,
|
|
32
|
+
newRange: [end, newSelectedDate]
|
|
31
33
|
} : {
|
|
32
34
|
nextSelection: 'end',
|
|
33
|
-
newRange: [
|
|
35
|
+
newRange: [newSelectedDate, null]
|
|
34
36
|
};
|
|
35
|
-
return Boolean(end) && utils.isAfter(
|
|
37
|
+
return Boolean(end) && utils.isAfter(newSelectedDate, end) ? truthyResult : {
|
|
36
38
|
nextSelection: 'end',
|
|
37
|
-
newRange: [
|
|
39
|
+
newRange: [newSelectedDate, end]
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
42
|
const truthyResult = allowRangeFlip ? {
|
|
41
43
|
nextSelection: 'end',
|
|
42
|
-
newRange: [
|
|
44
|
+
newRange: [newSelectedDate, start]
|
|
43
45
|
} : {
|
|
44
46
|
nextSelection: 'end',
|
|
45
|
-
newRange: [
|
|
47
|
+
newRange: [newSelectedDate, null]
|
|
46
48
|
};
|
|
47
|
-
return Boolean(start) && utils.isBeforeDay(
|
|
49
|
+
return Boolean(start) && utils.isBeforeDay(newSelectedDate, start) ? truthyResult : {
|
|
48
50
|
nextSelection: 'start',
|
|
49
|
-
newRange: [start,
|
|
51
|
+
newRange: [start, newSelectedDate]
|
|
50
52
|
};
|
|
51
53
|
}
|
|
52
54
|
function calculateRangePreview(options) {
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getReleaseInfo = void 0;
|
|
7
7
|
var _utils = require("@mui/utils");
|
|
8
8
|
const getReleaseInfo = () => {
|
|
9
|
-
const releaseInfo = "
|
|
9
|
+
const releaseInfo = "MTczMjIzMDAwMDAwMA==";
|
|
10
10
|
if (process.env.NODE_ENV !== 'production') {
|
|
11
11
|
// A simple hack to set the value in the test environment (has no build step).
|
|
12
12
|
// eslint-disable-next-line no-useless-concat
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-date-pickers-pro",
|
|
3
|
-
"version": "8.0.0-alpha.
|
|
3
|
+
"version": "8.0.0-alpha.1",
|
|
4
4
|
"description": "The Pro plan edition of the Date and Time Picker components (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./node/index.js",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"clsx": "^2.1.1",
|
|
38
38
|
"prop-types": "^15.8.1",
|
|
39
39
|
"react-transition-group": "^4.4.5",
|
|
40
|
-
"@mui/x-
|
|
41
|
-
"@mui/x-
|
|
42
|
-
"@mui/x-
|
|
40
|
+
"@mui/x-internals": "8.0.0-alpha.1",
|
|
41
|
+
"@mui/x-date-pickers": "8.0.0-alpha.1",
|
|
42
|
+
"@mui/x-license": "8.0.0-alpha.1"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@emotion/react": "^11.9.0",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"moment": "^2.29.4",
|
|
54
54
|
"moment-hijri": "^2.1.2 || ^3.0.0",
|
|
55
55
|
"moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0",
|
|
56
|
-
"react": "^17.0.0 || ^18.0.0",
|
|
57
|
-
"react-dom": "^17.0.0 || ^18.0.0"
|
|
56
|
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
57
|
+
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
58
58
|
},
|
|
59
59
|
"peerDependenciesMeta": {
|
|
60
60
|
"@emotion/react": {
|