@mui/x-date-pickers 8.0.0-alpha.1 → 8.0.0-alpha.3
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/AdapterMoment/AdapterMoment.js +10 -0
- package/CHANGELOG.md +330 -7
- package/DateCalendar/DateCalendar.types.d.ts +2 -1
- package/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/DateCalendar/PickersSlideTransition.js +12 -5
- package/DateCalendar/useCalendarState.d.ts +6 -4
- package/DateField/DateField.js +5 -4
- package/DateField/DateField.types.d.ts +10 -9
- package/DatePicker/DatePicker.types.d.ts +3 -3
- package/DatePicker/DatePickerToolbar.d.ts +3 -2
- package/DatePicker/shared.d.ts +6 -5
- package/DateTimeField/DateTimeField.js +5 -4
- package/DateTimeField/DateTimeField.types.d.ts +10 -10
- package/DateTimePicker/DateTimePicker.types.d.ts +3 -3
- package/DateTimePicker/DateTimePickerTabs.js +8 -6
- package/DateTimePicker/DateTimePickerToolbar.d.ts +2 -3
- package/DateTimePicker/shared.d.ts +6 -6
- package/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -1
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -21
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +6 -6
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +4 -4
- package/PickersActionBar/PickersActionBar.js +8 -1
- package/PickersCalendarHeader/PickersCalendarHeader.js +8 -7
- package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +3 -4
- package/PickersLayout/PickersLayout.d.ts +7 -5
- package/PickersLayout/PickersLayout.js +22 -27
- package/PickersLayout/PickersLayout.types.d.ts +14 -15
- package/PickersLayout/usePickerLayout.d.ts +5 -4
- package/PickersLayout/usePickerLayout.js +19 -12
- package/PickersShortcuts/PickersShortcuts.d.ts +7 -6
- package/PickersShortcuts/PickersShortcuts.js +8 -1
- package/README.md +7 -4
- package/TimeField/TimeField.js +5 -4
- package/TimeField/TimeField.types.d.ts +10 -10
- package/TimePicker/TimePicker.types.d.ts +3 -3
- package/TimePicker/TimePickerToolbar.d.ts +2 -3
- package/TimePicker/shared.d.ts +6 -6
- package/hooks/useParsedFormat.d.ts +2 -2
- package/hooks/useParsedFormat.js +1 -1
- package/index.js +1 -1
- package/internals/components/PickerProvider.d.ts +2 -15
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -10
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +11 -8
- package/internals/components/PickersToolbar.d.ts +3 -3
- package/internals/hooks/useClockReferenceDate.d.ts +2 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +14 -14
- package/internals/hooks/useField/useField.d.ts +3 -3
- package/internals/hooks/useField/useField.types.d.ts +45 -45
- package/internals/hooks/useField/useField.utils.d.ts +4 -3
- package/internals/hooks/useField/useFieldCharacterEditing.d.ts +6 -5
- package/internals/hooks/useField/useFieldState.d.ts +9 -8
- package/internals/hooks/useField/useFieldState.js +0 -1
- package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
- package/internals/hooks/useFieldOwnerState.d.ts +6 -0
- package/internals/hooks/useFieldOwnerState.js +12 -0
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +11 -11
- package/internals/hooks/useOpenState.d.ts +3 -2
- package/internals/hooks/useOpenState.js +10 -9
- package/internals/hooks/usePicker/usePicker.d.ts +3 -3
- package/internals/hooks/usePicker/usePicker.js +4 -10
- package/internals/hooks/usePicker/usePicker.types.d.ts +7 -7
- package/internals/hooks/usePicker/usePickerProvider.d.ts +5 -6
- package/internals/hooks/usePicker/usePickerProvider.js +8 -10
- package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
- package/internals/hooks/usePicker/usePickerValue.js +22 -12
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +51 -24
- package/internals/hooks/usePicker/usePickerViews.d.ts +10 -10
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +5 -6
- package/internals/hooks/useValueWithTimezone.d.ts +5 -4
- package/internals/hooks/useViews.d.ts +5 -5
- package/internals/index.d.ts +4 -2
- package/internals/index.js +1 -0
- package/internals/models/fields.d.ts +6 -1
- package/internals/models/pickers.d.ts +1 -0
- package/internals/models/pickers.js +1 -0
- package/internals/models/props/basePickerProps.d.ts +4 -3
- package/internals/models/props/time.d.ts +2 -1
- package/internals/models/props/toolbar.d.ts +2 -1
- package/internals/models/value.d.ts +9 -0
- package/internals/utils/date-utils.d.ts +1 -1
- package/internals/utils/valueManagers.d.ts +4 -3
- package/locales/nlNL.js +7 -7
- package/models/adapters.d.ts +4 -4
- package/models/fields.d.ts +19 -5
- package/models/validation.d.ts +2 -1
- package/modern/AdapterMoment/AdapterMoment.js +10 -0
- package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/modern/DateCalendar/PickersSlideTransition.js +12 -5
- package/modern/DateField/DateField.js +5 -4
- package/modern/DateTimeField/DateTimeField.js +5 -4
- package/modern/DateTimePicker/DateTimePickerTabs.js +8 -6
- package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -21
- package/modern/PickersActionBar/PickersActionBar.js +8 -1
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +8 -7
- package/modern/PickersLayout/PickersLayout.js +22 -27
- package/modern/PickersLayout/usePickerLayout.js +19 -12
- package/modern/PickersShortcuts/PickersShortcuts.js +8 -1
- package/modern/TimeField/TimeField.js +5 -4
- package/modern/hooks/useParsedFormat.js +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -10
- package/modern/internals/hooks/useField/useFieldState.js +0 -1
- package/modern/internals/hooks/useFieldOwnerState.js +12 -0
- package/modern/internals/hooks/useOpenState.js +10 -9
- package/modern/internals/hooks/usePicker/usePicker.js +4 -10
- package/modern/internals/hooks/usePicker/usePickerProvider.js +8 -10
- package/modern/internals/hooks/usePicker/usePickerValue.js +22 -12
- package/modern/internals/index.js +1 -0
- package/modern/internals/models/pickers.js +1 -0
- package/modern/locales/nlNL.js +7 -7
- package/modern/validation/useValidation.js +1 -1
- package/modern/validation/validateDate.js +8 -0
- package/modern/validation/validateDateTime.js +8 -0
- package/modern/validation/validateTime.js +8 -0
- package/node/AdapterMoment/AdapterMoment.js +10 -0
- package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/node/DateCalendar/PickersSlideTransition.js +12 -5
- package/node/DateField/DateField.js +5 -4
- package/node/DateTimeField/DateTimeField.js +5 -4
- package/node/DateTimePicker/DateTimePickerTabs.js +8 -6
- package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +11 -22
- package/node/PickersActionBar/PickersActionBar.js +8 -1
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +8 -7
- package/node/PickersLayout/PickersLayout.js +22 -27
- package/node/PickersLayout/usePickerLayout.js +19 -12
- package/node/PickersShortcuts/PickersShortcuts.js +8 -1
- package/node/TimeField/TimeField.js +5 -4
- package/node/hooks/useParsedFormat.js +1 -1
- package/node/index.js +1 -1
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -10
- package/node/internals/hooks/useField/useFieldState.js +0 -1
- package/node/internals/hooks/useFieldOwnerState.js +20 -0
- package/node/internals/hooks/useOpenState.js +10 -9
- package/node/internals/hooks/usePicker/usePicker.js +5 -10
- package/node/internals/hooks/usePicker/usePickerProvider.js +9 -11
- package/node/internals/hooks/usePicker/usePickerValue.js +22 -11
- package/node/internals/index.js +7 -0
- package/node/internals/models/pickers.js +5 -0
- package/node/locales/nlNL.js +7 -7
- package/node/validation/useValidation.js +1 -1
- package/node/validation/validateDate.js +8 -0
- package/node/validation/validateDateTime.js +8 -0
- package/node/validation/validateTime.js +8 -0
- package/package.json +2 -2
- package/themeAugmentation/overrides.d.ts +1 -1
- package/themeAugmentation/props.d.ts +3 -2
- package/validation/useValidation.d.ts +7 -6
- package/validation/useValidation.js +1 -1
- package/validation/validateDate.d.ts +12 -3
- package/validation/validateDate.js +8 -0
- package/validation/validateDateTime.d.ts +12 -4
- package/validation/validateDateTime.js +8 -0
- package/validation/validateTime.d.ts +12 -3
- package/validation/validateTime.js +8 -0
- package/internals/hooks/useIsLandscape.d.ts +0 -4
- package/internals/hooks/useIsLandscape.js +0 -35
- package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +0 -32
- package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
- package/modern/internals/hooks/useIsLandscape.js +0 -35
- package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
- package/node/internals/hooks/useIsLandscape.js +0 -43
- package/node/internals/hooks/usePicker/usePickerLayoutProps.js +0 -38
|
@@ -24,13 +24,11 @@ var _icons = require("../icons");
|
|
|
24
24
|
var _PickersArrowSwitcher = require("../internals/components/PickersArrowSwitcher");
|
|
25
25
|
var _dateHelpersHooks = require("../internals/hooks/date-helpers-hooks");
|
|
26
26
|
var _pickersCalendarHeaderClasses = require("./pickersCalendarHeaderClasses");
|
|
27
|
+
var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
|
|
27
28
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
28
|
-
const _excluded = ["slots", "slotProps", "currentMonth", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onMonthChange", "onViewChange", "view", "reduceAnimations", "views", "labelId", "className", "timezone", "format"],
|
|
29
|
+
const _excluded = ["slots", "slotProps", "currentMonth", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onMonthChange", "onViewChange", "view", "reduceAnimations", "views", "labelId", "className", "classes", "timezone", "format"],
|
|
29
30
|
_excluded2 = ["ownerState"];
|
|
30
|
-
const useUtilityClasses =
|
|
31
|
-
const {
|
|
32
|
-
classes
|
|
33
|
-
} = ownerState;
|
|
31
|
+
const useUtilityClasses = classes => {
|
|
34
32
|
const slots = {
|
|
35
33
|
root: ['root'],
|
|
36
34
|
labelContainer: ['labelContainer'],
|
|
@@ -139,12 +137,15 @@ const PickersCalendarHeader = exports.PickersCalendarHeader = /*#__PURE__*/React
|
|
|
139
137
|
views,
|
|
140
138
|
labelId,
|
|
141
139
|
className,
|
|
140
|
+
classes: classesProp,
|
|
142
141
|
timezone,
|
|
143
142
|
format = `${utils.formats.month} ${utils.formats.year}`
|
|
144
143
|
} = props,
|
|
145
144
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
146
|
-
const
|
|
147
|
-
|
|
145
|
+
const {
|
|
146
|
+
ownerState
|
|
147
|
+
} = (0, _usePickerPrivateContext.usePickerPrivateContext)();
|
|
148
|
+
const classes = useUtilityClasses(classesProp);
|
|
148
149
|
const SwitchViewButton = slots?.switchViewButton ?? PickersCalendarHeaderSwitchViewButton;
|
|
149
150
|
const switchViewButtonProps = (0, _useSlotProps2.default)({
|
|
150
151
|
elementType: SwitchViewButton,
|
|
@@ -14,14 +14,14 @@ var _styles = require("@mui/material/styles");
|
|
|
14
14
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
15
15
|
var _pickersLayoutClasses = require("./pickersLayoutClasses");
|
|
16
16
|
var _usePickerLayout = _interopRequireDefault(require("./usePickerLayout"));
|
|
17
|
+
var _usePickerContext = require("../hooks/usePickerContext");
|
|
17
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
-
const useUtilityClasses = ownerState => {
|
|
19
|
+
const useUtilityClasses = (classes, ownerState) => {
|
|
19
20
|
const {
|
|
20
|
-
|
|
21
|
-
classes
|
|
21
|
+
pickerOrientation
|
|
22
22
|
} = ownerState;
|
|
23
23
|
const slots = {
|
|
24
|
-
root: ['root',
|
|
24
|
+
root: ['root', pickerOrientation === 'landscape' && 'landscape'],
|
|
25
25
|
contentWrapper: ['contentWrapper']
|
|
26
26
|
};
|
|
27
27
|
return (0, _composeClasses.default)(slots, _pickersLayoutClasses.getPickersLayoutUtilityClass, classes);
|
|
@@ -40,7 +40,7 @@ const PickersLayoutRoot = exports.PickersLayoutRoot = (0, _styles.styled)('div',
|
|
|
40
40
|
},
|
|
41
41
|
variants: [{
|
|
42
42
|
props: {
|
|
43
|
-
|
|
43
|
+
pickerOrientation: 'landscape'
|
|
44
44
|
},
|
|
45
45
|
style: {
|
|
46
46
|
[`& .${_pickersLayoutClasses.pickersLayoutClasses.toolbar}`]: {
|
|
@@ -54,7 +54,7 @@ const PickersLayoutRoot = exports.PickersLayoutRoot = (0, _styles.styled)('div',
|
|
|
54
54
|
}
|
|
55
55
|
}, {
|
|
56
56
|
props: {
|
|
57
|
-
|
|
57
|
+
pickerOrientation: 'landscape',
|
|
58
58
|
isRtl: true
|
|
59
59
|
},
|
|
60
60
|
style: {
|
|
@@ -64,7 +64,7 @@ const PickersLayoutRoot = exports.PickersLayoutRoot = (0, _styles.styled)('div',
|
|
|
64
64
|
}
|
|
65
65
|
}, {
|
|
66
66
|
props: {
|
|
67
|
-
|
|
67
|
+
pickerOrientation: 'portrait'
|
|
68
68
|
},
|
|
69
69
|
style: {
|
|
70
70
|
[`& .${_pickersLayoutClasses.pickersLayoutClasses.toolbar}`]: {
|
|
@@ -78,7 +78,7 @@ const PickersLayoutRoot = exports.PickersLayoutRoot = (0, _styles.styled)('div',
|
|
|
78
78
|
}
|
|
79
79
|
}, {
|
|
80
80
|
props: {
|
|
81
|
-
|
|
81
|
+
pickerOrientation: 'portrait',
|
|
82
82
|
isRtl: true
|
|
83
83
|
},
|
|
84
84
|
style: {
|
|
@@ -117,23 +117,28 @@ const PickersLayout = exports.PickersLayout = /*#__PURE__*/React.forwardRef(func
|
|
|
117
117
|
content,
|
|
118
118
|
tabs,
|
|
119
119
|
actionBar,
|
|
120
|
-
shortcuts
|
|
120
|
+
shortcuts,
|
|
121
|
+
ownerState
|
|
121
122
|
} = (0, _usePickerLayout.default)(props);
|
|
123
|
+
const {
|
|
124
|
+
orientation,
|
|
125
|
+
variant
|
|
126
|
+
} = (0, _usePickerContext.usePickerContext)();
|
|
122
127
|
const {
|
|
123
128
|
sx,
|
|
124
129
|
className,
|
|
125
|
-
|
|
126
|
-
wrapperVariant
|
|
130
|
+
classes: classesProp
|
|
127
131
|
} = props;
|
|
128
|
-
const classes = useUtilityClasses(
|
|
132
|
+
const classes = useUtilityClasses(classesProp, ownerState);
|
|
129
133
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(PickersLayoutRoot, {
|
|
130
134
|
ref: ref,
|
|
131
135
|
sx: sx,
|
|
132
136
|
className: (0, _clsx.default)(classes.root, className),
|
|
133
|
-
ownerState:
|
|
134
|
-
children: [
|
|
137
|
+
ownerState: ownerState,
|
|
138
|
+
children: [orientation === 'landscape' ? shortcuts : toolbar, orientation === 'landscape' ? toolbar : shortcuts, /*#__PURE__*/(0, _jsxRuntime.jsx)(PickersLayoutContentWrapper, {
|
|
135
139
|
className: classes.contentWrapper,
|
|
136
|
-
|
|
140
|
+
ownerState: ownerState,
|
|
141
|
+
children: variant === 'desktop' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
137
142
|
children: [content, tabs]
|
|
138
143
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
139
144
|
children: [tabs, content]
|
|
@@ -152,11 +157,6 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
|
|
|
152
157
|
*/
|
|
153
158
|
classes: _propTypes.default.object,
|
|
154
159
|
className: _propTypes.default.string,
|
|
155
|
-
isLandscape: _propTypes.default.bool.isRequired,
|
|
156
|
-
/**
|
|
157
|
-
* `true` if the application is in right-to-left direction.
|
|
158
|
-
*/
|
|
159
|
-
isRtl: _propTypes.default.bool.isRequired,
|
|
160
160
|
isValid: _propTypes.default.func.isRequired,
|
|
161
161
|
onAccept: _propTypes.default.func.isRequired,
|
|
162
162
|
onCancel: _propTypes.default.func.isRequired,
|
|
@@ -168,10 +168,6 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
|
|
|
168
168
|
onSelectShortcut: _propTypes.default.func.isRequired,
|
|
169
169
|
onSetToday: _propTypes.default.func.isRequired,
|
|
170
170
|
onViewChange: _propTypes.default.func.isRequired,
|
|
171
|
-
/**
|
|
172
|
-
* Force rendering in particular orientation.
|
|
173
|
-
*/
|
|
174
|
-
orientation: _propTypes.default.oneOf(['landscape', 'portrait']),
|
|
175
171
|
/**
|
|
176
172
|
* The props used for each component slot.
|
|
177
173
|
* @default {}
|
|
@@ -186,8 +182,7 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
|
|
|
186
182
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
187
183
|
*/
|
|
188
184
|
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
|
|
189
|
-
value: _propTypes.default.
|
|
185
|
+
value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
190
186
|
view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
|
|
191
|
-
views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
|
|
192
|
-
wrapperVariant: _propTypes.default.oneOf(['desktop', 'mobile'])
|
|
187
|
+
views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
|
|
193
188
|
} : void 0;
|
|
@@ -11,20 +11,22 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
13
13
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
14
|
+
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
14
15
|
var _PickersActionBar = require("../PickersActionBar");
|
|
15
16
|
var _pickersLayoutClasses = require("./pickersLayoutClasses");
|
|
16
17
|
var _PickersShortcuts = require("../PickersShortcuts");
|
|
17
18
|
var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
|
|
19
|
+
var _hooks = require("../hooks");
|
|
18
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
21
|
function toolbarHasView(toolbarProps) {
|
|
20
22
|
return toolbarProps.view !== null;
|
|
21
23
|
}
|
|
22
24
|
const useUtilityClasses = (classes, ownerState) => {
|
|
23
25
|
const {
|
|
24
|
-
|
|
26
|
+
pickerOrientation
|
|
25
27
|
} = ownerState;
|
|
26
28
|
const slots = {
|
|
27
|
-
root: ['root',
|
|
29
|
+
root: ['root', pickerOrientation === 'landscape' && 'landscape'],
|
|
28
30
|
contentWrapper: ['contentWrapper'],
|
|
29
31
|
toolbar: ['toolbar'],
|
|
30
32
|
actionBar: ['actionBar'],
|
|
@@ -36,10 +38,14 @@ const useUtilityClasses = (classes, ownerState) => {
|
|
|
36
38
|
};
|
|
37
39
|
const usePickerLayout = props => {
|
|
38
40
|
const {
|
|
39
|
-
ownerState:
|
|
41
|
+
ownerState: pickerOwnerState
|
|
40
42
|
} = (0, _usePickerPrivateContext.usePickerPrivateContext)();
|
|
41
43
|
const {
|
|
42
|
-
|
|
44
|
+
variant,
|
|
45
|
+
orientation
|
|
46
|
+
} = (0, _hooks.usePickerContext)();
|
|
47
|
+
const isRtl = (0, _RtlProvider.useRtl)();
|
|
48
|
+
const {
|
|
43
49
|
onAccept,
|
|
44
50
|
onClear,
|
|
45
51
|
onCancel,
|
|
@@ -51,7 +57,6 @@ const usePickerLayout = props => {
|
|
|
51
57
|
onChange,
|
|
52
58
|
onSelectShortcut,
|
|
53
59
|
isValid,
|
|
54
|
-
isLandscape,
|
|
55
60
|
children,
|
|
56
61
|
slots,
|
|
57
62
|
slotProps,
|
|
@@ -61,9 +66,8 @@ const usePickerLayout = props => {
|
|
|
61
66
|
// - For pickers value: PickerValidDate | null
|
|
62
67
|
// - For range pickers value: [PickerValidDate | null, PickerValidDate | null]
|
|
63
68
|
} = props;
|
|
64
|
-
const ownerState = (0, _extends2.default)({},
|
|
65
|
-
|
|
66
|
-
isLandscape
|
|
69
|
+
const ownerState = (0, _extends2.default)({}, pickerOwnerState, {
|
|
70
|
+
isRtl
|
|
67
71
|
});
|
|
68
72
|
const classes = useUtilityClasses(classesProp, ownerState);
|
|
69
73
|
|
|
@@ -77,7 +81,7 @@ const usePickerLayout = props => {
|
|
|
77
81
|
onClear,
|
|
78
82
|
onCancel,
|
|
79
83
|
onSetToday,
|
|
80
|
-
actions:
|
|
84
|
+
actions: variant === 'desktop' ? [] : ['cancel', 'accept']
|
|
81
85
|
},
|
|
82
86
|
className: classes.actionBar,
|
|
83
87
|
ownerState
|
|
@@ -90,7 +94,8 @@ const usePickerLayout = props => {
|
|
|
90
94
|
elementType: Toolbar,
|
|
91
95
|
externalSlotProps: slotProps?.toolbar,
|
|
92
96
|
additionalProps: {
|
|
93
|
-
isLandscape,
|
|
97
|
+
isLandscape: orientation === 'landscape',
|
|
98
|
+
// Will be removed in a follow up PR?
|
|
94
99
|
onChange,
|
|
95
100
|
value,
|
|
96
101
|
view,
|
|
@@ -120,7 +125,8 @@ const usePickerLayout = props => {
|
|
|
120
125
|
externalSlotProps: slotProps?.shortcuts,
|
|
121
126
|
additionalProps: {
|
|
122
127
|
isValid,
|
|
123
|
-
isLandscape,
|
|
128
|
+
isLandscape: orientation === 'landscape',
|
|
129
|
+
// Will be removed in a follow up PR?
|
|
124
130
|
onChange: onSelectShortcut
|
|
125
131
|
},
|
|
126
132
|
className: classes.shortcuts,
|
|
@@ -132,7 +138,8 @@ const usePickerLayout = props => {
|
|
|
132
138
|
content,
|
|
133
139
|
tabs,
|
|
134
140
|
actionBar,
|
|
135
|
-
shortcuts
|
|
141
|
+
shortcuts,
|
|
142
|
+
ownerState
|
|
136
143
|
};
|
|
137
144
|
};
|
|
138
145
|
var _default = exports.default = usePickerLayout;
|
|
@@ -10,6 +10,7 @@ exports.PickersShortcuts = PickersShortcuts;
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _styles = require("@mui/material/styles");
|
|
13
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
14
15
|
var _List = _interopRequireDefault(require("@mui/material/List"));
|
|
15
16
|
var _ListItem = _interopRequireDefault(require("@mui/material/ListItem"));
|
|
@@ -18,6 +19,12 @@ var _dimensions = require("../internals/constants/dimensions");
|
|
|
18
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
20
|
const _excluded = ["items", "changeImportance", "isLandscape", "onChange", "isValid"],
|
|
20
21
|
_excluded2 = ["getValue"];
|
|
22
|
+
const PickersShortcutsRoot = (0, _styles.styled)(_List.default, {
|
|
23
|
+
name: 'MuiPickersLayout',
|
|
24
|
+
slot: 'Shortcuts',
|
|
25
|
+
overridesResolver: (_, styles) => styles.shortcuts
|
|
26
|
+
})({});
|
|
27
|
+
|
|
21
28
|
/**
|
|
22
29
|
* Demos:
|
|
23
30
|
*
|
|
@@ -54,7 +61,7 @@ function PickersShortcuts(props) {
|
|
|
54
61
|
disabled: !isValid(newValue)
|
|
55
62
|
});
|
|
56
63
|
});
|
|
57
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
64
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PickersShortcutsRoot, (0, _extends2.default)({
|
|
58
65
|
dense: true,
|
|
59
66
|
sx: [{
|
|
60
67
|
maxHeight: _dimensions.VIEW_HEIGHT,
|
|
@@ -19,6 +19,7 @@ var _useTimeField = require("./useTimeField");
|
|
|
19
19
|
var _hooks = require("../hooks");
|
|
20
20
|
var _PickersTextField = require("../PickersTextField");
|
|
21
21
|
var _convertFieldResponseIntoMuiTextFieldProps = require("../internals/utils/convertFieldResponseIntoMuiTextFieldProps");
|
|
22
|
+
var _useFieldOwnerState = require("../internals/hooks/useFieldOwnerState");
|
|
22
23
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
24
|
const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
|
|
24
25
|
/**
|
|
@@ -43,7 +44,7 @@ const TimeField = exports.TimeField = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
43
44
|
inputProps
|
|
44
45
|
} = themeProps,
|
|
45
46
|
other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
|
|
46
|
-
const ownerState = themeProps;
|
|
47
|
+
const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(themeProps);
|
|
47
48
|
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
|
|
48
49
|
const textFieldProps = (0, _useSlotProps.default)({
|
|
49
50
|
elementType: TextField,
|
|
@@ -275,10 +276,10 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
|
|
|
275
276
|
*/
|
|
276
277
|
shouldDisableTime: _propTypes.default.func,
|
|
277
278
|
/**
|
|
278
|
-
* If `true`, the format will respect the leading zeroes (
|
|
279
|
-
* If `false`, the format will always add leading zeroes (
|
|
279
|
+
* If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
280
|
+
* If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
280
281
|
*
|
|
281
|
-
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (
|
|
282
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
282
283
|
*
|
|
283
284
|
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
284
285
|
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
|
@@ -14,7 +14,7 @@ var _useField = require("../internals/hooks/useField/useField.utils");
|
|
|
14
14
|
var _usePickerTranslations = require("./usePickerTranslations");
|
|
15
15
|
/**
|
|
16
16
|
* Returns the parsed format to be rendered in the field when there is no value or in other parts of the Picker.
|
|
17
|
-
* This format is localized (
|
|
17
|
+
* This format is localized (for example `AAAA` for the year with the French locale) and cannot be parsed by your date library.
|
|
18
18
|
* @param {object} The parameters needed to build the placeholder.
|
|
19
19
|
* @param {string} params.format Format of the date to use.
|
|
20
20
|
* @param {'dense' | 'spacious'} params.formatDensity Density of the format (setting `formatDensity` to `"spacious"` will add a space before and after each `/`, `-` and `.` character).
|
package/node/index.js
CHANGED
|
@@ -18,8 +18,9 @@ var _useSlotProps3 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
|
18
18
|
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
19
19
|
var _icons = require("../../../icons");
|
|
20
20
|
var _pickersArrowSwitcherClasses = require("./pickersArrowSwitcherClasses");
|
|
21
|
+
var _usePickerPrivateContext = require("../../hooks/usePickerPrivateContext");
|
|
21
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
-
const _excluded = ["children", "className", "slots", "slotProps", "isNextDisabled", "isNextHidden", "onGoToNext", "nextLabel", "isPreviousDisabled", "isPreviousHidden", "onGoToPrevious", "previousLabel", "labelId"],
|
|
23
|
+
const _excluded = ["children", "className", "slots", "slotProps", "isNextDisabled", "isNextHidden", "onGoToNext", "nextLabel", "isPreviousDisabled", "isPreviousHidden", "onGoToPrevious", "previousLabel", "labelId", "classes"],
|
|
23
24
|
_excluded2 = ["ownerState"],
|
|
24
25
|
_excluded3 = ["ownerState"];
|
|
25
26
|
const PickersArrowSwitcherRoot = (0, _styles.styled)('div', {
|
|
@@ -52,10 +53,7 @@ const PickersArrowSwitcherButton = (0, _styles.styled)(_IconButton.default, {
|
|
|
52
53
|
}
|
|
53
54
|
}]
|
|
54
55
|
});
|
|
55
|
-
const useUtilityClasses =
|
|
56
|
-
const {
|
|
57
|
-
classes
|
|
58
|
-
} = ownerState;
|
|
56
|
+
const useUtilityClasses = classes => {
|
|
59
57
|
const slots = {
|
|
60
58
|
root: ['root'],
|
|
61
59
|
spacer: ['spacer'],
|
|
@@ -86,11 +84,14 @@ const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.f
|
|
|
86
84
|
isPreviousHidden,
|
|
87
85
|
onGoToPrevious,
|
|
88
86
|
previousLabel,
|
|
89
|
-
labelId
|
|
87
|
+
labelId,
|
|
88
|
+
classes: classesProp
|
|
90
89
|
} = props,
|
|
91
90
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
92
|
-
const
|
|
93
|
-
|
|
91
|
+
const {
|
|
92
|
+
ownerState
|
|
93
|
+
} = (0, _usePickerPrivateContext.usePickerPrivateContext)();
|
|
94
|
+
const classes = useUtilityClasses(classesProp);
|
|
94
95
|
const nextProps = {
|
|
95
96
|
isDisabled: isNextDisabled,
|
|
96
97
|
isHidden: isNextHidden,
|
|
@@ -116,7 +117,7 @@ const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.f
|
|
|
116
117
|
onClick: previousProps.goTo
|
|
117
118
|
},
|
|
118
119
|
ownerState: (0, _extends2.default)({}, ownerState, {
|
|
119
|
-
hidden: previousProps.isHidden
|
|
120
|
+
hidden: previousProps.isHidden ?? false
|
|
120
121
|
}),
|
|
121
122
|
className: (0, _clsx.default)(classes.button, classes.previousIconButton)
|
|
122
123
|
});
|
|
@@ -133,7 +134,7 @@ const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.f
|
|
|
133
134
|
onClick: nextProps.goTo
|
|
134
135
|
},
|
|
135
136
|
ownerState: (0, _extends2.default)({}, ownerState, {
|
|
136
|
-
hidden: nextProps.isHidden
|
|
137
|
+
hidden: nextProps.isHidden ?? false
|
|
137
138
|
}),
|
|
138
139
|
className: (0, _clsx.default)(classes.button, classes.nextIconButton)
|
|
139
140
|
});
|
|
@@ -72,7 +72,6 @@ const useFieldState = params => {
|
|
|
72
72
|
const stateWithoutReferenceDate = {
|
|
73
73
|
sections,
|
|
74
74
|
value: valueFromTheOutside,
|
|
75
|
-
referenceValue: valueManager.emptyValue,
|
|
76
75
|
tempValueStrAndroid: null
|
|
77
76
|
};
|
|
78
77
|
const granularity = (0, _getDefaultReferenceDate.getSectionTypeGranularity)(sections);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useFieldOwnerState = useFieldOwnerState;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _usePickerPrivateContext = require("./usePickerPrivateContext");
|
|
12
|
+
function useFieldOwnerState(parameters) {
|
|
13
|
+
const {
|
|
14
|
+
ownerState: pickerOwnerState
|
|
15
|
+
} = (0, _usePickerPrivateContext.usePickerPrivateContext)();
|
|
16
|
+
return React.useMemo(() => (0, _extends2.default)({}, pickerOwnerState, {
|
|
17
|
+
isFieldDisabled: parameters.disabled ?? false,
|
|
18
|
+
isFieldReadOnly: parameters.readOnly ?? false
|
|
19
|
+
}), [pickerOwnerState, parameters.disabled, parameters.readOnly]);
|
|
20
|
+
}
|
|
@@ -12,7 +12,7 @@ const useOpenState = ({
|
|
|
12
12
|
onClose
|
|
13
13
|
}) => {
|
|
14
14
|
const isControllingOpenProp = React.useRef(typeof open === 'boolean').current;
|
|
15
|
-
const [openState,
|
|
15
|
+
const [openState, setOpenState] = React.useState(false);
|
|
16
16
|
|
|
17
17
|
// It is required to update inner state in useEffect in order to avoid situation when
|
|
18
18
|
// Our component is not mounted yet, but `open` state is set to `true` (for example initially opened)
|
|
@@ -21,23 +21,24 @@ const useOpenState = ({
|
|
|
21
21
|
if (typeof open !== 'boolean') {
|
|
22
22
|
throw new Error('You must not mix controlling and uncontrolled mode for `open` prop');
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
setOpenState(open);
|
|
25
25
|
}
|
|
26
26
|
}, [isControllingOpenProp, open]);
|
|
27
|
-
const
|
|
27
|
+
const setOpen = React.useCallback(action => {
|
|
28
|
+
const newOpen = typeof action === 'function' ? action(openState) : action;
|
|
28
29
|
if (!isControllingOpenProp) {
|
|
29
|
-
|
|
30
|
+
setOpenState(newOpen);
|
|
30
31
|
}
|
|
31
|
-
if (
|
|
32
|
+
if (newOpen && onOpen) {
|
|
32
33
|
onOpen();
|
|
33
34
|
}
|
|
34
|
-
if (!
|
|
35
|
+
if (!newOpen && onClose) {
|
|
35
36
|
onClose();
|
|
36
37
|
}
|
|
37
|
-
}, [isControllingOpenProp, onOpen, onClose]);
|
|
38
|
+
}, [isControllingOpenProp, onOpen, onClose, openState]);
|
|
38
39
|
return {
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
open: openState,
|
|
41
|
+
setOpen
|
|
41
42
|
};
|
|
42
43
|
};
|
|
43
44
|
exports.useOpenState = useOpenState;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.usePicker = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
9
|
var _warning = require("@mui/x-internals/warning");
|
|
8
10
|
var _usePickerValue = require("./usePickerValue");
|
|
9
11
|
var _usePickerViews = require("./usePickerViews");
|
|
10
|
-
var _usePickerLayoutProps = require("./usePickerLayoutProps");
|
|
11
12
|
var _usePickerProvider = require("./usePickerProvider");
|
|
12
13
|
const usePicker = ({
|
|
13
14
|
props,
|
|
@@ -41,19 +42,13 @@ const usePicker = ({
|
|
|
41
42
|
propsFromPickerValue: pickerValueResponse.viewProps,
|
|
42
43
|
rendererInterceptor
|
|
43
44
|
});
|
|
44
|
-
const pickerLayoutResponse = (0, _usePickerLayoutProps.usePickerLayoutProps)({
|
|
45
|
-
props,
|
|
46
|
-
variant,
|
|
47
|
-
propsFromPickerValue: pickerValueResponse.layoutProps,
|
|
48
|
-
propsFromPickerViews: pickerViewsResponse.layoutProps
|
|
49
|
-
});
|
|
50
45
|
const providerProps = (0, _usePickerProvider.usePickerProvider)({
|
|
51
46
|
props,
|
|
52
|
-
pickerValueResponse,
|
|
53
47
|
localeText,
|
|
54
48
|
valueManager,
|
|
55
49
|
variant,
|
|
56
|
-
views: pickerViewsResponse.views
|
|
50
|
+
views: pickerViewsResponse.views,
|
|
51
|
+
paramsFromUsePickerValue: pickerValueResponse.provider
|
|
57
52
|
});
|
|
58
53
|
return {
|
|
59
54
|
// Picker value
|
|
@@ -65,7 +60,7 @@ const usePicker = ({
|
|
|
65
60
|
hasUIView: pickerViewsResponse.hasUIView,
|
|
66
61
|
shouldRestoreFocus: pickerViewsResponse.shouldRestoreFocus,
|
|
67
62
|
// Picker layout
|
|
68
|
-
layoutProps:
|
|
63
|
+
layoutProps: (0, _extends2.default)({}, pickerViewsResponse.layoutProps, pickerValueResponse.layoutProps),
|
|
69
64
|
// Picker provider
|
|
70
65
|
providerProps,
|
|
71
66
|
// Picker owner state
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.usePickerOrientation = void 0;
|
|
9
9
|
exports.usePickerProvider = usePickerProvider;
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
11
|
var React = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
12
13
|
var _useUtils = require("../useUtils");
|
|
@@ -46,31 +47,28 @@ exports.usePickerOrientation = usePickerOrientation;
|
|
|
46
47
|
function usePickerProvider(parameters) {
|
|
47
48
|
const {
|
|
48
49
|
props,
|
|
49
|
-
pickerValueResponse,
|
|
50
50
|
valueManager,
|
|
51
51
|
localeText,
|
|
52
52
|
variant,
|
|
53
|
-
views
|
|
53
|
+
views,
|
|
54
|
+
paramsFromUsePickerValue
|
|
54
55
|
} = parameters;
|
|
55
56
|
const utils = (0, _useUtils.useUtils)();
|
|
56
57
|
const orientation = usePickerOrientation(views, props.orientation);
|
|
57
58
|
const ownerState = React.useMemo(() => ({
|
|
58
|
-
isPickerValueEmpty: valueManager.areValuesEqual(utils,
|
|
59
|
-
isPickerOpen:
|
|
59
|
+
isPickerValueEmpty: valueManager.areValuesEqual(utils, paramsFromUsePickerValue.value, valueManager.emptyValue),
|
|
60
|
+
isPickerOpen: paramsFromUsePickerValue.contextValue.open,
|
|
60
61
|
isPickerDisabled: props.disabled ?? false,
|
|
61
62
|
isPickerReadOnly: props.readOnly ?? false,
|
|
62
63
|
pickerOrientation: orientation,
|
|
63
64
|
pickerVariant: variant
|
|
64
|
-
}), [utils, valueManager,
|
|
65
|
-
const contextValue = React.useMemo(() => ({
|
|
66
|
-
onOpen: pickerValueResponse.actions.onOpen,
|
|
67
|
-
onClose: pickerValueResponse.actions.onClose,
|
|
68
|
-
open: pickerValueResponse.open,
|
|
65
|
+
}), [utils, valueManager, paramsFromUsePickerValue.value, paramsFromUsePickerValue.contextValue.open, orientation, variant, props.disabled, props.readOnly]);
|
|
66
|
+
const contextValue = React.useMemo(() => (0, _extends2.default)({}, paramsFromUsePickerValue.contextValue, {
|
|
69
67
|
disabled: props.disabled ?? false,
|
|
70
68
|
readOnly: props.readOnly ?? false,
|
|
71
69
|
variant,
|
|
72
70
|
orientation
|
|
73
|
-
}), [
|
|
71
|
+
}), [paramsFromUsePickerValue.contextValue, variant, orientation, props.disabled, props.readOnly]);
|
|
74
72
|
const privateContextValue = React.useMemo(() => ({
|
|
75
73
|
ownerState
|
|
76
74
|
}), [ownerState]);
|
|
@@ -158,8 +158,8 @@ const usePickerValue = ({
|
|
|
158
158
|
const utils = (0, _useUtils.useUtils)();
|
|
159
159
|
const adapter = (0, _useUtils.useLocalizationContext)();
|
|
160
160
|
const {
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
open,
|
|
162
|
+
setOpen
|
|
163
163
|
} = (0, _useOpenState.useOpenState)(props);
|
|
164
164
|
const {
|
|
165
165
|
timezone,
|
|
@@ -245,7 +245,7 @@ const usePickerValue = ({
|
|
|
245
245
|
onAccept(action.value, getContext());
|
|
246
246
|
}
|
|
247
247
|
if (shouldClose) {
|
|
248
|
-
|
|
248
|
+
setOpen(false);
|
|
249
249
|
}
|
|
250
250
|
});
|
|
251
251
|
if (dateState.lastControlledValue !== inValueWithoutRenderTimezone) {
|
|
@@ -296,11 +296,11 @@ const usePickerValue = ({
|
|
|
296
296
|
});
|
|
297
297
|
const handleOpen = (0, _useEventCallback.default)(event => {
|
|
298
298
|
event.preventDefault();
|
|
299
|
-
|
|
299
|
+
setOpen(true);
|
|
300
300
|
});
|
|
301
301
|
const handleClose = (0, _useEventCallback.default)(event => {
|
|
302
302
|
event?.preventDefault();
|
|
303
|
-
|
|
303
|
+
setOpen(false);
|
|
304
304
|
});
|
|
305
305
|
const handleChange = (0, _useEventCallback.default)((newValue, selectionState = 'partial') => updateDate({
|
|
306
306
|
name: 'setValueFromView',
|
|
@@ -331,12 +331,12 @@ const usePickerValue = ({
|
|
|
331
331
|
value: dateState.draft,
|
|
332
332
|
onChange: handleChangeFromField
|
|
333
333
|
};
|
|
334
|
-
const
|
|
334
|
+
const valueWithoutError = React.useMemo(() => valueManager.cleanValue(utils, dateState.draft), [utils, valueManager, dateState.draft]);
|
|
335
335
|
const viewResponse = {
|
|
336
|
-
value:
|
|
336
|
+
value: valueWithoutError,
|
|
337
337
|
onChange: handleChange,
|
|
338
338
|
onClose: handleClose,
|
|
339
|
-
open
|
|
339
|
+
open
|
|
340
340
|
};
|
|
341
341
|
const isValid = testedValue => {
|
|
342
342
|
const error = validator({
|
|
@@ -348,17 +348,28 @@ const usePickerValue = ({
|
|
|
348
348
|
return !valueManager.hasError(error);
|
|
349
349
|
};
|
|
350
350
|
const layoutResponse = (0, _extends2.default)({}, actions, {
|
|
351
|
-
value:
|
|
351
|
+
value: valueWithoutError,
|
|
352
352
|
onChange: handleChange,
|
|
353
353
|
onSelectShortcut: handleSelectShortcut,
|
|
354
354
|
isValid
|
|
355
355
|
});
|
|
356
|
+
const contextValue = React.useMemo(() => {
|
|
357
|
+
return {
|
|
358
|
+
open,
|
|
359
|
+
setOpen
|
|
360
|
+
};
|
|
361
|
+
}, [open, setOpen]);
|
|
362
|
+
const providerParams = {
|
|
363
|
+
value: valueWithoutError,
|
|
364
|
+
contextValue
|
|
365
|
+
};
|
|
356
366
|
return {
|
|
357
|
-
open
|
|
367
|
+
open,
|
|
358
368
|
fieldProps: fieldResponse,
|
|
359
369
|
viewProps: viewResponse,
|
|
360
370
|
layoutProps: layoutResponse,
|
|
361
|
-
actions
|
|
371
|
+
actions,
|
|
372
|
+
provider: providerParams
|
|
362
373
|
};
|
|
363
374
|
};
|
|
364
375
|
exports.usePickerValue = usePickerValue;
|