@mui/x-date-pickers 6.2.0 → 6.2.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 +49 -1
- package/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/LocalizationProvider/LocalizationProvider.d.ts +1 -1
- package/LocalizationProvider/LocalizationProvider.js +1 -1
- package/MobileDatePicker/MobileDatePicker.js +1 -0
- package/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/MobileTimePicker/MobileTimePicker.js +1 -0
- package/StaticDatePicker/StaticDatePicker.js +1 -0
- package/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
- package/StaticTimePicker/StaticTimePicker.js +3 -2
- package/index.js +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +13 -14
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +1 -1
- package/internals/hooks/useField/useField.types.d.ts +1 -2
- package/internals/hooks/useField/useField.utils.d.ts +2 -2
- package/internals/hooks/useField/useFieldState.js +1 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +1 -1
- package/internals/hooks/usePicker/usePicker.d.ts +1 -1
- package/internals/hooks/usePicker/usePicker.js +2 -0
- package/internals/hooks/usePicker/usePicker.types.d.ts +1 -1
- package/internals/hooks/usePicker/usePickerValue.d.ts +1 -1
- package/internals/hooks/usePicker/usePickerValue.js +9 -11
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +4 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -1
- package/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +1 -1
- package/internals/utils/valueManagers.js +1 -1
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/legacy/LocalizationProvider/LocalizationProvider.js +1 -1
- package/legacy/MobileDatePicker/MobileDatePicker.js +1 -0
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/legacy/MobileTimePicker/MobileTimePicker.js +1 -0
- package/legacy/StaticDatePicker/StaticDatePicker.js +1 -0
- package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
- package/legacy/StaticTimePicker/StaticTimePicker.js +3 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +8 -10
- package/legacy/internals/hooks/useField/useFieldState.js +1 -1
- package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +5 -6
- package/legacy/internals/hooks/usePicker/usePicker.js +2 -0
- package/legacy/internals/hooks/usePicker/usePickerValue.js +9 -13
- package/legacy/internals/hooks/useStaticPicker/useStaticPicker.js +7 -8
- package/legacy/internals/utils/valueManagers.js +2 -2
- package/models/fields.d.ts +1 -0
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/modern/LocalizationProvider/LocalizationProvider.js +1 -1
- package/modern/MobileDatePicker/MobileDatePicker.js +1 -0
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/modern/MobileTimePicker/MobileTimePicker.js +1 -0
- package/modern/StaticDatePicker/StaticDatePicker.js +1 -0
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
- package/modern/StaticTimePicker/StaticTimePicker.js +3 -2
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +13 -14
- package/modern/internals/hooks/useField/useFieldState.js +1 -1
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
- package/modern/internals/hooks/usePicker/usePicker.js +2 -0
- package/modern/internals/hooks/usePicker/usePickerValue.js +9 -11
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
- package/modern/internals/utils/valueManagers.js +1 -1
- package/node/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/node/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/node/LocalizationProvider/LocalizationProvider.js +1 -1
- package/node/MobileDatePicker/MobileDatePicker.js +1 -0
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/node/MobileTimePicker/MobileTimePicker.js +1 -0
- package/node/StaticDatePicker/StaticDatePicker.js +1 -0
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
- package/node/StaticTimePicker/StaticTimePicker.js +3 -2
- package/node/index.js +1 -1
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +13 -14
- package/node/internals/hooks/useField/useFieldState.js +1 -1
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
- package/node/internals/hooks/usePicker/usePicker.js +2 -0
- package/node/internals/hooks/usePicker/usePickerValue.js +9 -11
- package/node/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
- package/node/internals/utils/valueManagers.js +1 -1
- package/package.json +1 -1
|
@@ -40,8 +40,9 @@ var StaticDateTimePicker = /*#__PURE__*/React.forwardRef(function StaticDateTime
|
|
|
40
40
|
var _useStaticPicker = useStaticPicker({
|
|
41
41
|
props: props,
|
|
42
42
|
valueManager: singleItemValueManager,
|
|
43
|
-
|
|
44
|
-
validator: validateDateTime
|
|
43
|
+
valueType: 'date-time',
|
|
44
|
+
validator: validateDateTime,
|
|
45
|
+
ref: ref
|
|
45
46
|
}),
|
|
46
47
|
renderPicker = _useStaticPicker.renderPicker;
|
|
47
48
|
return renderPicker();
|
|
@@ -32,8 +32,9 @@ var StaticTimePicker = /*#__PURE__*/React.forwardRef(function StaticTimePicker(i
|
|
|
32
32
|
var _useStaticPicker = useStaticPicker({
|
|
33
33
|
props: props,
|
|
34
34
|
valueManager: singleItemValueManager,
|
|
35
|
-
|
|
36
|
-
validator: validateTime
|
|
35
|
+
valueType: 'time',
|
|
36
|
+
validator: validateTime,
|
|
37
|
+
ref: ref
|
|
37
38
|
}),
|
|
38
39
|
renderPicker = _useStaticPicker.renderPicker;
|
|
39
40
|
return renderPicker();
|
package/legacy/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["
|
|
5
|
-
_excluded2 = ["ownerState"]
|
|
4
|
+
var _excluded = ["props", "getOpenDialogAriaText"],
|
|
5
|
+
_excluded2 = ["ownerState"],
|
|
6
|
+
_excluded3 = ["ownerState"];
|
|
6
7
|
import * as React from 'react';
|
|
7
8
|
import { useSlotProps } from '@mui/base/utils';
|
|
8
9
|
import MuiInputAdornment from '@mui/material/InputAdornment';
|
|
@@ -25,9 +26,8 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
25
26
|
export var useDesktopPicker = function useDesktopPicker(_ref) {
|
|
26
27
|
var _innerSlotProps$toolb, _innerSlotProps$toolb2, _slots$inputAdornment, _slots$openPickerButt, _slots$layout;
|
|
27
28
|
var props = _ref.props,
|
|
28
|
-
valueManager = _ref.valueManager,
|
|
29
29
|
getOpenDialogAriaText = _ref.getOpenDialogAriaText,
|
|
30
|
-
|
|
30
|
+
pickerParams = _objectWithoutProperties(_ref, _excluded);
|
|
31
31
|
var slots = props.slots,
|
|
32
32
|
innerSlotProps = props.slotProps,
|
|
33
33
|
className = props.className,
|
|
@@ -45,15 +45,13 @@ export var useDesktopPicker = function useDesktopPicker(_ref) {
|
|
|
45
45
|
var containerRef = React.useRef(null);
|
|
46
46
|
var labelId = useId();
|
|
47
47
|
var isToolbarHidden = (_innerSlotProps$toolb = innerSlotProps == null ? void 0 : (_innerSlotProps$toolb2 = innerSlotProps.toolbar) == null ? void 0 : _innerSlotProps$toolb2.hidden) != null ? _innerSlotProps$toolb : false;
|
|
48
|
-
var _usePicker = usePicker({
|
|
48
|
+
var _usePicker = usePicker(_extends({}, pickerParams, {
|
|
49
49
|
props: props,
|
|
50
50
|
inputRef: internalInputRef,
|
|
51
|
-
valueManager: valueManager,
|
|
52
|
-
validator: validator,
|
|
53
51
|
autoFocusView: true,
|
|
54
52
|
additionalViewProps: {},
|
|
55
53
|
wrapperVariant: 'desktop'
|
|
56
|
-
}),
|
|
54
|
+
})),
|
|
57
55
|
open = _usePicker.open,
|
|
58
56
|
actions = _usePicker.actions,
|
|
59
57
|
hasUIView = _usePicker.hasUIView,
|
|
@@ -71,7 +69,7 @@ export var useDesktopPicker = function useDesktopPicker(_ref) {
|
|
|
71
69
|
ownerState: props
|
|
72
70
|
}),
|
|
73
71
|
inputAdornmentOwnerState = _useSlotProps.ownerState,
|
|
74
|
-
inputAdornmentProps = _objectWithoutProperties(_useSlotProps,
|
|
72
|
+
inputAdornmentProps = _objectWithoutProperties(_useSlotProps, _excluded2);
|
|
75
73
|
var OpenPickerButton = (_slots$openPickerButt = slots.openPickerButton) != null ? _slots$openPickerButt : IconButton;
|
|
76
74
|
var _useSlotProps2 = useSlotProps({
|
|
77
75
|
elementType: OpenPickerButton,
|
|
@@ -85,7 +83,7 @@ export var useDesktopPicker = function useDesktopPicker(_ref) {
|
|
|
85
83
|
ownerState: props
|
|
86
84
|
}),
|
|
87
85
|
openPickerButtonOwnerState = _useSlotProps2.ownerState,
|
|
88
|
-
openPickerButtonProps = _objectWithoutProperties(_useSlotProps2,
|
|
86
|
+
openPickerButtonProps = _objectWithoutProperties(_useSlotProps2, _excluded3);
|
|
89
87
|
var OpenPickerIcon = slots.openPickerIcon;
|
|
90
88
|
var Field = slots.field;
|
|
91
89
|
var fieldProps = useSlotProps({
|
|
@@ -47,7 +47,7 @@ export var useFieldState = function useFieldState(params) {
|
|
|
47
47
|
return {
|
|
48
48
|
sections: sections,
|
|
49
49
|
value: valueFromTheOutside,
|
|
50
|
-
referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, valueManager.getTodayValue(utils)),
|
|
50
|
+
referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, valueManager.getTodayValue(utils, valueType)),
|
|
51
51
|
tempValueStrAndroid: null
|
|
52
52
|
};
|
|
53
53
|
}),
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
var _excluded = ["props", "getOpenDialogAriaText"];
|
|
2
4
|
import * as React from 'react';
|
|
3
5
|
import { useSlotProps } from '@mui/base/utils';
|
|
4
6
|
import useForkRef from '@mui/utils/useForkRef';
|
|
@@ -20,9 +22,8 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
20
22
|
export var useMobilePicker = function useMobilePicker(_ref) {
|
|
21
23
|
var _innerSlotProps$toolb, _innerSlotProps$toolb2, _slots$layout;
|
|
22
24
|
var props = _ref.props,
|
|
23
|
-
valueManager = _ref.valueManager,
|
|
24
25
|
getOpenDialogAriaText = _ref.getOpenDialogAriaText,
|
|
25
|
-
|
|
26
|
+
pickerParams = _objectWithoutProperties(_ref, _excluded);
|
|
26
27
|
var slots = props.slots,
|
|
27
28
|
innerSlotProps = props.slotProps,
|
|
28
29
|
className = props.className,
|
|
@@ -38,15 +39,13 @@ export var useMobilePicker = function useMobilePicker(_ref) {
|
|
|
38
39
|
var internalInputRef = React.useRef(null);
|
|
39
40
|
var labelId = useId();
|
|
40
41
|
var isToolbarHidden = (_innerSlotProps$toolb = innerSlotProps == null ? void 0 : (_innerSlotProps$toolb2 = innerSlotProps.toolbar) == null ? void 0 : _innerSlotProps$toolb2.hidden) != null ? _innerSlotProps$toolb : false;
|
|
41
|
-
var _usePicker = usePicker({
|
|
42
|
+
var _usePicker = usePicker(_extends({}, pickerParams, {
|
|
42
43
|
props: props,
|
|
43
44
|
inputRef: internalInputRef,
|
|
44
|
-
valueManager: valueManager,
|
|
45
|
-
validator: validator,
|
|
46
45
|
autoFocusView: true,
|
|
47
46
|
additionalViewProps: {},
|
|
48
47
|
wrapperVariant: 'mobile'
|
|
49
|
-
}),
|
|
48
|
+
})),
|
|
50
49
|
open = _usePicker.open,
|
|
51
50
|
actions = _usePicker.actions,
|
|
52
51
|
layoutProps = _usePicker.layoutProps,
|
|
@@ -6,6 +6,7 @@ var warnRenderInputIsDefined = buildWarning(['The `renderInput` prop has been re
|
|
|
6
6
|
export var usePicker = function usePicker(_ref) {
|
|
7
7
|
var props = _ref.props,
|
|
8
8
|
valueManager = _ref.valueManager,
|
|
9
|
+
valueType = _ref.valueType,
|
|
9
10
|
wrapperVariant = _ref.wrapperVariant,
|
|
10
11
|
inputRef = _ref.inputRef,
|
|
11
12
|
additionalViewProps = _ref.additionalViewProps,
|
|
@@ -19,6 +20,7 @@ export var usePicker = function usePicker(_ref) {
|
|
|
19
20
|
var pickerValueResponse = usePickerValue({
|
|
20
21
|
props: props,
|
|
21
22
|
valueManager: valueManager,
|
|
23
|
+
valueType: valueType,
|
|
22
24
|
wrapperVariant: wrapperVariant,
|
|
23
25
|
validator: validator
|
|
24
26
|
});
|
|
@@ -92,6 +92,7 @@ var shouldClosePicker = function shouldClosePicker(params) {
|
|
|
92
92
|
export var usePickerValue = function usePickerValue(_ref) {
|
|
93
93
|
var props = _ref.props,
|
|
94
94
|
valueManager = _ref.valueManager,
|
|
95
|
+
valueType = _ref.valueType,
|
|
95
96
|
wrapperVariant = _ref.wrapperVariant,
|
|
96
97
|
validator = _ref.validator;
|
|
97
98
|
var onAccept = props.onAccept,
|
|
@@ -200,21 +201,16 @@ export var usePickerValue = function usePickerValue(_ref) {
|
|
|
200
201
|
setIsOpen(false);
|
|
201
202
|
}
|
|
202
203
|
});
|
|
203
|
-
React.useEffect(function () {
|
|
204
|
-
if (isOpen) {
|
|
205
|
-
setDateState(function (prev) {
|
|
206
|
-
return _extends({}, prev, {
|
|
207
|
-
lastCommittedValue: dateState.draft
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
}, [isOpen]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
212
|
-
|
|
213
204
|
if (inValue !== undefined && (dateState.lastControlledValue === undefined || !valueManager.areValuesEqual(utils, dateState.lastControlledValue, inValue))) {
|
|
205
|
+
var isUpdateComingFromPicker = valueManager.areValuesEqual(utils, dateState.draft, inValue);
|
|
214
206
|
setDateState(function (prev) {
|
|
215
207
|
return _extends({}, prev, {
|
|
216
|
-
lastControlledValue: inValue
|
|
217
|
-
|
|
208
|
+
lastControlledValue: inValue
|
|
209
|
+
}, isUpdateComingFromPicker ? {} : {
|
|
210
|
+
lastCommittedValue: inValue,
|
|
211
|
+
lastPublishedValue: inValue,
|
|
212
|
+
draft: inValue,
|
|
213
|
+
hasBeenModifiedSinceMount: true
|
|
218
214
|
});
|
|
219
215
|
});
|
|
220
216
|
}
|
|
@@ -248,7 +244,7 @@ export var usePickerValue = function usePickerValue(_ref) {
|
|
|
248
244
|
});
|
|
249
245
|
var handleSetToday = useEventCallback(function () {
|
|
250
246
|
updateDate({
|
|
251
|
-
value: valueManager.getTodayValue(utils),
|
|
247
|
+
value: valueManager.getTodayValue(utils, valueType),
|
|
252
248
|
name: 'setValueFromAction',
|
|
253
249
|
pickerAction: 'today'
|
|
254
250
|
});
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
1
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
+
var _excluded = ["props", "ref"];
|
|
3
5
|
import * as React from 'react';
|
|
4
6
|
import clsx from 'clsx';
|
|
5
7
|
import { styled } from '@mui/material/styles';
|
|
@@ -26,9 +28,8 @@ var PickerStaticLayout = styled(PickersLayout)(function (_ref) {
|
|
|
26
28
|
export var useStaticPicker = function useStaticPicker(_ref2) {
|
|
27
29
|
var _slots$layout;
|
|
28
30
|
var props = _ref2.props,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
ref = _ref2.ref;
|
|
31
|
+
ref = _ref2.ref,
|
|
32
|
+
pickerParams = _objectWithoutProperties(_ref2, _excluded);
|
|
32
33
|
var localeText = props.localeText,
|
|
33
34
|
slots = props.slots,
|
|
34
35
|
slotProps = props.slotProps,
|
|
@@ -36,14 +37,12 @@ export var useStaticPicker = function useStaticPicker(_ref2) {
|
|
|
36
37
|
sx = props.sx,
|
|
37
38
|
displayStaticWrapperAs = props.displayStaticWrapperAs,
|
|
38
39
|
autoFocus = props.autoFocus;
|
|
39
|
-
var _usePicker = usePicker({
|
|
40
|
+
var _usePicker = usePicker(_extends({}, pickerParams, {
|
|
40
41
|
props: props,
|
|
41
|
-
valueManager: valueManager,
|
|
42
|
-
validator: validator,
|
|
43
42
|
autoFocusView: autoFocus != null ? autoFocus : false,
|
|
44
43
|
additionalViewProps: {},
|
|
45
44
|
wrapperVariant: displayStaticWrapperAs
|
|
46
|
-
}),
|
|
45
|
+
})),
|
|
47
46
|
layoutProps = _usePicker.layoutProps,
|
|
48
47
|
renderCurrentView = _usePicker.renderCurrentView;
|
|
49
48
|
var Layout = (_slots$layout = slots == null ? void 0 : slots.layout) != null ? _slots$layout : PickerStaticLayout;
|
|
@@ -2,8 +2,8 @@ import { areDatesEqual, replaceInvalidDateByNull } from './date-utils';
|
|
|
2
2
|
import { addPositionPropertiesToSections, createDateStrForInputFromSections } from '../hooks/useField/useField.utils';
|
|
3
3
|
export var singleItemValueManager = {
|
|
4
4
|
emptyValue: null,
|
|
5
|
-
getTodayValue: function getTodayValue(utils) {
|
|
6
|
-
return utils.date();
|
|
5
|
+
getTodayValue: function getTodayValue(utils, valueType) {
|
|
6
|
+
return valueType === 'date' ? utils.startOfDay(utils.date()) : utils.date();
|
|
7
7
|
},
|
|
8
8
|
cleanValue: replaceInvalidDateByNull,
|
|
9
9
|
areValuesEqual: areDatesEqual,
|
package/models/fields.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { BaseFieldProps } from '../internals/models/fields';
|
|
3
3
|
export type FieldSectionType = 'year' | 'month' | 'day' | 'weekDay' | 'hours' | 'minutes' | 'seconds' | 'meridiem';
|
|
4
|
+
export type FieldValueType = 'date' | 'time' | 'date-time';
|
|
4
5
|
export interface FieldSection {
|
|
5
6
|
/**
|
|
6
7
|
* Value of the section, as rendered inside the input.
|
|
@@ -45,6 +45,7 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
45
45
|
} = useDesktopPicker({
|
|
46
46
|
props,
|
|
47
47
|
valueManager: singleItemValueManager,
|
|
48
|
+
valueType: 'date',
|
|
48
49
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
49
50
|
validator: validateDate
|
|
50
51
|
});
|
|
@@ -53,6 +53,7 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
53
53
|
} = useDesktopPicker({
|
|
54
54
|
props,
|
|
55
55
|
valueManager: singleItemValueManager,
|
|
56
|
+
valueType: 'date-time',
|
|
56
57
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
57
58
|
validator: validateDateTime
|
|
58
59
|
});
|
|
@@ -45,6 +45,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
45
45
|
} = useDesktopPicker({
|
|
46
46
|
props,
|
|
47
47
|
valueManager: singleItemValueManager,
|
|
48
|
+
valueType: 'time',
|
|
48
49
|
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
49
50
|
validator: validateTime
|
|
50
51
|
});
|
|
@@ -89,7 +89,7 @@ process.env.NODE_ENV !== "production" ? LocalizationProvider.propTypes = {
|
|
|
89
89
|
children: PropTypes.node,
|
|
90
90
|
/**
|
|
91
91
|
* Date library adapter class function.
|
|
92
|
-
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#
|
|
92
|
+
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.
|
|
93
93
|
*/
|
|
94
94
|
dateAdapter: PropTypes.func,
|
|
95
95
|
/**
|
|
@@ -42,6 +42,7 @@ const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker
|
|
|
42
42
|
} = useMobilePicker({
|
|
43
43
|
props,
|
|
44
44
|
valueManager: singleItemValueManager,
|
|
45
|
+
valueType: 'date',
|
|
45
46
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
46
47
|
validator: validateDate
|
|
47
48
|
});
|
|
@@ -51,6 +51,7 @@ const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTi
|
|
|
51
51
|
} = useMobilePicker({
|
|
52
52
|
props,
|
|
53
53
|
valueManager: singleItemValueManager,
|
|
54
|
+
valueType: 'date-time',
|
|
54
55
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
55
56
|
validator: validateDateTime
|
|
56
57
|
});
|
|
@@ -44,6 +44,7 @@ const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker
|
|
|
44
44
|
} = useMobilePicker({
|
|
45
45
|
props,
|
|
46
46
|
valueManager: singleItemValueManager,
|
|
47
|
+
valueType: 'time',
|
|
47
48
|
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
48
49
|
validator: validateTime
|
|
49
50
|
});
|
|
@@ -41,8 +41,9 @@ const StaticDateTimePicker = /*#__PURE__*/React.forwardRef(function StaticDateTi
|
|
|
41
41
|
} = useStaticPicker({
|
|
42
42
|
props,
|
|
43
43
|
valueManager: singleItemValueManager,
|
|
44
|
-
|
|
45
|
-
validator: validateDateTime
|
|
44
|
+
valueType: 'date-time',
|
|
45
|
+
validator: validateDateTime,
|
|
46
|
+
ref
|
|
46
47
|
});
|
|
47
48
|
return renderPicker();
|
|
48
49
|
});
|
|
@@ -33,8 +33,9 @@ const StaticTimePicker = /*#__PURE__*/React.forwardRef(function StaticTimePicker
|
|
|
33
33
|
} = useStaticPicker({
|
|
34
34
|
props,
|
|
35
35
|
valueManager: singleItemValueManager,
|
|
36
|
-
|
|
37
|
-
validator: validateTime
|
|
36
|
+
valueType: 'time',
|
|
37
|
+
validator: validateTime,
|
|
38
|
+
ref
|
|
38
39
|
});
|
|
39
40
|
return renderPicker();
|
|
40
41
|
});
|
package/modern/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["
|
|
4
|
-
_excluded2 = ["ownerState"]
|
|
3
|
+
const _excluded = ["props", "getOpenDialogAriaText"],
|
|
4
|
+
_excluded2 = ["ownerState"],
|
|
5
|
+
_excluded3 = ["ownerState"];
|
|
5
6
|
import * as React from 'react';
|
|
6
7
|
import { useSlotProps } from '@mui/base/utils';
|
|
7
8
|
import MuiInputAdornment from '@mui/material/InputAdornment';
|
|
@@ -21,12 +22,12 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
21
22
|
* - DesktopDateTimePicker
|
|
22
23
|
* - DesktopTimePicker
|
|
23
24
|
*/
|
|
24
|
-
export const useDesktopPicker =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
export const useDesktopPicker = _ref => {
|
|
26
|
+
let {
|
|
27
|
+
props,
|
|
28
|
+
getOpenDialogAriaText
|
|
29
|
+
} = _ref,
|
|
30
|
+
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
30
31
|
const {
|
|
31
32
|
slots,
|
|
32
33
|
slotProps: innerSlotProps,
|
|
@@ -54,15 +55,13 @@ export const useDesktopPicker = ({
|
|
|
54
55
|
renderCurrentView,
|
|
55
56
|
shouldRestoreFocus,
|
|
56
57
|
fieldProps: pickerFieldProps
|
|
57
|
-
} = usePicker({
|
|
58
|
+
} = usePicker(_extends({}, pickerParams, {
|
|
58
59
|
props,
|
|
59
60
|
inputRef: internalInputRef,
|
|
60
|
-
valueManager,
|
|
61
|
-
validator,
|
|
62
61
|
autoFocusView: true,
|
|
63
62
|
additionalViewProps: {},
|
|
64
63
|
wrapperVariant: 'desktop'
|
|
65
|
-
});
|
|
64
|
+
}));
|
|
66
65
|
const InputAdornment = slots.inputAdornment ?? MuiInputAdornment;
|
|
67
66
|
const _useSlotProps = useSlotProps({
|
|
68
67
|
elementType: InputAdornment,
|
|
@@ -72,7 +71,7 @@ export const useDesktopPicker = ({
|
|
|
72
71
|
},
|
|
73
72
|
ownerState: props
|
|
74
73
|
}),
|
|
75
|
-
inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps,
|
|
74
|
+
inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
76
75
|
const OpenPickerButton = slots.openPickerButton ?? IconButton;
|
|
77
76
|
const _useSlotProps2 = useSlotProps({
|
|
78
77
|
elementType: OpenPickerButton,
|
|
@@ -85,7 +84,7 @@ export const useDesktopPicker = ({
|
|
|
85
84
|
},
|
|
86
85
|
ownerState: props
|
|
87
86
|
}),
|
|
88
|
-
openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2,
|
|
87
|
+
openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);
|
|
89
88
|
const OpenPickerIcon = slots.openPickerIcon;
|
|
90
89
|
const Field = slots.field;
|
|
91
90
|
const fieldProps = useSlotProps({
|
|
@@ -37,7 +37,7 @@ export const useFieldState = params => {
|
|
|
37
37
|
return {
|
|
38
38
|
sections,
|
|
39
39
|
value: valueFromTheOutside,
|
|
40
|
-
referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, valueManager.getTodayValue(utils)),
|
|
40
|
+
referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, valueManager.getTodayValue(utils, valueType)),
|
|
41
41
|
tempValueStrAndroid: null
|
|
42
42
|
};
|
|
43
43
|
});
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["props", "getOpenDialogAriaText"];
|
|
2
4
|
import * as React from 'react';
|
|
3
5
|
import { useSlotProps } from '@mui/base/utils';
|
|
4
6
|
import useForkRef from '@mui/utils/useForkRef';
|
|
@@ -17,12 +19,12 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
17
19
|
* - MobileDateTimePicker
|
|
18
20
|
* - MobileTimePicker
|
|
19
21
|
*/
|
|
20
|
-
export const useMobilePicker =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
export const useMobilePicker = _ref => {
|
|
23
|
+
let {
|
|
24
|
+
props,
|
|
25
|
+
getOpenDialogAriaText
|
|
26
|
+
} = _ref,
|
|
27
|
+
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
26
28
|
const {
|
|
27
29
|
slots,
|
|
28
30
|
slotProps: innerSlotProps,
|
|
@@ -46,15 +48,13 @@ export const useMobilePicker = ({
|
|
|
46
48
|
layoutProps,
|
|
47
49
|
renderCurrentView,
|
|
48
50
|
fieldProps: pickerFieldProps
|
|
49
|
-
} = usePicker({
|
|
51
|
+
} = usePicker(_extends({}, pickerParams, {
|
|
50
52
|
props,
|
|
51
53
|
inputRef: internalInputRef,
|
|
52
|
-
valueManager,
|
|
53
|
-
validator,
|
|
54
54
|
autoFocusView: true,
|
|
55
55
|
additionalViewProps: {},
|
|
56
56
|
wrapperVariant: 'mobile'
|
|
57
|
-
});
|
|
57
|
+
}));
|
|
58
58
|
const Field = slots.field;
|
|
59
59
|
const fieldProps = useSlotProps({
|
|
60
60
|
elementType: Field,
|
|
@@ -6,6 +6,7 @@ const warnRenderInputIsDefined = buildWarning(['The `renderInput` prop has been
|
|
|
6
6
|
export const usePicker = ({
|
|
7
7
|
props,
|
|
8
8
|
valueManager,
|
|
9
|
+
valueType,
|
|
9
10
|
wrapperVariant,
|
|
10
11
|
inputRef,
|
|
11
12
|
additionalViewProps,
|
|
@@ -20,6 +21,7 @@ export const usePicker = ({
|
|
|
20
21
|
const pickerValueResponse = usePickerValue({
|
|
21
22
|
props,
|
|
22
23
|
valueManager,
|
|
24
|
+
valueType,
|
|
23
25
|
wrapperVariant,
|
|
24
26
|
validator
|
|
25
27
|
});
|
|
@@ -97,6 +97,7 @@ const shouldClosePicker = params => {
|
|
|
97
97
|
export const usePickerValue = ({
|
|
98
98
|
props,
|
|
99
99
|
valueManager,
|
|
100
|
+
valueType,
|
|
100
101
|
wrapperVariant,
|
|
101
102
|
validator
|
|
102
103
|
}) => {
|
|
@@ -200,18 +201,15 @@ export const usePickerValue = ({
|
|
|
200
201
|
setIsOpen(false);
|
|
201
202
|
}
|
|
202
203
|
});
|
|
203
|
-
React.useEffect(() => {
|
|
204
|
-
if (isOpen) {
|
|
205
|
-
setDateState(prev => _extends({}, prev, {
|
|
206
|
-
lastCommittedValue: dateState.draft
|
|
207
|
-
}));
|
|
208
|
-
}
|
|
209
|
-
}, [isOpen]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
210
|
-
|
|
211
204
|
if (inValue !== undefined && (dateState.lastControlledValue === undefined || !valueManager.areValuesEqual(utils, dateState.lastControlledValue, inValue))) {
|
|
205
|
+
const isUpdateComingFromPicker = valueManager.areValuesEqual(utils, dateState.draft, inValue);
|
|
212
206
|
setDateState(prev => _extends({}, prev, {
|
|
213
|
-
lastControlledValue: inValue
|
|
214
|
-
|
|
207
|
+
lastControlledValue: inValue
|
|
208
|
+
}, isUpdateComingFromPicker ? {} : {
|
|
209
|
+
lastCommittedValue: inValue,
|
|
210
|
+
lastPublishedValue: inValue,
|
|
211
|
+
draft: inValue,
|
|
212
|
+
hasBeenModifiedSinceMount: true
|
|
215
213
|
}));
|
|
216
214
|
}
|
|
217
215
|
const handleClear = useEventCallback(() => {
|
|
@@ -244,7 +242,7 @@ export const usePickerValue = ({
|
|
|
244
242
|
});
|
|
245
243
|
const handleSetToday = useEventCallback(() => {
|
|
246
244
|
updateDate({
|
|
247
|
-
value: valueManager.getTodayValue(utils),
|
|
245
|
+
value: valueManager.getTodayValue(utils, valueType),
|
|
248
246
|
name: 'setValueFromAction',
|
|
249
247
|
pickerAction: 'today'
|
|
250
248
|
});
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["props", "ref"];
|
|
2
4
|
import * as React from 'react';
|
|
3
5
|
import clsx from 'clsx';
|
|
4
6
|
import { styled } from '@mui/material/styles';
|
|
@@ -21,12 +23,12 @@ const PickerStaticLayout = styled(PickersLayout)(({
|
|
|
21
23
|
* - StaticDateTimePicker
|
|
22
24
|
* - StaticTimePicker
|
|
23
25
|
*/
|
|
24
|
-
export const useStaticPicker =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
export const useStaticPicker = _ref => {
|
|
27
|
+
let {
|
|
28
|
+
props,
|
|
29
|
+
ref
|
|
30
|
+
} = _ref,
|
|
31
|
+
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
30
32
|
const {
|
|
31
33
|
localeText,
|
|
32
34
|
slots,
|
|
@@ -39,14 +41,12 @@ export const useStaticPicker = ({
|
|
|
39
41
|
const {
|
|
40
42
|
layoutProps,
|
|
41
43
|
renderCurrentView
|
|
42
|
-
} = usePicker({
|
|
44
|
+
} = usePicker(_extends({}, pickerParams, {
|
|
43
45
|
props,
|
|
44
|
-
valueManager,
|
|
45
|
-
validator,
|
|
46
46
|
autoFocusView: autoFocus ?? false,
|
|
47
47
|
additionalViewProps: {},
|
|
48
48
|
wrapperVariant: displayStaticWrapperAs
|
|
49
|
-
});
|
|
49
|
+
}));
|
|
50
50
|
const Layout = slots?.layout ?? PickerStaticLayout;
|
|
51
51
|
const renderPicker = () => /*#__PURE__*/_jsx(LocalizationProvider, {
|
|
52
52
|
localeText: localeText,
|
|
@@ -2,7 +2,7 @@ import { areDatesEqual, replaceInvalidDateByNull } from './date-utils';
|
|
|
2
2
|
import { addPositionPropertiesToSections, createDateStrForInputFromSections } from '../hooks/useField/useField.utils';
|
|
3
3
|
export const singleItemValueManager = {
|
|
4
4
|
emptyValue: null,
|
|
5
|
-
getTodayValue: utils => utils.date(),
|
|
5
|
+
getTodayValue: (utils, valueType) => valueType === 'date' ? utils.startOfDay(utils.date()) : utils.date(),
|
|
6
6
|
cleanValue: replaceInvalidDateByNull,
|
|
7
7
|
areValuesEqual: areDatesEqual,
|
|
8
8
|
isSameError: (a, b) => a === b,
|
|
@@ -54,6 +54,7 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
54
54
|
} = (0, _useDesktopPicker.useDesktopPicker)({
|
|
55
55
|
props,
|
|
56
56
|
valueManager: _valueManagers.singleItemValueManager,
|
|
57
|
+
valueType: 'date',
|
|
57
58
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
58
59
|
validator: _internals.validateDate
|
|
59
60
|
});
|
|
@@ -62,6 +62,7 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
62
62
|
} = (0, _useDesktopPicker.useDesktopPicker)({
|
|
63
63
|
props,
|
|
64
64
|
valueManager: _valueManagers.singleItemValueManager,
|
|
65
|
+
valueType: 'date-time',
|
|
65
66
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
66
67
|
validator: _internals.validateDateTime
|
|
67
68
|
});
|
|
@@ -54,6 +54,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
54
54
|
} = (0, _useDesktopPicker.useDesktopPicker)({
|
|
55
55
|
props,
|
|
56
56
|
valueManager: _valueManagers.singleItemValueManager,
|
|
57
|
+
valueType: 'time',
|
|
57
58
|
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
58
59
|
validator: _internals.validateTime
|
|
59
60
|
});
|
|
@@ -100,7 +100,7 @@ process.env.NODE_ENV !== "production" ? LocalizationProvider.propTypes = {
|
|
|
100
100
|
children: _propTypes.default.node,
|
|
101
101
|
/**
|
|
102
102
|
* Date library adapter class function.
|
|
103
|
-
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#
|
|
103
|
+
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.
|
|
104
104
|
*/
|
|
105
105
|
dateAdapter: _propTypes.default.func,
|
|
106
106
|
/**
|
|
@@ -51,6 +51,7 @@ const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker
|
|
|
51
51
|
} = (0, _useMobilePicker.useMobilePicker)({
|
|
52
52
|
props,
|
|
53
53
|
valueManager: _valueManagers.singleItemValueManager,
|
|
54
|
+
valueType: 'date',
|
|
54
55
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
55
56
|
validator: _internals.validateDate
|
|
56
57
|
});
|