@mui/x-date-pickers 7.0.0-alpha.6 → 7.0.0-alpha.8
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 +4 -21
- package/AdapterDateFns/AdapterDateFns.js +11 -255
- package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +62 -0
- package/AdapterDateFnsBase/AdapterDateFnsBase.js +291 -0
- package/AdapterDateFnsBase/index.d.ts +1 -0
- package/AdapterDateFnsBase/index.js +1 -0
- package/AdapterDateFnsBase/package.json +6 -0
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +1 -0
- package/AdapterDateFnsV3/AdapterDateFnsV3.d.ts +80 -0
- package/AdapterDateFnsV3/AdapterDateFnsV3.js +287 -0
- package/AdapterDateFnsV3/index.d.ts +1 -0
- package/AdapterDateFnsV3/index.js +1 -0
- package/AdapterDateFnsV3/package.json +6 -0
- package/CHANGELOG.md +357 -49
- package/DateCalendar/DateCalendar.js +6 -4
- package/DateCalendar/DateCalendar.types.d.ts +0 -8
- package/DatePicker/DatePickerToolbar.d.ts +2 -2
- package/DatePicker/DatePickerToolbar.js +2 -7
- package/DigitalClock/DigitalClock.js +4 -2
- package/DigitalClock/DigitalClock.types.d.ts +5 -0
- package/LocalizationProvider/LocalizationProvider.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +10 -13
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +5 -0
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -8
- package/PickersSectionList/PickersSectionList.js +1 -1
- package/TimeClock/TimeClock.js +4 -2
- package/TimeClock/TimeClock.types.d.ts +5 -0
- package/hooks/useClearableField.js +3 -3
- package/index.js +1 -1
- package/internals/components/PickersInput/PickersFilledInput.js +2 -2
- package/internals/components/PickersInput/PickersInput.d.ts +2 -4
- package/internals/components/PickersInput/PickersInput.js +2 -3
- package/internals/components/PickersInput/PickersStandardInput.js +2 -2
- package/internals/hooks/useField/useField.utils.js +5 -5
- package/internals/hooks/usePicker/index.d.ts +1 -1
- package/internals/hooks/usePicker/usePickerValue.js +2 -2
- package/internals/hooks/useUtils.js +2 -2
- package/internals/hooks/useViews.d.ts +4 -4
- package/internals/hooks/useViews.js +15 -15
- package/internals/index.d.ts +9 -3
- package/internals/index.js +6 -2
- package/internals/models/common.d.ts +1 -1
- package/internals/models/helpers.d.ts +1 -0
- package/internals/models/props/clock.d.ts +0 -9
- package/internals/utils/views.js +1 -1
- package/legacy/AdapterDateFns/AdapterDateFns.js +222 -458
- package/legacy/AdapterDateFnsBase/AdapterDateFnsBase.js +293 -0
- package/legacy/AdapterDateFnsBase/index.js +1 -0
- package/legacy/AdapterDateFnsV3/AdapterDateFnsV3.js +306 -0
- package/legacy/AdapterDateFnsV3/index.js +1 -0
- package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +5 -6
- package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +5 -6
- package/legacy/DateCalendar/DateCalendar.js +6 -4
- package/legacy/DatePicker/DatePickerToolbar.js +2 -7
- package/legacy/DigitalClock/DigitalClock.js +4 -2
- package/legacy/LocalizationProvider/LocalizationProvider.js +1 -1
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +10 -13
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -8
- package/legacy/PickersSectionList/PickersSectionList.js +1 -1
- package/legacy/TimeClock/TimeClock.js +4 -2
- package/legacy/hooks/useClearableField.js +3 -3
- package/legacy/index.js +1 -1
- package/legacy/internals/components/PickersInput/PickersFilledInput.js +2 -2
- package/legacy/internals/components/PickersInput/PickersInput.js +2 -3
- package/legacy/internals/components/PickersInput/PickersStandardInput.js +2 -2
- package/legacy/internals/hooks/useField/useField.utils.js +5 -5
- package/legacy/internals/hooks/usePicker/usePickerValue.js +2 -2
- package/legacy/internals/hooks/useUtils.js +2 -2
- package/legacy/internals/hooks/useViews.js +15 -15
- package/legacy/internals/index.js +6 -2
- package/legacy/internals/utils/views.js +1 -1
- package/legacy/locales/index.js +1 -0
- package/locales/enUS.d.ts +1 -1
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/mk.d.ts +1 -1
- package/locales/utils/getPickersLocalization.d.ts +1 -1
- package/modern/AdapterDateFns/AdapterDateFns.js +11 -254
- package/modern/AdapterDateFnsBase/AdapterDateFnsBase.js +290 -0
- package/modern/AdapterDateFnsBase/index.js +1 -0
- package/modern/AdapterDateFnsV3/AdapterDateFnsV3.js +287 -0
- package/modern/AdapterDateFnsV3/index.js +1 -0
- package/modern/DateCalendar/DateCalendar.js +6 -4
- package/modern/DatePicker/DatePickerToolbar.js +2 -7
- package/modern/DigitalClock/DigitalClock.js +4 -2
- package/modern/LocalizationProvider/LocalizationProvider.js +1 -1
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +10 -13
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -8
- package/modern/PickersSectionList/PickersSectionList.js +1 -1
- package/modern/TimeClock/TimeClock.js +4 -2
- package/modern/hooks/useClearableField.js +3 -3
- package/modern/index.js +1 -1
- package/modern/internals/components/PickersInput/PickersFilledInput.js +2 -2
- package/modern/internals/components/PickersInput/PickersInput.js +2 -3
- package/modern/internals/components/PickersInput/PickersStandardInput.js +2 -2
- package/modern/internals/hooks/useField/useField.utils.js +5 -5
- package/modern/internals/hooks/usePicker/usePickerValue.js +2 -2
- package/modern/internals/hooks/useUtils.js +2 -2
- package/modern/internals/hooks/useViews.js +15 -15
- package/modern/internals/index.js +6 -2
- package/modern/internals/utils/views.js +1 -1
- package/modern/locales/index.js +1 -0
- package/node/AdapterDateFns/AdapterDateFns.js +11 -254
- package/node/AdapterDateFnsBase/AdapterDateFnsBase.js +298 -0
- package/node/AdapterDateFnsBase/index.js +12 -0
- package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +295 -0
- package/node/AdapterDateFnsV3/index.js +12 -0
- package/node/DateCalendar/DateCalendar.js +6 -4
- package/node/DatePicker/DatePickerToolbar.js +0 -4
- package/node/DigitalClock/DigitalClock.js +4 -2
- package/node/LocalizationProvider/LocalizationProvider.js +1 -1
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +10 -13
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -8
- package/node/PickersSectionList/PickersSectionList.js +1 -1
- package/node/TimeClock/TimeClock.js +4 -2
- package/node/hooks/useClearableField.js +3 -3
- package/node/index.js +1 -1
- package/node/internals/components/PickersInput/PickersFilledInput.js +2 -2
- package/node/internals/components/PickersInput/PickersInput.js +2 -3
- package/node/internals/components/PickersInput/PickersStandardInput.js +2 -2
- package/node/internals/hooks/useField/useField.utils.js +5 -5
- package/node/internals/hooks/usePicker/usePickerValue.js +2 -2
- package/node/internals/hooks/useUtils.js +2 -2
- package/node/internals/hooks/useViews.js +15 -15
- package/node/internals/index.js +47 -1
- package/node/internals/utils/views.js +1 -1
- package/node/locales/index.js +11 -0
- package/package.json +6 -6
|
@@ -138,12 +138,12 @@ export const usePickerValue = ({
|
|
|
138
138
|
if (process.env.NODE_ENV !== 'production') {
|
|
139
139
|
React.useEffect(() => {
|
|
140
140
|
if (isControlled !== (inValue !== undefined)) {
|
|
141
|
-
console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled value of a picker to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled value` + 'for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'].join('\n'));
|
|
141
|
+
console.error([`MUI X: A component is changing the ${isControlled ? '' : 'un'}controlled value of a picker to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled value` + 'for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'].join('\n'));
|
|
142
142
|
}
|
|
143
143
|
}, [inValue]);
|
|
144
144
|
React.useEffect(() => {
|
|
145
145
|
if (!isControlled && defaultValue !== inDefaultValue) {
|
|
146
|
-
console.error([`MUI: A component is changing the defaultValue of an uncontrolled picker after being initialized. ` + `To suppress this warning opt to use a controlled value.`].join('\n'));
|
|
146
|
+
console.error([`MUI X: A component is changing the defaultValue of an uncontrolled picker after being initialized. ` + `To suppress this warning opt to use a controlled value.`].join('\n'));
|
|
147
147
|
}
|
|
148
148
|
}, [JSON.stringify(defaultValue)]);
|
|
149
149
|
}
|
|
@@ -5,10 +5,10 @@ import { DEFAULT_LOCALE } from '../../locales/enUS';
|
|
|
5
5
|
export const useLocalizationContext = () => {
|
|
6
6
|
const localization = React.useContext(MuiPickersAdapterContext);
|
|
7
7
|
if (localization === null) {
|
|
8
|
-
throw new Error(['MUI: Can not find the date and time pickers localization context.', 'It looks like you forgot to wrap your component in LocalizationProvider.', 'This can also happen if you are bundling multiple versions of the `@mui/x-date-pickers` package'].join('\n'));
|
|
8
|
+
throw new Error(['MUI X: Can not find the date and time pickers localization context.', 'It looks like you forgot to wrap your component in LocalizationProvider.', 'This can also happen if you are bundling multiple versions of the `@mui/x-date-pickers` package'].join('\n'));
|
|
9
9
|
}
|
|
10
10
|
if (localization.utils === null) {
|
|
11
|
-
throw new Error(['MUI: Can not find the date and time pickers adapter from its localization context.', 'It looks like you forgot to pass a `dateAdapter` to your LocalizationProvider.'].join('\n'));
|
|
11
|
+
throw new Error(['MUI X: Can not find the date and time pickers adapter from its localization context.', 'It looks like you forgot to pass a `dateAdapter` to your LocalizationProvider.'].join('\n'));
|
|
12
12
|
}
|
|
13
13
|
const localeText = React.useMemo(() => _extends({}, DEFAULT_LOCALE, localization.localeText), [localization.localeText]);
|
|
14
14
|
return React.useMemo(() => _extends({}, localization, {
|
|
@@ -15,11 +15,11 @@ export function useViews({
|
|
|
15
15
|
if (process.env.NODE_ENV !== 'production') {
|
|
16
16
|
if (!warnedOnceNotValidView) {
|
|
17
17
|
if (inView != null && !views.includes(inView)) {
|
|
18
|
-
console.warn(`MUI: \`view="${inView}"\` is not a valid prop.`, `It must be an element of \`views=["${views.join('", "')}"]\`.`);
|
|
18
|
+
console.warn(`MUI X: \`view="${inView}"\` is not a valid prop.`, `It must be an element of \`views=["${views.join('", "')}"]\`.`);
|
|
19
19
|
warnedOnceNotValidView = true;
|
|
20
20
|
}
|
|
21
21
|
if (inView == null && openTo != null && !views.includes(openTo)) {
|
|
22
|
-
console.warn(`MUI: \`openTo="${openTo}"\` is not a valid prop.`, `It must be an element of \`views=["${views.join('", "')}"]\`.`);
|
|
22
|
+
console.warn(`MUI X: \`openTo="${openTo}"\` is not a valid prop.`, `It must be an element of \`views=["${views.join('", "')}"]\`.`);
|
|
23
23
|
warnedOnceNotValidView = true;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -63,11 +63,12 @@ export function useViews({
|
|
|
63
63
|
onFocusedViewChange?.(viewToFocus, hasFocus);
|
|
64
64
|
});
|
|
65
65
|
const handleChangeView = useEventCallback(newView => {
|
|
66
|
+
// always keep the focused view in sync
|
|
67
|
+
handleFocusedViewChange(newView, true);
|
|
66
68
|
if (newView === view) {
|
|
67
69
|
return;
|
|
68
70
|
}
|
|
69
71
|
setView(newView);
|
|
70
|
-
handleFocusedViewChange(newView, true);
|
|
71
72
|
if (onViewChange) {
|
|
72
73
|
onViewChange(newView);
|
|
73
74
|
}
|
|
@@ -76,7 +77,6 @@ export function useViews({
|
|
|
76
77
|
if (nextView) {
|
|
77
78
|
handleChangeView(nextView);
|
|
78
79
|
}
|
|
79
|
-
handleFocusedViewChange(nextView, true);
|
|
80
80
|
});
|
|
81
81
|
const setValueAndGoToNextView = useEventCallback((value, currentViewSelectionState, selectedView) => {
|
|
82
82
|
const isSelectionFinishedOnCurrentView = currentViewSelectionState === 'finish';
|
|
@@ -85,18 +85,19 @@ export function useViews({
|
|
|
85
85
|
// but when it's not the final view given all `views` -> overall selection state should be `partial`.
|
|
86
86
|
views.indexOf(selectedView) < views.length - 1 : Boolean(nextView);
|
|
87
87
|
const globalSelectionState = isSelectionFinishedOnCurrentView && hasMoreViews ? 'partial' : currentViewSelectionState;
|
|
88
|
-
onChange(value, globalSelectionState);
|
|
89
|
-
if
|
|
88
|
+
onChange(value, globalSelectionState, selectedView);
|
|
89
|
+
// Detects if the selected view is not the active one.
|
|
90
|
+
// Can happen if multiple views are displayed, like in `DesktopDateTimePicker` or `MultiSectionDigitalClock`.
|
|
91
|
+
if (selectedView && selectedView !== view) {
|
|
92
|
+
const nextViewAfterSelected = views[views.indexOf(selectedView) + 1];
|
|
93
|
+
if (nextViewAfterSelected) {
|
|
94
|
+
// move to next view after the selected one
|
|
95
|
+
handleChangeView(nextViewAfterSelected);
|
|
96
|
+
}
|
|
97
|
+
} else if (isSelectionFinishedOnCurrentView) {
|
|
90
98
|
goToNextView();
|
|
91
99
|
}
|
|
92
100
|
});
|
|
93
|
-
const setValueAndGoToView = useEventCallback((value, newView, selectedView) => {
|
|
94
|
-
onChange(value, newView ? 'partial' : 'finish', selectedView);
|
|
95
|
-
if (newView) {
|
|
96
|
-
handleChangeView(newView);
|
|
97
|
-
handleFocusedViewChange(newView, true);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
101
|
return {
|
|
101
102
|
view,
|
|
102
103
|
setView: handleChangeView,
|
|
@@ -107,7 +108,6 @@ export function useViews({
|
|
|
107
108
|
// Always return up-to-date default view instead of the initial one (i.e. defaultView.current)
|
|
108
109
|
defaultView: views.includes(openTo) ? openTo : views[0],
|
|
109
110
|
goToNextView,
|
|
110
|
-
setValueAndGoToNextView
|
|
111
|
-
setValueAndGoToView
|
|
111
|
+
setValueAndGoToNextView
|
|
112
112
|
};
|
|
113
113
|
}
|
|
@@ -14,10 +14,12 @@ export { useField, createDateStrForInputFromSections, addPositionPropertiesToSec
|
|
|
14
14
|
export { usePicker } from './hooks/usePicker';
|
|
15
15
|
export { useStaticPicker } from './hooks/useStaticPicker';
|
|
16
16
|
export { useLocalizationContext, useDefaultDates, useUtils, useLocaleText, useNow } from './hooks/useUtils';
|
|
17
|
+
export { useViews } from './hooks/useViews';
|
|
17
18
|
export { useValidation } from './hooks/useValidation';
|
|
18
19
|
export { usePreviousMonthDisabled, useNextMonthDisabled } from './hooks/date-helpers-hooks';
|
|
19
20
|
export { convertFieldResponseIntoMuiTextFieldProps } from './utils/convertFieldResponseIntoMuiTextFieldProps';
|
|
20
|
-
export { applyDefaultDate, replaceInvalidDateByNull, areDatesEqual, getTodayDate } from './utils/date-utils';
|
|
21
|
+
export { applyDefaultDate, replaceInvalidDateByNull, areDatesEqual, getTodayDate, isDatePickerView, mergeDateAndTime, formatMeridiem } from './utils/date-utils';
|
|
22
|
+
export { resolveTimeViewsResponse } from './utils/date-time-utils';
|
|
21
23
|
export { splitFieldInternalAndForwardedProps } from './utils/fields';
|
|
22
24
|
export { getDefaultReferenceDate } from './utils/getDefaultReferenceDate';
|
|
23
25
|
export { executeInTheNextEventLoopTick, getActiveElement, onSpaceOrEnter, DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from './utils/utils';
|
|
@@ -26,6 +28,8 @@ export { extractValidationProps } from './utils/validation/extractValidationProp
|
|
|
26
28
|
export { validateDate } from './utils/validation/validateDate';
|
|
27
29
|
export { validateDateTime } from './utils/validation/validateDateTime';
|
|
28
30
|
export { validateTime } from './utils/validation/validateTime';
|
|
31
|
+
export { applyDefaultViewProps } from './utils/views';
|
|
29
32
|
export { buildDeprecatedPropsWarning, buildWarning } from './utils/warning';
|
|
30
33
|
export { DayCalendar } from '../DateCalendar/DayCalendar';
|
|
31
|
-
export { useCalendarState } from '../DateCalendar/useCalendarState';
|
|
34
|
+
export { useCalendarState } from '../DateCalendar/useCalendarState';
|
|
35
|
+
export { isTimeView } from './utils/time-utils';
|
|
@@ -19,7 +19,7 @@ export const applyDefaultViewProps = ({
|
|
|
19
19
|
} else if (viewsWithDefault.length > 0) {
|
|
20
20
|
openToWithDefault = viewsWithDefault[0];
|
|
21
21
|
} else {
|
|
22
|
-
throw new Error('MUI: The `views` prop must contain at least one view');
|
|
22
|
+
throw new Error('MUI X: The `views` prop must contain at least one view.');
|
|
23
23
|
}
|
|
24
24
|
return {
|
|
25
25
|
views: viewsWithDefault,
|
package/modern/locales/index.js
CHANGED
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.AdapterDateFns = void 0;
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
8
|
var _addDays = _interopRequireDefault(require("date-fns/addDays"));
|
|
10
9
|
var _addSeconds = _interopRequireDefault(require("date-fns/addSeconds"));
|
|
11
10
|
var _addMinutes = _interopRequireDefault(require("date-fns/addMinutes"));
|
|
@@ -50,200 +49,11 @@ var _startOfYear = _interopRequireDefault(require("date-fns/startOfYear"));
|
|
|
50
49
|
var _isWithinInterval = _interopRequireDefault(require("date-fns/isWithinInterval"));
|
|
51
50
|
var _enUS = _interopRequireDefault(require("date-fns/locale/en-US"));
|
|
52
51
|
var _longFormatters = _interopRequireDefault(require("date-fns/_lib/format/longFormatters"));
|
|
52
|
+
var _AdapterDateFnsBase = require("../AdapterDateFnsBase");
|
|
53
53
|
/* eslint-disable class-methods-use-this */
|
|
54
54
|
|
|
55
55
|
// @ts-ignore
|
|
56
56
|
|
|
57
|
-
const formatTokenMap = {
|
|
58
|
-
// Year
|
|
59
|
-
y: {
|
|
60
|
-
sectionType: 'year',
|
|
61
|
-
contentType: 'digit',
|
|
62
|
-
maxLength: 4
|
|
63
|
-
},
|
|
64
|
-
yy: 'year',
|
|
65
|
-
yyy: {
|
|
66
|
-
sectionType: 'year',
|
|
67
|
-
contentType: 'digit',
|
|
68
|
-
maxLength: 4
|
|
69
|
-
},
|
|
70
|
-
yyyy: 'year',
|
|
71
|
-
// Month
|
|
72
|
-
M: {
|
|
73
|
-
sectionType: 'month',
|
|
74
|
-
contentType: 'digit',
|
|
75
|
-
maxLength: 2
|
|
76
|
-
},
|
|
77
|
-
MM: 'month',
|
|
78
|
-
MMMM: {
|
|
79
|
-
sectionType: 'month',
|
|
80
|
-
contentType: 'letter'
|
|
81
|
-
},
|
|
82
|
-
MMM: {
|
|
83
|
-
sectionType: 'month',
|
|
84
|
-
contentType: 'letter'
|
|
85
|
-
},
|
|
86
|
-
L: {
|
|
87
|
-
sectionType: 'month',
|
|
88
|
-
contentType: 'digit',
|
|
89
|
-
maxLength: 2
|
|
90
|
-
},
|
|
91
|
-
LL: 'month',
|
|
92
|
-
LLL: {
|
|
93
|
-
sectionType: 'month',
|
|
94
|
-
contentType: 'letter'
|
|
95
|
-
},
|
|
96
|
-
LLLL: {
|
|
97
|
-
sectionType: 'month',
|
|
98
|
-
contentType: 'letter'
|
|
99
|
-
},
|
|
100
|
-
// Day of the month
|
|
101
|
-
d: {
|
|
102
|
-
sectionType: 'day',
|
|
103
|
-
contentType: 'digit',
|
|
104
|
-
maxLength: 2
|
|
105
|
-
},
|
|
106
|
-
dd: 'day',
|
|
107
|
-
do: {
|
|
108
|
-
sectionType: 'day',
|
|
109
|
-
contentType: 'digit-with-letter'
|
|
110
|
-
},
|
|
111
|
-
// Day of the week
|
|
112
|
-
E: {
|
|
113
|
-
sectionType: 'weekDay',
|
|
114
|
-
contentType: 'letter'
|
|
115
|
-
},
|
|
116
|
-
EE: {
|
|
117
|
-
sectionType: 'weekDay',
|
|
118
|
-
contentType: 'letter'
|
|
119
|
-
},
|
|
120
|
-
EEE: {
|
|
121
|
-
sectionType: 'weekDay',
|
|
122
|
-
contentType: 'letter'
|
|
123
|
-
},
|
|
124
|
-
EEEE: {
|
|
125
|
-
sectionType: 'weekDay',
|
|
126
|
-
contentType: 'letter'
|
|
127
|
-
},
|
|
128
|
-
EEEEE: {
|
|
129
|
-
sectionType: 'weekDay',
|
|
130
|
-
contentType: 'letter'
|
|
131
|
-
},
|
|
132
|
-
i: {
|
|
133
|
-
sectionType: 'weekDay',
|
|
134
|
-
contentType: 'digit',
|
|
135
|
-
maxLength: 1
|
|
136
|
-
},
|
|
137
|
-
ii: 'weekDay',
|
|
138
|
-
iii: {
|
|
139
|
-
sectionType: 'weekDay',
|
|
140
|
-
contentType: 'letter'
|
|
141
|
-
},
|
|
142
|
-
iiii: {
|
|
143
|
-
sectionType: 'weekDay',
|
|
144
|
-
contentType: 'letter'
|
|
145
|
-
},
|
|
146
|
-
e: {
|
|
147
|
-
sectionType: 'weekDay',
|
|
148
|
-
contentType: 'digit',
|
|
149
|
-
maxLength: 1
|
|
150
|
-
},
|
|
151
|
-
ee: 'weekDay',
|
|
152
|
-
eee: {
|
|
153
|
-
sectionType: 'weekDay',
|
|
154
|
-
contentType: 'letter'
|
|
155
|
-
},
|
|
156
|
-
eeee: {
|
|
157
|
-
sectionType: 'weekDay',
|
|
158
|
-
contentType: 'letter'
|
|
159
|
-
},
|
|
160
|
-
eeeee: {
|
|
161
|
-
sectionType: 'weekDay',
|
|
162
|
-
contentType: 'letter'
|
|
163
|
-
},
|
|
164
|
-
eeeeee: {
|
|
165
|
-
sectionType: 'weekDay',
|
|
166
|
-
contentType: 'letter'
|
|
167
|
-
},
|
|
168
|
-
c: {
|
|
169
|
-
sectionType: 'weekDay',
|
|
170
|
-
contentType: 'digit',
|
|
171
|
-
maxLength: 1
|
|
172
|
-
},
|
|
173
|
-
cc: 'weekDay',
|
|
174
|
-
ccc: {
|
|
175
|
-
sectionType: 'weekDay',
|
|
176
|
-
contentType: 'letter'
|
|
177
|
-
},
|
|
178
|
-
cccc: {
|
|
179
|
-
sectionType: 'weekDay',
|
|
180
|
-
contentType: 'letter'
|
|
181
|
-
},
|
|
182
|
-
ccccc: {
|
|
183
|
-
sectionType: 'weekDay',
|
|
184
|
-
contentType: 'letter'
|
|
185
|
-
},
|
|
186
|
-
cccccc: {
|
|
187
|
-
sectionType: 'weekDay',
|
|
188
|
-
contentType: 'letter'
|
|
189
|
-
},
|
|
190
|
-
// Meridiem
|
|
191
|
-
a: 'meridiem',
|
|
192
|
-
aa: 'meridiem',
|
|
193
|
-
aaa: 'meridiem',
|
|
194
|
-
// Hours
|
|
195
|
-
H: {
|
|
196
|
-
sectionType: 'hours',
|
|
197
|
-
contentType: 'digit',
|
|
198
|
-
maxLength: 2
|
|
199
|
-
},
|
|
200
|
-
HH: 'hours',
|
|
201
|
-
h: {
|
|
202
|
-
sectionType: 'hours',
|
|
203
|
-
contentType: 'digit',
|
|
204
|
-
maxLength: 2
|
|
205
|
-
},
|
|
206
|
-
hh: 'hours',
|
|
207
|
-
// Minutes
|
|
208
|
-
m: {
|
|
209
|
-
sectionType: 'minutes',
|
|
210
|
-
contentType: 'digit',
|
|
211
|
-
maxLength: 2
|
|
212
|
-
},
|
|
213
|
-
mm: 'minutes',
|
|
214
|
-
// Seconds
|
|
215
|
-
s: {
|
|
216
|
-
sectionType: 'seconds',
|
|
217
|
-
contentType: 'digit',
|
|
218
|
-
maxLength: 2
|
|
219
|
-
},
|
|
220
|
-
ss: 'seconds'
|
|
221
|
-
};
|
|
222
|
-
const defaultFormats = {
|
|
223
|
-
year: 'yyyy',
|
|
224
|
-
month: 'LLLL',
|
|
225
|
-
monthShort: 'MMM',
|
|
226
|
-
dayOfMonth: 'd',
|
|
227
|
-
weekday: 'EEEE',
|
|
228
|
-
weekdayShort: 'EEEEEE',
|
|
229
|
-
hours24h: 'HH',
|
|
230
|
-
hours12h: 'hh',
|
|
231
|
-
meridiem: 'aa',
|
|
232
|
-
minutes: 'mm',
|
|
233
|
-
seconds: 'ss',
|
|
234
|
-
fullDate: 'PP',
|
|
235
|
-
keyboardDate: 'P',
|
|
236
|
-
shortDate: 'MMM d',
|
|
237
|
-
normalDate: 'd MMMM',
|
|
238
|
-
normalDateWithWeekday: 'EEE, MMM d',
|
|
239
|
-
fullTime: 'p',
|
|
240
|
-
fullTime12h: 'hh:mm aa',
|
|
241
|
-
fullTime24h: 'HH:mm',
|
|
242
|
-
keyboardDateTime: 'P p',
|
|
243
|
-
keyboardDateTime12h: 'P hh:mm aa',
|
|
244
|
-
keyboardDateTime24h: 'P HH:mm'
|
|
245
|
-
};
|
|
246
|
-
|
|
247
57
|
/**
|
|
248
58
|
* Based on `@date-io/date-fns`
|
|
249
59
|
*
|
|
@@ -269,40 +79,19 @@ const defaultFormats = {
|
|
|
269
79
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
270
80
|
* SOFTWARE.
|
|
271
81
|
*/
|
|
272
|
-
class AdapterDateFns {
|
|
82
|
+
class AdapterDateFns extends _AdapterDateFnsBase.AdapterDateFnsBase {
|
|
273
83
|
constructor({
|
|
274
|
-
locale
|
|
84
|
+
locale,
|
|
275
85
|
formats
|
|
276
86
|
} = {}) {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
end: "'"
|
|
286
|
-
};
|
|
287
|
-
this.date = value => {
|
|
288
|
-
if (typeof value === 'undefined') {
|
|
289
|
-
return new Date();
|
|
290
|
-
}
|
|
291
|
-
if (value === null) {
|
|
292
|
-
return null;
|
|
293
|
-
}
|
|
294
|
-
return new Date(value);
|
|
295
|
-
};
|
|
296
|
-
this.getInvalidDate = () => new Date('Invalid Date');
|
|
297
|
-
this.getTimezone = () => {
|
|
298
|
-
return 'default';
|
|
299
|
-
};
|
|
300
|
-
this.setTimezone = value => {
|
|
301
|
-
return value;
|
|
302
|
-
};
|
|
303
|
-
this.toJsDate = value => {
|
|
304
|
-
return value;
|
|
305
|
-
};
|
|
87
|
+
if (typeof _addDays.default !== 'function') {
|
|
88
|
+
throw new Error(['MUI: The `date-fns` package v3.x is not compatible with this adapter.', 'Please, install v2.x of the package or use the `AdapterDateFnsV3` instead.'].join('\n'));
|
|
89
|
+
}
|
|
90
|
+
super({
|
|
91
|
+
locale: locale ?? _enUS.default,
|
|
92
|
+
formats,
|
|
93
|
+
longFormatters: _longFormatters.default
|
|
94
|
+
});
|
|
306
95
|
this.parse = (value, format) => {
|
|
307
96
|
if (value === '') {
|
|
308
97
|
return null;
|
|
@@ -311,33 +100,6 @@ class AdapterDateFns {
|
|
|
311
100
|
locale: this.locale
|
|
312
101
|
});
|
|
313
102
|
};
|
|
314
|
-
this.getCurrentLocaleCode = () => {
|
|
315
|
-
return this.locale?.code || 'en-US';
|
|
316
|
-
};
|
|
317
|
-
// Note: date-fns input types are more lenient than this adapter, so we need to expose our more
|
|
318
|
-
// strict signature and delegate to the more lenient signature. Otherwise, we have downstream type errors upon usage.
|
|
319
|
-
this.is12HourCycleInCurrentLocale = () => {
|
|
320
|
-
if (this.locale) {
|
|
321
|
-
return /a/.test(this.locale.formatLong.time());
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// By default, date-fns is using en-US locale with am/pm enabled
|
|
325
|
-
return true;
|
|
326
|
-
};
|
|
327
|
-
this.expandFormat = format => {
|
|
328
|
-
const longFormatRegexp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
|
|
329
|
-
|
|
330
|
-
// @see https://github.com/date-fns/date-fns/blob/master/src/format/index.js#L31
|
|
331
|
-
return format.match(longFormatRegexp).map(token => {
|
|
332
|
-
const firstCharacter = token[0];
|
|
333
|
-
if (firstCharacter === 'p' || firstCharacter === 'P') {
|
|
334
|
-
const longFormatter = _longFormatters.default[firstCharacter];
|
|
335
|
-
const locale = this.locale || _enUS.default;
|
|
336
|
-
return longFormatter(token, locale.formatLong, {});
|
|
337
|
-
}
|
|
338
|
-
return token;
|
|
339
|
-
}).join('');
|
|
340
|
-
};
|
|
341
103
|
this.isValid = value => {
|
|
342
104
|
if (value == null) {
|
|
343
105
|
return false;
|
|
@@ -352,9 +114,6 @@ class AdapterDateFns {
|
|
|
352
114
|
locale: this.locale
|
|
353
115
|
});
|
|
354
116
|
};
|
|
355
|
-
this.formatNumber = numberToFormat => {
|
|
356
|
-
return numberToFormat;
|
|
357
|
-
};
|
|
358
117
|
this.isEqual = (value, comparing) => {
|
|
359
118
|
if (value === null && comparing === null) {
|
|
360
119
|
return true;
|
|
@@ -525,8 +284,6 @@ class AdapterDateFns {
|
|
|
525
284
|
}
|
|
526
285
|
return years;
|
|
527
286
|
};
|
|
528
|
-
this.locale = _locale;
|
|
529
|
-
this.formats = (0, _extends2.default)({}, defaultFormats, formats);
|
|
530
287
|
}
|
|
531
288
|
}
|
|
532
289
|
exports.AdapterDateFns = AdapterDateFns;
|