@mui/x-date-pickers 8.0.0-alpha.5 → 8.0.0-alpha.7
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.d.ts +2 -4
- package/AdapterDateFns/AdapterDateFns.js +49 -47
- package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +1 -1
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +2 -4
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
- package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts} +2 -2
- package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
- package/AdapterDateFnsJalaliV2/index.d.ts +1 -0
- package/AdapterDateFnsJalaliV2/index.js +1 -0
- package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
- package/{AdapterDateFnsV3/AdapterDateFnsV3.d.ts → AdapterDateFnsV2/AdapterDateFnsV2.d.ts} +2 -2
- package/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
- package/AdapterDateFnsV2/index.d.ts +1 -0
- package/AdapterDateFnsV2/index.js +1 -0
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
- package/AdapterDayjs/AdapterDayjs.d.ts +1 -1
- package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
- package/AdapterMoment/AdapterMoment.d.ts +1 -1
- package/CHANGELOG.md +206 -1
- package/DateCalendar/DateCalendar.js +1 -1
- package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
- package/DateCalendar/PickersSlideTransition.d.ts +1 -1
- package/DateField/useDateField.d.ts +1 -1
- package/DateField/useDateField.js +13 -11
- package/DatePicker/DatePicker.js +1 -1
- package/DatePicker/DatePicker.types.d.ts +5 -0
- package/DatePicker/DatePickerToolbar.d.ts +1 -3
- package/DatePicker/DatePickerToolbar.js +10 -25
- package/DatePicker/shared.d.ts +1 -1
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimeField/useDateTimeField.js +13 -11
- package/DateTimePicker/DateTimePicker.js +2 -2
- package/DateTimePicker/DateTimePicker.types.d.ts +2 -2
- package/DateTimePicker/DateTimePickerTabs.d.ts +2 -5
- package/DateTimePicker/DateTimePickerTabs.js +7 -14
- package/DateTimePicker/DateTimePickerToolbar.d.ts +12 -4
- package/DateTimePicker/DateTimePickerToolbar.js +42 -48
- package/DateTimePicker/shared.d.ts +3 -3
- package/DesktopDatePicker/DesktopDatePicker.js +9 -3
- package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -3
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -10
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +1 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -15
- package/DesktopTimePicker/DesktopTimePicker.js +3 -7
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
- package/MobileDatePicker/MobileDatePicker.js +2 -2
- package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -3
- package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +4 -4
- package/MobileTimePicker/MobileTimePicker.js +2 -2
- package/MobileTimePicker/MobileTimePicker.types.d.ts +4 -4
- package/PickersActionBar/PickersActionBar.d.ts +6 -7
- package/PickersActionBar/PickersActionBar.js +18 -16
- package/PickersLayout/PickersLayout.d.ts +2 -2
- package/PickersLayout/PickersLayout.js +1 -15
- package/PickersLayout/PickersLayout.types.d.ts +12 -15
- package/PickersLayout/usePickerLayout.d.ts +2 -2
- package/PickersLayout/usePickerLayout.js +13 -47
- package/PickersShortcuts/PickersShortcuts.d.ts +2 -5
- package/PickersShortcuts/PickersShortcuts.js +13 -10
- package/PickersShortcuts/index.d.ts +1 -1
- package/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
- package/PickersTextField/PickersTextField.js +1 -1
- package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -3
- package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -2
- package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -2
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimeField/useTimeField.js +13 -11
- package/TimePicker/TimePicker.js +2 -2
- package/TimePicker/TimePicker.types.d.ts +2 -2
- package/TimePicker/TimePickerToolbar.d.ts +1 -2
- package/TimePicker/TimePickerToolbar.js +23 -35
- package/TimePicker/shared.d.ts +1 -1
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +3 -1
- package/hooks/useIsValidValue.d.ts +7 -0
- package/hooks/useIsValidValue.js +11 -0
- package/hooks/usePickerActionsContext.d.ts +7 -0
- package/hooks/usePickerActionsContext.js +15 -0
- package/hooks/usePickerContext.d.ts +3 -1
- package/hooks/usePickerContext.js +1 -2
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/internals/components/PickerProvider.d.ts +14 -8
- package/internals/components/PickerProvider.js +17 -6
- package/internals/components/PickersModalDialog.d.ts +1 -3
- package/internals/components/PickersModalDialog.js +9 -3
- package/internals/components/PickersPopper.d.ts +1 -3
- package/internals/components/PickersPopper.js +11 -6
- package/internals/components/PickersToolbar.d.ts +2 -3
- package/internals/components/PickersToolbar.js +1 -1
- package/internals/hooks/date-helpers-hooks.js +4 -3
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +10 -12
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +7 -7
- package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
- package/internals/hooks/useField/index.d.ts +1 -1
- package/internals/hooks/useField/index.js +1 -1
- package/internals/hooks/useField/useField.d.ts +10 -1
- package/internals/hooks/useField/useField.js +17 -1
- package/internals/hooks/useField/useField.utils.js +2 -2
- package/internals/hooks/useField/useFieldState.js +2 -2
- package/internals/hooks/useField/useFieldV6TextField.js +2 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.js +9 -10
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +7 -7
- package/internals/hooks/useOpenState.js +3 -2
- package/internals/hooks/usePicker/usePicker.d.ts +1 -1
- package/internals/hooks/usePicker/usePicker.js +0 -8
- package/internals/hooks/usePicker/usePicker.types.d.ts +6 -7
- package/internals/hooks/usePicker/usePickerProvider.d.ts +5 -5
- package/internals/hooks/usePicker/usePickerProvider.js +8 -5
- package/internals/hooks/usePicker/usePickerValue.d.ts +1 -1
- package/internals/hooks/usePicker/usePickerValue.js +82 -217
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +82 -67
- package/internals/hooks/usePicker/usePickerViews.d.ts +35 -20
- package/internals/hooks/usePicker/usePickerViews.js +22 -14
- package/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +6 -6
- package/internals/hooks/useUtils.js +1 -1
- package/internals/index.d.ts +9 -7
- package/internals/index.js +5 -3
- package/internals/models/index.d.ts +1 -0
- package/internals/models/index.js +2 -1
- package/internals/models/manager.d.ts +12 -0
- package/internals/models/manager.js +1 -0
- package/internals/models/props/basePickerProps.d.ts +2 -2
- package/internals/models/props/tabs.d.ts +0 -13
- package/internals/models/props/toolbar.d.ts +1 -20
- package/internals/utils/date-utils.js +1 -1
- package/internals/utils/valueManagers.js +4 -4
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/nbNO.js +15 -19
- package/locales/utils/getPickersLocalization.js +1 -1
- package/locales/zhTW.d.ts +80 -0
- package/locales/zhTW.js +73 -0
- package/managers/index.d.ts +6 -0
- package/managers/index.js +3 -0
- package/managers/package.json +6 -0
- package/managers/useDateManager.d.ts +27 -0
- package/managers/useDateManager.js +47 -0
- package/managers/useDateTimeManager.d.ts +28 -0
- package/managers/useDateTimeManager.js +52 -0
- package/managers/useTimeManager.d.ts +28 -0
- package/managers/useTimeManager.js +43 -0
- package/models/adapters.d.ts +1 -1
- package/models/index.d.ts +1 -0
- package/models/index.js +1 -0
- package/models/manager.d.ts +78 -0
- package/models/manager.js +1 -0
- package/models/pickers.d.ts +7 -0
- package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
- package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
- package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
- package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
- package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
- package/modern/AdapterDateFnsV2/index.js +1 -0
- package/modern/DateCalendar/DateCalendar.js +1 -1
- package/modern/DateField/useDateField.js +13 -11
- package/modern/DatePicker/DatePicker.js +1 -1
- package/modern/DatePicker/DatePickerToolbar.js +10 -25
- package/modern/DateTimeField/useDateTimeField.js +13 -11
- package/modern/DateTimePicker/DateTimePicker.js +2 -2
- package/modern/DateTimePicker/DateTimePickerTabs.js +7 -14
- package/modern/DateTimePicker/DateTimePickerToolbar.js +42 -48
- package/modern/DesktopDatePicker/DesktopDatePicker.js +9 -3
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -10
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -15
- package/modern/DesktopTimePicker/DesktopTimePicker.js +3 -7
- package/modern/MobileDatePicker/MobileDatePicker.js +2 -2
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/modern/MobileTimePicker/MobileTimePicker.js +2 -2
- package/modern/PickersActionBar/PickersActionBar.js +18 -16
- package/modern/PickersLayout/PickersLayout.js +1 -15
- package/modern/PickersLayout/usePickerLayout.js +13 -47
- package/modern/PickersShortcuts/PickersShortcuts.js +13 -10
- package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
- package/modern/PickersTextField/PickersTextField.js +1 -1
- package/modern/TimeField/useTimeField.js +13 -11
- package/modern/TimePicker/TimePicker.js +2 -2
- package/modern/TimePicker/TimePickerToolbar.js +23 -35
- package/modern/hooks/index.js +3 -1
- package/modern/hooks/useIsValidValue.js +11 -0
- package/modern/hooks/usePickerActionsContext.js +15 -0
- package/modern/hooks/usePickerContext.js +1 -2
- package/modern/index.js +3 -2
- package/modern/internals/components/PickerProvider.js +17 -6
- package/modern/internals/components/PickersModalDialog.js +9 -3
- package/modern/internals/components/PickersPopper.js +11 -6
- package/modern/internals/components/PickersToolbar.js +1 -1
- package/modern/internals/hooks/date-helpers-hooks.js +4 -3
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +10 -12
- package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
- package/modern/internals/hooks/useField/index.js +1 -1
- package/modern/internals/hooks/useField/useField.js +17 -1
- package/modern/internals/hooks/useField/useField.utils.js +2 -2
- package/modern/internals/hooks/useField/useFieldState.js +2 -2
- package/modern/internals/hooks/useField/useFieldV6TextField.js +2 -2
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +9 -10
- package/modern/internals/hooks/useOpenState.js +3 -2
- package/modern/internals/hooks/usePicker/usePicker.js +0 -8
- package/modern/internals/hooks/usePicker/usePickerProvider.js +8 -5
- package/modern/internals/hooks/usePicker/usePickerValue.js +82 -217
- package/modern/internals/hooks/usePicker/usePickerViews.js +22 -14
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
- package/modern/internals/hooks/useUtils.js +1 -1
- package/modern/internals/index.js +5 -3
- package/modern/internals/models/index.js +2 -1
- package/modern/internals/models/manager.js +1 -0
- package/modern/internals/utils/date-utils.js +1 -1
- package/modern/internals/utils/valueManagers.js +4 -4
- package/modern/locales/index.js +1 -0
- package/modern/locales/nbNO.js +15 -19
- package/modern/locales/utils/getPickersLocalization.js +1 -1
- package/modern/locales/zhTW.js +73 -0
- package/modern/managers/index.js +3 -0
- package/modern/managers/useDateManager.js +47 -0
- package/modern/managers/useDateTimeManager.js +52 -0
- package/modern/managers/useTimeManager.js +43 -0
- package/modern/models/index.js +1 -0
- package/modern/models/manager.js +1 -0
- package/node/AdapterDateFns/AdapterDateFns.js +97 -97
- package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
- package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
- package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
- package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/node/DateCalendar/DateCalendar.js +1 -1
- package/node/DateField/useDateField.js +12 -10
- package/node/DatePicker/DatePicker.js +1 -1
- package/node/DatePicker/DatePickerToolbar.js +10 -25
- package/node/DateTimeField/useDateTimeField.js +12 -10
- package/node/DateTimePicker/DateTimePicker.js +2 -2
- package/node/DateTimePicker/DateTimePickerTabs.js +7 -14
- package/node/DateTimePicker/DateTimePickerToolbar.js +43 -49
- package/node/DesktopDatePicker/DesktopDatePicker.js +9 -3
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -10
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -15
- package/node/DesktopTimePicker/DesktopTimePicker.js +3 -7
- package/node/MobileDatePicker/MobileDatePicker.js +2 -2
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/node/MobileTimePicker/MobileTimePicker.js +2 -2
- package/node/PickersActionBar/PickersActionBar.js +20 -18
- package/node/PickersLayout/PickersLayout.js +1 -15
- package/node/PickersLayout/usePickerLayout.js +17 -51
- package/node/PickersShortcuts/PickersShortcuts.js +13 -10
- package/node/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
- package/node/PickersTextField/PickersTextField.js +1 -1
- package/node/TimeField/useTimeField.js +12 -10
- package/node/TimePicker/TimePicker.js +2 -2
- package/node/TimePicker/TimePickerToolbar.js +23 -35
- package/node/hooks/index.js +15 -1
- package/node/hooks/useIsValidValue.js +18 -0
- package/node/hooks/usePickerActionsContext.js +22 -0
- package/node/hooks/usePickerContext.js +1 -1
- package/node/index.js +13 -1
- package/node/internals/components/PickerProvider.js +18 -7
- package/node/internals/components/PickersModalDialog.js +9 -3
- package/node/internals/components/PickersPopper.js +11 -6
- package/node/internals/components/PickersToolbar.js +1 -1
- package/node/internals/hooks/date-helpers-hooks.js +4 -3
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +10 -12
- package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
- package/node/internals/hooks/useField/index.js +6 -0
- package/node/internals/hooks/useField/useField.js +18 -1
- package/node/internals/hooks/useField/useField.utils.js +2 -2
- package/node/internals/hooks/useField/useFieldState.js +2 -2
- package/node/internals/hooks/useField/useFieldV6TextField.js +2 -2
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +9 -10
- package/node/internals/hooks/useOpenState.js +4 -2
- package/node/internals/hooks/usePicker/usePicker.js +0 -9
- package/node/internals/hooks/usePicker/usePickerProvider.js +8 -5
- package/node/internals/hooks/usePicker/usePickerValue.js +82 -217
- package/node/internals/hooks/usePicker/usePickerViews.js +22 -15
- package/node/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
- package/node/internals/hooks/useUtils.js +1 -1
- package/node/internals/index.js +28 -20
- package/node/internals/models/index.js +11 -0
- package/node/internals/models/manager.js +5 -0
- package/node/internals/utils/date-utils.js +1 -1
- package/node/internals/utils/valueManagers.js +4 -4
- package/node/locales/index.js +11 -0
- package/node/locales/nbNO.js +15 -19
- package/node/locales/utils/getPickersLocalization.js +1 -1
- package/node/locales/zhTW.js +79 -0
- package/node/managers/index.js +26 -0
- package/node/managers/useDateManager.js +55 -0
- package/node/managers/useDateTimeManager.js +60 -0
- package/node/managers/useTimeManager.js +51 -0
- package/node/models/index.js +11 -0
- package/node/models/manager.js +5 -0
- package/package.json +3 -3
- package/themeAugmentation/props.d.ts +2 -3
- package/validation/extractValidationProps.d.ts +1 -1
- package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
- package/AdapterDateFnsJalaliV3/index.js +0 -1
- package/AdapterDateFnsV3/index.d.ts +0 -1
- package/AdapterDateFnsV3/index.js +0 -1
- package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
- package/internals/hooks/defaultizedFieldProps.js +0 -40
- package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
- package/modern/AdapterDateFnsV3/index.js +0 -1
- package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
- package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
- package/node/internals/hooks/defaultizedFieldProps.js +0 -50
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["ampm", "ampmInClock", "
|
|
5
|
+
const _excluded = ["ampm", "ampmInClock", "toolbarFormat", "toolbarPlaceholder", "toolbarTitle", "className", "classes"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import clsx from 'clsx';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
@@ -206,10 +206,11 @@ const DateTimePickerToolbarAmPmSelection = styled('div', {
|
|
|
206
206
|
});
|
|
207
207
|
|
|
208
208
|
/**
|
|
209
|
-
* If
|
|
209
|
+
* If `forceDesktopVariant` is set to `true`, the toolbar will always be rendered in the desktop mode.
|
|
210
|
+
* If `onViewChange` is defined, the toolbar will call it instead of calling the default handler from `usePickerContext`.
|
|
210
211
|
* This is used by the Date Time Range Picker Toolbar.
|
|
211
212
|
*/
|
|
212
|
-
export const
|
|
213
|
+
export const DateTimePickerToolbarOverrideContext = /*#__PURE__*/React.createContext(null);
|
|
213
214
|
|
|
214
215
|
/**
|
|
215
216
|
* Demos:
|
|
@@ -229,40 +230,45 @@ function DateTimePickerToolbar(inProps) {
|
|
|
229
230
|
const {
|
|
230
231
|
ampm,
|
|
231
232
|
ampmInClock,
|
|
232
|
-
value,
|
|
233
|
-
onChange,
|
|
234
|
-
view,
|
|
235
|
-
isLandscape,
|
|
236
|
-
onViewChange,
|
|
237
233
|
toolbarFormat,
|
|
238
234
|
toolbarPlaceholder = '––',
|
|
239
|
-
views,
|
|
240
235
|
toolbarTitle: inToolbarTitle,
|
|
241
236
|
className,
|
|
242
237
|
classes: classesProp
|
|
243
238
|
} = props,
|
|
244
239
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
245
240
|
const {
|
|
241
|
+
value: valueContext,
|
|
242
|
+
setValue: setValueContext,
|
|
246
243
|
disabled,
|
|
247
244
|
readOnly,
|
|
248
|
-
variant
|
|
245
|
+
variant,
|
|
246
|
+
orientation,
|
|
247
|
+
view: viewContext,
|
|
248
|
+
setView: setViewContext,
|
|
249
|
+
views
|
|
249
250
|
} = usePickerContext();
|
|
251
|
+
const translations = usePickerTranslations();
|
|
250
252
|
const ownerState = useToolbarOwnerState();
|
|
251
253
|
const classes = useUtilityClasses(classesProp, ownerState);
|
|
252
254
|
const utils = useUtils();
|
|
255
|
+
const overrides = React.useContext(DateTimePickerToolbarOverrideContext);
|
|
256
|
+
const value = overrides ? overrides.value : valueContext;
|
|
257
|
+
const setValue = overrides ? overrides.setValue : setValueContext;
|
|
258
|
+
const view = overrides ? overrides.view : viewContext;
|
|
259
|
+
const setView = overrides ? overrides.setView : setViewContext;
|
|
253
260
|
const {
|
|
254
261
|
meridiemMode,
|
|
255
262
|
handleMeridiemChange
|
|
256
|
-
} = useMeridiemMode(value, ampm,
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
const toolbarVariant = forceDesktopVariant ? 'desktop' : variant;
|
|
263
|
+
} = useMeridiemMode(value, ampm, newValue => setValue(newValue, {
|
|
264
|
+
changeImportance: 'set'
|
|
265
|
+
}));
|
|
266
|
+
const toolbarVariant = overrides?.forceDesktopVariant ? 'desktop' : variant;
|
|
260
267
|
const isDesktop = toolbarVariant === 'desktop';
|
|
261
268
|
const showAmPmControl = Boolean(ampm && !ampmInClock);
|
|
262
269
|
const toolbarTitle = inToolbarTitle ?? translations.dateTimePickerToolbarTitle;
|
|
263
|
-
const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');
|
|
264
270
|
const dateText = React.useMemo(() => {
|
|
265
|
-
if (!value) {
|
|
271
|
+
if (!utils.isValid(value)) {
|
|
266
272
|
return toolbarPlaceholder;
|
|
267
273
|
}
|
|
268
274
|
if (toolbarFormat) {
|
|
@@ -270,8 +276,13 @@ function DateTimePickerToolbar(inProps) {
|
|
|
270
276
|
}
|
|
271
277
|
return utils.format(value, 'shortDate');
|
|
272
278
|
}, [value, toolbarFormat, toolbarPlaceholder, utils]);
|
|
279
|
+
const formatSection = (format, fallback) => {
|
|
280
|
+
if (!utils.isValid(value)) {
|
|
281
|
+
return fallback;
|
|
282
|
+
}
|
|
283
|
+
return utils.format(value, format);
|
|
284
|
+
};
|
|
273
285
|
return /*#__PURE__*/_jsxs(DateTimePickerToolbarRoot, _extends({
|
|
274
|
-
isLandscape: isLandscape,
|
|
275
286
|
className: clsx(classes.root, className),
|
|
276
287
|
toolbarTitle: toolbarTitle,
|
|
277
288
|
toolbarVariant: toolbarVariant
|
|
@@ -283,13 +294,13 @@ function DateTimePickerToolbar(inProps) {
|
|
|
283
294
|
children: [views.includes('year') && /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
284
295
|
tabIndex: -1,
|
|
285
296
|
variant: "subtitle1",
|
|
286
|
-
onClick: () =>
|
|
297
|
+
onClick: () => setView('year'),
|
|
287
298
|
selected: view === 'year',
|
|
288
|
-
value:
|
|
299
|
+
value: formatSection('year', '–')
|
|
289
300
|
}), views.includes('day') && /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
290
301
|
tabIndex: -1,
|
|
291
302
|
variant: isDesktop ? 'h5' : 'h4',
|
|
292
|
-
onClick: () =>
|
|
303
|
+
onClick: () => setView('day'),
|
|
293
304
|
selected: view === 'day',
|
|
294
305
|
value: dateText
|
|
295
306
|
})]
|
|
@@ -304,10 +315,10 @@ function DateTimePickerToolbar(inProps) {
|
|
|
304
315
|
children: [views.includes('hours') && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
305
316
|
children: [/*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
306
317
|
variant: isDesktop ? 'h5' : 'h3',
|
|
307
|
-
width: isDesktop &&
|
|
308
|
-
onClick: () =>
|
|
318
|
+
width: isDesktop && orientation === 'portrait' ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
|
|
319
|
+
onClick: () => setView('hours'),
|
|
309
320
|
selected: view === 'hours',
|
|
310
|
-
value:
|
|
321
|
+
value: formatSection(ampm ? 'hours12h' : 'hours24h', '--')
|
|
311
322
|
}), /*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {
|
|
312
323
|
variant: isDesktop ? 'h5' : 'h3',
|
|
313
324
|
value: ":",
|
|
@@ -316,10 +327,10 @@ function DateTimePickerToolbar(inProps) {
|
|
|
316
327
|
toolbarVariant: toolbarVariant
|
|
317
328
|
}), /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
318
329
|
variant: isDesktop ? 'h5' : 'h3',
|
|
319
|
-
width: isDesktop &&
|
|
320
|
-
onClick: () =>
|
|
330
|
+
width: isDesktop && orientation === 'portrait' ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
|
|
331
|
+
onClick: () => setView('minutes'),
|
|
321
332
|
selected: view === 'minutes' || !views.includes('minutes') && view === 'hours',
|
|
322
|
-
value:
|
|
333
|
+
value: formatSection('minutes', '--'),
|
|
323
334
|
disabled: !views.includes('minutes')
|
|
324
335
|
})]
|
|
325
336
|
}), views.includes('seconds') && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
@@ -331,10 +342,10 @@ function DateTimePickerToolbar(inProps) {
|
|
|
331
342
|
toolbarVariant: toolbarVariant
|
|
332
343
|
}), /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
333
344
|
variant: isDesktop ? 'h5' : 'h3',
|
|
334
|
-
width: isDesktop &&
|
|
335
|
-
onClick: () =>
|
|
345
|
+
width: isDesktop && orientation === 'portrait' ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
|
|
346
|
+
onClick: () => setView('seconds'),
|
|
336
347
|
selected: view === 'seconds',
|
|
337
|
-
value:
|
|
348
|
+
value: formatSection('seconds', '--')
|
|
338
349
|
})]
|
|
339
350
|
})]
|
|
340
351
|
}), showAmPmControl && !isDesktop && /*#__PURE__*/_jsxs(DateTimePickerToolbarAmPmSelection, {
|
|
@@ -357,7 +368,7 @@ function DateTimePickerToolbar(inProps) {
|
|
|
357
368
|
})]
|
|
358
369
|
}), ampm && isDesktop && /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
359
370
|
variant: "h5",
|
|
360
|
-
onClick: () =>
|
|
371
|
+
onClick: () => setView('meridiem'),
|
|
361
372
|
selected: view === 'meridiem',
|
|
362
373
|
value: value && meridiemMode ? formatMeridiem(utils, meridiemMode) : '--',
|
|
363
374
|
width: MULTI_SECTION_CLOCK_SECTION_WIDTH
|
|
@@ -382,14 +393,6 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
|
|
|
382
393
|
* @default `true` for Desktop, `false` for Mobile.
|
|
383
394
|
*/
|
|
384
395
|
hidden: PropTypes.bool,
|
|
385
|
-
isLandscape: PropTypes.bool.isRequired,
|
|
386
|
-
onChange: PropTypes.func.isRequired,
|
|
387
|
-
/**
|
|
388
|
-
* Callback called when a toolbar is clicked
|
|
389
|
-
* @template TView
|
|
390
|
-
* @param {TView} view The view to open
|
|
391
|
-
*/
|
|
392
|
-
onViewChange: PropTypes.func.isRequired,
|
|
393
396
|
/**
|
|
394
397
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
395
398
|
*/
|
|
@@ -407,15 +410,6 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
|
|
|
407
410
|
/**
|
|
408
411
|
* If provided, it will be used instead of `dateTimePickerToolbarTitle` from localization.
|
|
409
412
|
*/
|
|
410
|
-
toolbarTitle: PropTypes.node
|
|
411
|
-
value: PropTypes.object,
|
|
412
|
-
/**
|
|
413
|
-
* Currently visible picker view.
|
|
414
|
-
*/
|
|
415
|
-
view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
|
|
416
|
-
/**
|
|
417
|
-
* Available views.
|
|
418
|
-
*/
|
|
419
|
-
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
|
|
413
|
+
toolbarTitle: PropTypes.node
|
|
420
414
|
} : void 0;
|
|
421
415
|
export { DateTimePickerToolbar };
|
|
@@ -4,7 +4,7 @@ import { DateTimeValidationError } from '../models';
|
|
|
4
4
|
import { DateCalendarSlots, DateCalendarSlotProps, ExportedDateCalendarProps } from '../DateCalendar/DateCalendar.types';
|
|
5
5
|
import { TimeClockSlots, TimeClockSlotProps } from '../TimeClock/TimeClock.types';
|
|
6
6
|
import { BasePickerInputProps } from '../internals/models/props/basePickerProps';
|
|
7
|
-
import { DateTimePickerTabsProps
|
|
7
|
+
import { DateTimePickerTabsProps } from './DateTimePickerTabs';
|
|
8
8
|
import { LocalizedComponent } from '../locales/utils/pickersLocaleTextApi';
|
|
9
9
|
import { DateTimePickerToolbarProps, ExportedDateTimePickerToolbarProps } from './DateTimePickerToolbar';
|
|
10
10
|
import { PickerViewRendererLookup } from '../internals/hooks/usePicker/usePickerViews';
|
|
@@ -29,13 +29,13 @@ export interface BaseDateTimePickerSlotProps extends DateCalendarSlotProps, Time
|
|
|
29
29
|
/**
|
|
30
30
|
* Props passed down to the tabs component.
|
|
31
31
|
*/
|
|
32
|
-
tabs?:
|
|
32
|
+
tabs?: DateTimePickerTabsProps;
|
|
33
33
|
/**
|
|
34
34
|
* Props passed down to the toolbar component.
|
|
35
35
|
*/
|
|
36
36
|
toolbar?: ExportedDateTimePickerToolbarProps;
|
|
37
37
|
}
|
|
38
|
-
export type DateTimePickerViewRenderers<TView extends DateOrTimeViewWithMeridiem
|
|
38
|
+
export type DateTimePickerViewRenderers<TView extends DateOrTimeViewWithMeridiem> = PickerViewRendererLookup<PickerValue, TView, Omit<DateViewRendererProps<TView>, 'slots' | 'slotProps'> & Omit<TimeViewRendererProps<TimeViewWithMeridiem, BaseClockProps<TimeViewWithMeridiem>>, 'slots' | 'slotProps'>>;
|
|
39
39
|
export interface BaseDateTimePickerProps<TView extends DateOrTimeViewWithMeridiem> extends BasePickerInputProps<PickerValue, TView, DateTimeValidationError>, Omit<ExportedDateCalendarProps, 'onViewChange'>, ExportedBaseClockProps, ExportedValidateDateTimeProps {
|
|
40
40
|
/**
|
|
41
41
|
* Display ampm controls under the clock (instead of in the toolbar).
|
|
@@ -16,6 +16,8 @@ import { DateField } from "../DateField/index.js";
|
|
|
16
16
|
import { renderDateViewCalendar } from "../dateViewRenderers/index.js";
|
|
17
17
|
import { resolveDateFormat } from "../internals/utils/date-utils.js";
|
|
18
18
|
import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalization.js";
|
|
19
|
+
const emptyActions = [];
|
|
20
|
+
|
|
19
21
|
/**
|
|
20
22
|
* Demos:
|
|
21
23
|
*
|
|
@@ -40,6 +42,7 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
40
42
|
|
|
41
43
|
// Props with the default values specific to the desktop variant
|
|
42
44
|
const props = _extends({}, defaultizedProps, {
|
|
45
|
+
closeOnSelect: defaultizedProps.closeOnSelect ?? true,
|
|
43
46
|
viewRenderers,
|
|
44
47
|
format: resolveDateFormat(utils, defaultizedProps, false),
|
|
45
48
|
yearsPerRow: defaultizedProps.yearsPerRow ?? 4,
|
|
@@ -53,7 +56,10 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
53
56
|
}),
|
|
54
57
|
toolbar: _extends({
|
|
55
58
|
hidden: true
|
|
56
|
-
}, defaultizedProps.slotProps?.toolbar)
|
|
59
|
+
}, defaultizedProps.slotProps?.toolbar),
|
|
60
|
+
actionBar: ownerState => _extends({
|
|
61
|
+
actions: emptyActions
|
|
62
|
+
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
57
63
|
})
|
|
58
64
|
});
|
|
59
65
|
const {
|
|
@@ -86,8 +92,8 @@ DesktopDatePicker.propTypes = {
|
|
|
86
92
|
autoFocus: PropTypes.bool,
|
|
87
93
|
className: PropTypes.string,
|
|
88
94
|
/**
|
|
89
|
-
* If `true`, the
|
|
90
|
-
* @default
|
|
95
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
96
|
+
* @default true
|
|
91
97
|
*/
|
|
92
98
|
closeOnSelect: PropTypes.bool,
|
|
93
99
|
/**
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseDesktopPickerSlots, ExportedUseDesktopPickerSlotProps, DesktopOnlyPickerProps } from '../internals/hooks/useDesktopPicker';
|
|
3
3
|
import { BaseDatePickerProps, BaseDatePickerSlots, BaseDatePickerSlotProps } from '../DatePicker/shared';
|
|
4
|
-
import { DateView } from '../models';
|
|
5
4
|
import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types';
|
|
6
|
-
export interface DesktopDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseDesktopPickerSlots
|
|
5
|
+
export interface DesktopDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseDesktopPickerSlots, 'field' | 'openPickerIcon'> {
|
|
7
6
|
}
|
|
8
|
-
export interface DesktopDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseDesktopPickerSlotProps<
|
|
7
|
+
export interface DesktopDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure> {
|
|
9
8
|
}
|
|
10
9
|
export interface DesktopDatePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDatePickerProps, DesktopOnlyPickerProps, ExportedYearCalendarProps {
|
|
11
10
|
/**
|
|
@@ -23,4 +22,9 @@ export interface DesktopDatePickerProps<TEnableAccessibleFieldDOMStructure exten
|
|
|
23
22
|
* @default 4
|
|
24
23
|
*/
|
|
25
24
|
yearsPerRow?: 3 | 4;
|
|
25
|
+
/**
|
|
26
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
closeOnSelect?: boolean;
|
|
26
30
|
}
|
|
@@ -27,7 +27,12 @@ import { isInternalTimeView } from "../internals/utils/time-utils.js";
|
|
|
27
27
|
import { isDatePickerView } from "../internals/utils/date-utils.js";
|
|
28
28
|
import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalization.js";
|
|
29
29
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
30
|
-
const rendererInterceptor = function
|
|
30
|
+
const rendererInterceptor = function RendererInterceptor(props) {
|
|
31
|
+
const {
|
|
32
|
+
viewRenderers,
|
|
33
|
+
popperView,
|
|
34
|
+
rendererProps
|
|
35
|
+
} = props;
|
|
31
36
|
const {
|
|
32
37
|
openTo,
|
|
33
38
|
focusedView,
|
|
@@ -46,8 +51,10 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
46
51
|
}]
|
|
47
52
|
});
|
|
48
53
|
const isTimeViewActive = isInternalTimeView(popperView);
|
|
54
|
+
const dateView = isTimeViewActive ? 'day' : popperView;
|
|
55
|
+
const timeView = isTimeViewActive ? popperView : 'hours';
|
|
49
56
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
50
|
-
children: [
|
|
57
|
+
children: [viewRenderers[dateView]?.(_extends({}, rendererProps, {
|
|
51
58
|
view: !isTimeViewActive ? popperView : 'day',
|
|
52
59
|
focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,
|
|
53
60
|
views: rendererProps.views.filter(isDatePickerView),
|
|
@@ -60,7 +67,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
60
67
|
sx: {
|
|
61
68
|
gridColumn: 2
|
|
62
69
|
}
|
|
63
|
-
}),
|
|
70
|
+
}), viewRenderers[timeView]?.(_extends({}, finalProps, {
|
|
64
71
|
view: isTimeViewActive ? popperView : 'hours',
|
|
65
72
|
focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,
|
|
66
73
|
openTo: isInternalTimeView(openTo) ? openTo : 'hours',
|
|
@@ -108,7 +115,6 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
108
115
|
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
109
116
|
const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
|
|
110
117
|
const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
|
|
111
|
-
const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
112
118
|
|
|
113
119
|
// Props with the default values specific to the desktop variant
|
|
114
120
|
const props = _extends({}, defaultizedProps, {
|
|
@@ -135,10 +141,7 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
135
141
|
}, defaultizedProps.slotProps?.toolbar),
|
|
136
142
|
tabs: _extends({
|
|
137
143
|
hidden: true
|
|
138
|
-
}, defaultizedProps.slotProps?.tabs)
|
|
139
|
-
actionBar: ownerState => _extends({
|
|
140
|
-
actions: actionBarActions
|
|
141
|
-
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
144
|
+
}, defaultizedProps.slotProps?.tabs)
|
|
142
145
|
})
|
|
143
146
|
});
|
|
144
147
|
const {
|
|
@@ -182,8 +185,8 @@ DesktopDateTimePicker.propTypes = {
|
|
|
182
185
|
autoFocus: PropTypes.bool,
|
|
183
186
|
className: PropTypes.string,
|
|
184
187
|
/**
|
|
185
|
-
* If `true`, the
|
|
186
|
-
* @default
|
|
188
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
189
|
+
* @default false
|
|
187
190
|
*/
|
|
188
191
|
closeOnSelect: PropTypes.bool,
|
|
189
192
|
/**
|
|
@@ -7,9 +7,9 @@ import { DateOrTimeViewWithMeridiem } from '../internals/models';
|
|
|
7
7
|
import { MultiSectionDigitalClockSlots, MultiSectionDigitalClockSlotProps } from '../MultiSectionDigitalClock';
|
|
8
8
|
import { DigitalClockSlots, DigitalClockSlotProps } from '../DigitalClock';
|
|
9
9
|
import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types';
|
|
10
|
-
export interface DesktopDateTimePickerSlots extends BaseDateTimePickerSlots, MakeOptional<UseDesktopPickerSlots
|
|
10
|
+
export interface DesktopDateTimePickerSlots extends BaseDateTimePickerSlots, MakeOptional<UseDesktopPickerSlots, 'field' | 'openPickerIcon'>, DigitalClockSlots, MultiSectionDigitalClockSlots {
|
|
11
11
|
}
|
|
12
|
-
export interface DesktopDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<
|
|
12
|
+
export interface DesktopDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure>, DigitalClockSlotProps, MultiSectionDigitalClockSlotProps {
|
|
13
13
|
}
|
|
14
14
|
export interface DesktopDateTimePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateTimePickerProps<DateOrTimeViewWithMeridiem>, DesktopOnlyPickerProps, DesktopOnlyTimePickerProps, ExportedYearCalendarProps {
|
|
15
15
|
/**
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { PickersLayoutProps } from '../PickersLayout';
|
|
3
|
-
import { DateOrTimeViewWithMeridiem } from '../internals/models/common';
|
|
4
3
|
import { PickerValidValue } from '../internals/models';
|
|
5
|
-
type DesktopDateTimePickerLayoutComponent = (<TValue extends PickerValidValue
|
|
4
|
+
type DesktopDateTimePickerLayoutComponent = (<TValue extends PickerValidValue>(props: PickersLayoutProps<TValue> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
6
5
|
propTypes?: any;
|
|
7
6
|
};
|
|
8
7
|
/**
|
|
@@ -65,17 +65,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
|
|
|
65
65
|
*/
|
|
66
66
|
classes: PropTypes.object,
|
|
67
67
|
className: PropTypes.string,
|
|
68
|
-
isValid: PropTypes.func.isRequired,
|
|
69
|
-
onAccept: PropTypes.func.isRequired,
|
|
70
|
-
onCancel: PropTypes.func.isRequired,
|
|
71
|
-
onChange: PropTypes.func.isRequired,
|
|
72
|
-
onClear: PropTypes.func.isRequired,
|
|
73
|
-
onClose: PropTypes.func.isRequired,
|
|
74
|
-
onDismiss: PropTypes.func.isRequired,
|
|
75
|
-
onOpen: PropTypes.func.isRequired,
|
|
76
|
-
onSelectShortcut: PropTypes.func.isRequired,
|
|
77
|
-
onSetToday: PropTypes.func.isRequired,
|
|
78
|
-
onViewChange: PropTypes.func.isRequired,
|
|
79
68
|
/**
|
|
80
69
|
* The props used for each component slot.
|
|
81
70
|
* @default {}
|
|
@@ -89,9 +78,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
|
|
|
89
78
|
/**
|
|
90
79
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
91
80
|
*/
|
|
92
|
-
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
93
|
-
value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
94
|
-
view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
|
|
95
|
-
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
|
|
81
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
96
82
|
} : void 0;
|
|
97
83
|
export { DesktopDateTimePickerLayout };
|
|
@@ -46,7 +46,6 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
46
46
|
meridiem: renderTimeView
|
|
47
47
|
}, defaultizedProps.viewRenderers);
|
|
48
48
|
const ampmInClock = defaultizedProps.ampmInClock ?? true;
|
|
49
|
-
const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
50
49
|
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
51
50
|
const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
|
|
52
51
|
const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
|
|
@@ -71,10 +70,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
71
70
|
toolbar: _extends({
|
|
72
71
|
hidden: true,
|
|
73
72
|
ampmInClock
|
|
74
|
-
}, defaultizedProps.slotProps?.toolbar)
|
|
75
|
-
actionBar: _extends({
|
|
76
|
-
actions: actionBarActions
|
|
77
|
-
}, defaultizedProps.slotProps?.actionBar)
|
|
73
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
78
74
|
})
|
|
79
75
|
});
|
|
80
76
|
const {
|
|
@@ -117,8 +113,8 @@ DesktopTimePicker.propTypes = {
|
|
|
117
113
|
autoFocus: PropTypes.bool,
|
|
118
114
|
className: PropTypes.string,
|
|
119
115
|
/**
|
|
120
|
-
* If `true`, the
|
|
121
|
-
* @default
|
|
116
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
117
|
+
* @default false
|
|
122
118
|
*/
|
|
123
119
|
closeOnSelect: PropTypes.bool,
|
|
124
120
|
/**
|
|
@@ -6,9 +6,9 @@ import { DesktopOnlyTimePickerProps } from '../internals/models/props/time';
|
|
|
6
6
|
import { DigitalClockSlots, DigitalClockSlotProps } from '../DigitalClock';
|
|
7
7
|
import { MultiSectionDigitalClockSlots, MultiSectionDigitalClockSlotProps } from '../MultiSectionDigitalClock';
|
|
8
8
|
import { TimeView } from '../models';
|
|
9
|
-
export interface DesktopTimePickerSlots extends BaseTimePickerSlots, MakeOptional<UseDesktopPickerSlots
|
|
9
|
+
export interface DesktopTimePickerSlots extends BaseTimePickerSlots, MakeOptional<UseDesktopPickerSlots, 'field' | 'openPickerIcon'>, DigitalClockSlots, MultiSectionDigitalClockSlots {
|
|
10
10
|
}
|
|
11
|
-
export interface DesktopTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<
|
|
11
|
+
export interface DesktopTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure>, DigitalClockSlotProps, MultiSectionDigitalClockSlotProps {
|
|
12
12
|
}
|
|
13
13
|
export interface DesktopTimePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseTimePickerProps<TimeViewWithMeridiem>, DesktopOnlyPickerProps, DesktopOnlyTimePickerProps {
|
|
14
14
|
/**
|
|
@@ -83,8 +83,8 @@ MobileDatePicker.propTypes = {
|
|
|
83
83
|
autoFocus: PropTypes.bool,
|
|
84
84
|
className: PropTypes.string,
|
|
85
85
|
/**
|
|
86
|
-
* If `true`, the
|
|
87
|
-
* @default
|
|
86
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
87
|
+
* @default false
|
|
88
88
|
*/
|
|
89
89
|
closeOnSelect: PropTypes.bool,
|
|
90
90
|
/**
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseMobilePickerSlots, MobileOnlyPickerProps, ExportedUseMobilePickerSlotProps } from '../internals/hooks/useMobilePicker';
|
|
3
3
|
import { BaseDatePickerProps, BaseDatePickerSlots, BaseDatePickerSlotProps } from '../DatePicker/shared';
|
|
4
|
-
|
|
5
|
-
export interface MobileDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseMobilePickerSlots<DateView>, 'field'> {
|
|
4
|
+
export interface MobileDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseMobilePickerSlots, 'field'> {
|
|
6
5
|
}
|
|
7
|
-
export interface MobileDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseMobilePickerSlotProps<
|
|
6
|
+
export interface MobileDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure> {
|
|
8
7
|
}
|
|
9
8
|
export interface MobileDatePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDatePickerProps, MobileOnlyPickerProps {
|
|
10
9
|
/**
|
|
@@ -103,8 +103,8 @@ MobileDateTimePicker.propTypes = {
|
|
|
103
103
|
autoFocus: PropTypes.bool,
|
|
104
104
|
className: PropTypes.string,
|
|
105
105
|
/**
|
|
106
|
-
* If `true`, the
|
|
107
|
-
* @default
|
|
106
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
107
|
+
* @default false
|
|
108
108
|
*/
|
|
109
109
|
closeOnSelect: PropTypes.bool,
|
|
110
110
|
/**
|
|
@@ -3,19 +3,19 @@ import { UseMobilePickerSlots, ExportedUseMobilePickerSlotProps, MobileOnlyPicke
|
|
|
3
3
|
import { BaseDateTimePickerProps, BaseDateTimePickerSlots, BaseDateTimePickerSlotProps } from '../DateTimePicker/shared';
|
|
4
4
|
import { DateOrTimeView } from '../models';
|
|
5
5
|
import { DateOrTimeViewWithMeridiem } from '../internals/models';
|
|
6
|
-
export interface MobileDateTimePickerSlots
|
|
6
|
+
export interface MobileDateTimePickerSlots extends BaseDateTimePickerSlots, MakeOptional<UseMobilePickerSlots, 'field'> {
|
|
7
7
|
}
|
|
8
|
-
export interface MobileDateTimePickerSlotProps<
|
|
8
|
+
export interface MobileDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimePickerSlotProps, ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure> {
|
|
9
9
|
}
|
|
10
10
|
export interface MobileDateTimePickerProps<TView extends DateOrTimeViewWithMeridiem = DateOrTimeView, TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateTimePickerProps<TView>, MobileOnlyPickerProps {
|
|
11
11
|
/**
|
|
12
12
|
* Overridable component slots.
|
|
13
13
|
* @default {}
|
|
14
14
|
*/
|
|
15
|
-
slots?: MobileDateTimePickerSlots
|
|
15
|
+
slots?: MobileDateTimePickerSlots;
|
|
16
16
|
/**
|
|
17
17
|
* The props used for each component slot.
|
|
18
18
|
* @default {}
|
|
19
19
|
*/
|
|
20
|
-
slotProps?: MobileDateTimePickerSlotProps<
|
|
20
|
+
slotProps?: MobileDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
21
21
|
}
|
|
@@ -96,8 +96,8 @@ MobileTimePicker.propTypes = {
|
|
|
96
96
|
autoFocus: PropTypes.bool,
|
|
97
97
|
className: PropTypes.string,
|
|
98
98
|
/**
|
|
99
|
-
* If `true`, the
|
|
100
|
-
* @default
|
|
99
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
100
|
+
* @default false
|
|
101
101
|
*/
|
|
102
102
|
closeOnSelect: PropTypes.bool,
|
|
103
103
|
/**
|
|
@@ -3,19 +3,19 @@ import { UseMobilePickerSlots, ExportedUseMobilePickerSlotProps, MobileOnlyPicke
|
|
|
3
3
|
import { BaseTimePickerProps, BaseTimePickerSlots, BaseTimePickerSlotProps } from '../TimePicker/shared';
|
|
4
4
|
import { TimeView } from '../models';
|
|
5
5
|
import { TimeViewWithMeridiem } from '../internals/models';
|
|
6
|
-
export interface MobileTimePickerSlots
|
|
6
|
+
export interface MobileTimePickerSlots extends BaseTimePickerSlots, MakeOptional<UseMobilePickerSlots, 'field'> {
|
|
7
7
|
}
|
|
8
|
-
export interface MobileTimePickerSlotProps<
|
|
8
|
+
export interface MobileTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseTimePickerSlotProps, ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure> {
|
|
9
9
|
}
|
|
10
10
|
export interface MobileTimePickerProps<TView extends TimeViewWithMeridiem = TimeView, TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseTimePickerProps<TView>, MobileOnlyPickerProps {
|
|
11
11
|
/**
|
|
12
12
|
* Overridable component slots.
|
|
13
13
|
* @default {}
|
|
14
14
|
*/
|
|
15
|
-
slots?: MobileTimePickerSlots
|
|
15
|
+
slots?: MobileTimePickerSlots;
|
|
16
16
|
/**
|
|
17
17
|
* The props used for each component slot.
|
|
18
18
|
* @default {}
|
|
19
19
|
*/
|
|
20
|
-
slotProps?: MobileTimePickerSlotProps<
|
|
20
|
+
slotProps?: MobileTimePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
21
21
|
}
|
|
@@ -5,13 +5,11 @@ export interface PickersActionBarProps extends DialogActionsProps {
|
|
|
5
5
|
/**
|
|
6
6
|
* Ordered array of actions to display.
|
|
7
7
|
* If empty, does not display that action bar.
|
|
8
|
-
* @default
|
|
8
|
+
* @default
|
|
9
|
+
* - `[]` for Desktop Date Picker and Desktop Date Range Picker
|
|
10
|
+
* - `['cancel', 'accept']` for all other Pickers
|
|
9
11
|
*/
|
|
10
12
|
actions?: PickersActionBarAction[];
|
|
11
|
-
onAccept: () => void;
|
|
12
|
-
onClear: () => void;
|
|
13
|
-
onCancel: () => void;
|
|
14
|
-
onSetToday: () => void;
|
|
15
13
|
}
|
|
16
14
|
/**
|
|
17
15
|
* Demos:
|
|
@@ -23,8 +21,9 @@ export interface PickersActionBarProps extends DialogActionsProps {
|
|
|
23
21
|
*
|
|
24
22
|
* - [PickersActionBar API](https://mui.com/x/api/date-pickers/pickers-action-bar/)
|
|
25
23
|
*/
|
|
26
|
-
declare function
|
|
27
|
-
declare namespace
|
|
24
|
+
declare function PickersActionBarComponent(props: PickersActionBarProps): React.JSX.Element | null;
|
|
25
|
+
declare namespace PickersActionBarComponent {
|
|
28
26
|
var propTypes: any;
|
|
29
27
|
}
|
|
28
|
+
declare const PickersActionBar: React.MemoExoticComponent<typeof PickersActionBarComponent>;
|
|
30
29
|
export { PickersActionBar };
|