@mui/x-date-pickers 6.7.0 → 6.9.0
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/AdapterDayjs/AdapterDayjs.d.ts +5 -1
- package/AdapterDayjs/AdapterDayjs.js +42 -15
- package/AdapterLuxon/AdapterLuxon.d.ts +1 -0
- package/AdapterLuxon/AdapterLuxon.js +12 -5
- package/AdapterMoment/AdapterMoment.js +18 -9
- package/CHANGELOG.md +145 -5541
- package/DateCalendar/DateCalendar.js +49 -21
- package/DateCalendar/DateCalendar.types.d.ts +8 -3
- package/DateCalendar/DayCalendar.d.ts +3 -1
- package/DateCalendar/DayCalendar.js +24 -17
- package/DateCalendar/PickersCalendarHeader.js +6 -3
- package/DateCalendar/useCalendarState.d.ts +5 -3
- package/DateCalendar/useCalendarState.js +41 -17
- package/DateCalendar/useIsDateDisabled.d.ts +1 -1
- package/DateCalendar/useIsDateDisabled.js +5 -3
- package/DateField/DateField.js +9 -1
- package/DatePicker/DatePicker.js +9 -1
- package/DateTimeField/DateTimeField.js +9 -1
- package/DateTimePicker/DateTimePicker.js +9 -1
- package/DesktopDatePicker/DesktopDatePicker.js +9 -1
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
- package/DesktopTimePicker/DesktopTimePicker.js +8 -0
- package/DigitalClock/DigitalClock.js +28 -15
- package/MobileDatePicker/MobileDatePicker.js +9 -1
- package/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
- package/MobileTimePicker/MobileTimePicker.js +8 -0
- package/MonthCalendar/MonthCalendar.js +57 -24
- package/MonthCalendar/MonthCalendar.types.d.ts +8 -2
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
- package/PickersLayout/PickersLayout.js +1 -0
- package/PickersLayout/usePickerLayout.js +4 -3
- package/PickersShortcuts/PickersShortcuts.d.ts +12 -2
- package/PickersShortcuts/PickersShortcuts.js +10 -2
- package/PickersShortcuts/index.d.ts +1 -1
- package/StaticDatePicker/StaticDatePicker.js +9 -1
- package/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
- package/StaticTimePicker/StaticTimePicker.js +8 -0
- package/TimeClock/TimeClock.js +27 -15
- package/TimeField/TimeField.js +9 -1
- package/TimePicker/TimePicker.js +8 -0
- package/YearCalendar/YearCalendar.js +55 -22
- package/YearCalendar/YearCalendar.types.d.ts +8 -2
- package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +1 -1
- package/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
- package/dateViewRenderers/dateViewRenderers.d.ts +1 -1
- package/dateViewRenderers/dateViewRenderers.js +4 -2
- package/index.js +1 -1
- package/internals/hooks/date-helpers-hooks.d.ts +4 -2
- package/internals/hooks/date-helpers-hooks.js +8 -6
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/internals/hooks/useField/useField.d.ts +3 -1
- package/internals/hooks/useField/useField.js +23 -7
- package/internals/hooks/useField/useField.types.d.ts +6 -4
- package/internals/hooks/useField/useField.utils.d.ts +13 -11
- package/internals/hooks/useField/useField.utils.js +55 -43
- package/internals/hooks/useField/useFieldCharacterEditing.d.ts +3 -2
- package/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
- package/internals/hooks/useField/useFieldState.d.ts +1 -0
- package/internals/hooks/useField/useFieldState.js +33 -23
- package/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
- package/internals/hooks/usePicker/usePickerValue.js +45 -9
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +22 -6
- package/internals/hooks/usePicker/usePickerViews.d.ts +2 -1
- package/internals/hooks/usePicker/usePickerViews.js +7 -2
- package/internals/hooks/useUtils.d.ts +3 -2
- package/internals/hooks/useUtils.js +5 -2
- package/internals/hooks/useValueWithTimezone.d.ts +33 -0
- package/internals/hooks/useValueWithTimezone.js +69 -0
- package/internals/index.d.ts +1 -0
- package/internals/index.js +1 -0
- package/internals/models/props/clock.d.ts +2 -2
- package/internals/utils/date-utils.d.ts +4 -4
- package/internals/utils/date-utils.js +4 -12
- package/internals/utils/fields.js +1 -1
- package/internals/utils/getDefaultReferenceDate.d.ts +12 -3
- package/internals/utils/getDefaultReferenceDate.js +4 -4
- package/internals/utils/validation/extractValidationProps.d.ts +1 -1
- package/internals/utils/validation/validateDate.d.ts +3 -2
- package/internals/utils/validation/validateDate.js +14 -6
- package/internals/utils/validation/validateTime.d.ts +3 -2
- package/internals/utils/validation/validateTime.js +8 -8
- package/internals/utils/valueManagers.js +2 -1
- package/legacy/AdapterDayjs/AdapterDayjs.js +45 -16
- package/legacy/AdapterLuxon/AdapterLuxon.js +13 -6
- package/legacy/AdapterMoment/AdapterMoment.js +18 -9
- package/legacy/DateCalendar/DateCalendar.js +47 -24
- package/legacy/DateCalendar/DayCalendar.js +24 -17
- package/legacy/DateCalendar/PickersCalendarHeader.js +6 -3
- package/legacy/DateCalendar/useCalendarState.js +40 -17
- package/legacy/DateCalendar/useIsDateDisabled.js +5 -3
- package/legacy/DateField/DateField.js +9 -1
- package/legacy/DatePicker/DatePicker.js +9 -1
- package/legacy/DateTimeField/DateTimeField.js +9 -1
- package/legacy/DateTimePicker/DateTimePicker.js +9 -1
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +9 -1
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +8 -0
- package/legacy/DigitalClock/DigitalClock.js +26 -16
- package/legacy/MobileDatePicker/MobileDatePicker.js +9 -1
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
- package/legacy/MobileTimePicker/MobileTimePicker.js +8 -0
- package/legacy/MonthCalendar/MonthCalendar.js +61 -32
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +27 -16
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
- package/legacy/PickersLayout/PickersLayout.js +1 -0
- package/legacy/PickersLayout/usePickerLayout.js +3 -2
- package/legacy/PickersShortcuts/PickersShortcuts.js +10 -2
- package/legacy/StaticDatePicker/StaticDatePicker.js +9 -1
- package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
- package/legacy/StaticTimePicker/StaticTimePicker.js +8 -0
- package/legacy/TimeClock/TimeClock.js +25 -18
- package/legacy/TimeField/TimeField.js +9 -1
- package/legacy/TimePicker/TimePicker.js +8 -0
- package/legacy/YearCalendar/YearCalendar.js +59 -30
- package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
- package/legacy/dateViewRenderers/dateViewRenderers.js +4 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/hooks/date-helpers-hooks.js +8 -6
- package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/legacy/internals/hooks/useField/useField.js +22 -6
- package/legacy/internals/hooks/useField/useField.utils.js +56 -44
- package/legacy/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
- package/legacy/internals/hooks/useField/useFieldState.js +42 -33
- package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
- package/legacy/internals/hooks/usePicker/usePickerValue.js +46 -9
- package/legacy/internals/hooks/usePicker/usePickerViews.js +7 -2
- package/legacy/internals/hooks/useUtils.js +5 -2
- package/legacy/internals/hooks/useValueWithTimezone.js +81 -0
- package/legacy/internals/index.js +1 -0
- package/legacy/internals/utils/date-utils.js +5 -13
- package/legacy/internals/utils/fields.js +1 -1
- package/legacy/internals/utils/getDefaultReferenceDate.js +4 -4
- package/legacy/internals/utils/validation/validateDate.js +12 -6
- package/legacy/internals/utils/validation/validateTime.js +8 -8
- package/legacy/internals/utils/valueManagers.js +3 -0
- package/legacy/locales/csCZ.js +2 -2
- package/legacy/locales/elGR.js +93 -0
- package/legacy/locales/index.js +1 -0
- package/legacy/tests/describeAdapters/describeAdapters.js +3 -1
- package/legacy/tests/describeGregorianAdapter/testCalculations.js +69 -27
- package/legacy/tests/describeJalaliAdapter/testCalculations.js +21 -0
- package/legacy/timeViewRenderers/timeViewRenderers.js +12 -6
- package/locales/csCZ.js +2 -2
- package/locales/elGR.d.ts +53 -0
- package/locales/elGR.js +57 -0
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/models/adapters.d.ts +2 -2
- package/models/timezone.d.ts +10 -0
- package/modern/AdapterDayjs/AdapterDayjs.js +41 -15
- package/modern/AdapterLuxon/AdapterLuxon.js +12 -4
- package/modern/AdapterMoment/AdapterMoment.js +18 -9
- package/modern/DateCalendar/DateCalendar.js +49 -21
- package/modern/DateCalendar/DayCalendar.js +24 -17
- package/modern/DateCalendar/PickersCalendarHeader.js +6 -3
- package/modern/DateCalendar/useCalendarState.js +41 -16
- package/modern/DateCalendar/useIsDateDisabled.js +5 -3
- package/modern/DateField/DateField.js +9 -1
- package/modern/DatePicker/DatePicker.js +9 -1
- package/modern/DateTimeField/DateTimeField.js +9 -1
- package/modern/DateTimePicker/DateTimePicker.js +9 -1
- package/modern/DesktopDatePicker/DesktopDatePicker.js +9 -1
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
- package/modern/DesktopTimePicker/DesktopTimePicker.js +8 -0
- package/modern/DigitalClock/DigitalClock.js +28 -15
- package/modern/MobileDatePicker/MobileDatePicker.js +9 -1
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
- package/modern/MobileTimePicker/MobileTimePicker.js +8 -0
- package/modern/MonthCalendar/MonthCalendar.js +57 -24
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
- package/modern/PickersLayout/PickersLayout.js +1 -0
- package/modern/PickersLayout/usePickerLayout.js +4 -3
- package/modern/PickersShortcuts/PickersShortcuts.js +10 -2
- package/modern/StaticDatePicker/StaticDatePicker.js +9 -1
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
- package/modern/StaticTimePicker/StaticTimePicker.js +8 -0
- package/modern/TimeClock/TimeClock.js +27 -15
- package/modern/TimeField/TimeField.js +9 -1
- package/modern/TimePicker/TimePicker.js +8 -0
- package/modern/YearCalendar/YearCalendar.js +55 -22
- package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
- package/modern/dateViewRenderers/dateViewRenderers.js +4 -2
- package/modern/index.js +1 -1
- package/modern/internals/hooks/date-helpers-hooks.js +8 -6
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/modern/internals/hooks/useField/useField.js +23 -7
- package/modern/internals/hooks/useField/useField.utils.js +55 -43
- package/modern/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
- package/modern/internals/hooks/useField/useFieldState.js +33 -22
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
- package/modern/internals/hooks/usePicker/usePickerValue.js +45 -9
- package/modern/internals/hooks/usePicker/usePickerViews.js +7 -2
- package/modern/internals/hooks/useUtils.js +5 -2
- package/modern/internals/hooks/useValueWithTimezone.js +68 -0
- package/modern/internals/index.js +1 -0
- package/modern/internals/utils/date-utils.js +4 -12
- package/modern/internals/utils/fields.js +1 -1
- package/modern/internals/utils/getDefaultReferenceDate.js +4 -4
- package/modern/internals/utils/validation/validateDate.js +14 -6
- package/modern/internals/utils/validation/validateTime.js +8 -8
- package/modern/internals/utils/valueManagers.js +2 -1
- package/modern/locales/csCZ.js +2 -2
- package/modern/locales/elGR.js +57 -0
- package/modern/locales/index.js +1 -0
- package/modern/tests/describeAdapters/describeAdapters.js +3 -1
- package/modern/tests/describeGregorianAdapter/testCalculations.js +69 -27
- package/modern/tests/describeJalaliAdapter/testCalculations.js +21 -0
- package/modern/timeViewRenderers/timeViewRenderers.js +12 -6
- package/node/AdapterDayjs/AdapterDayjs.js +41 -15
- package/node/AdapterLuxon/AdapterLuxon.js +12 -4
- package/node/AdapterMoment/AdapterMoment.js +18 -9
- package/node/DateCalendar/DateCalendar.js +48 -20
- package/node/DateCalendar/DayCalendar.js +24 -17
- package/node/DateCalendar/PickersCalendarHeader.js +6 -3
- package/node/DateCalendar/useCalendarState.js +41 -16
- package/node/DateCalendar/useIsDateDisabled.js +5 -3
- package/node/DateField/DateField.js +9 -1
- package/node/DatePicker/DatePicker.js +9 -1
- package/node/DateTimeField/DateTimeField.js +9 -1
- package/node/DateTimePicker/DateTimePicker.js +9 -1
- package/node/DesktopDatePicker/DesktopDatePicker.js +9 -1
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
- package/node/DesktopTimePicker/DesktopTimePicker.js +8 -0
- package/node/DigitalClock/DigitalClock.js +28 -15
- package/node/MobileDatePicker/MobileDatePicker.js +9 -1
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
- package/node/MobileTimePicker/MobileTimePicker.js +8 -0
- package/node/MonthCalendar/MonthCalendar.js +57 -24
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
- package/node/PickersLayout/PickersLayout.js +1 -0
- package/node/PickersLayout/usePickerLayout.js +4 -3
- package/node/PickersShortcuts/PickersShortcuts.js +10 -2
- package/node/StaticDatePicker/StaticDatePicker.js +9 -1
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
- package/node/StaticTimePicker/StaticTimePicker.js +8 -0
- package/node/TimeClock/TimeClock.js +26 -14
- package/node/TimeField/TimeField.js +9 -1
- package/node/TimePicker/TimePicker.js +8 -0
- package/node/YearCalendar/YearCalendar.js +55 -22
- package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
- package/node/dateViewRenderers/dateViewRenderers.js +4 -2
- package/node/index.js +1 -1
- package/node/internals/hooks/date-helpers-hooks.js +8 -6
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/node/internals/hooks/useField/useField.js +23 -7
- package/node/internals/hooks/useField/useField.utils.js +55 -43
- package/node/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
- package/node/internals/hooks/useField/useFieldState.js +33 -22
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
- package/node/internals/hooks/usePicker/usePickerValue.js +44 -9
- package/node/internals/hooks/usePicker/usePickerViews.js +7 -2
- package/node/internals/hooks/useUtils.js +5 -2
- package/node/internals/hooks/useValueWithTimezone.js +79 -0
- package/node/internals/index.js +7 -0
- package/node/internals/utils/date-utils.js +5 -14
- package/node/internals/utils/fields.js +1 -1
- package/node/internals/utils/getDefaultReferenceDate.js +5 -4
- package/node/internals/utils/validation/validateDate.js +14 -6
- package/node/internals/utils/validation/validateTime.js +8 -8
- package/node/internals/utils/valueManagers.js +2 -1
- package/node/locales/csCZ.js +2 -2
- package/node/locales/elGR.js +64 -0
- package/node/locales/index.js +11 -0
- package/node/tests/describeAdapters/describeAdapters.js +3 -1
- package/node/tests/describeGregorianAdapter/testCalculations.js +69 -27
- package/node/tests/describeJalaliAdapter/testCalculations.js +21 -0
- package/node/timeViewRenderers/timeViewRenderers.js +12 -6
- package/package.json +2 -2
- package/tests/describeAdapters/describeAdapters.js +3 -1
- package/tests/describeGregorianAdapter/testCalculations.js +69 -27
- package/tests/describeJalaliAdapter/testCalculations.js +21 -0
- package/timeViewRenderers/timeViewRenderers.d.ts +3 -3
- package/timeViewRenderers/timeViewRenderers.js +12 -6
|
@@ -30,7 +30,7 @@ export declare class AdapterDayjs implements MuiPickersAdapter<Dayjs, string> {
|
|
|
30
30
|
isMUIAdapter: boolean;
|
|
31
31
|
isTimezoneCompatible: boolean;
|
|
32
32
|
lib: string;
|
|
33
|
-
rawDayJsInstance
|
|
33
|
+
rawDayJsInstance?: typeof defaultDayjs;
|
|
34
34
|
dayjs: Constructor;
|
|
35
35
|
locale?: string;
|
|
36
36
|
formats: AdapterFormats;
|
|
@@ -44,6 +44,10 @@ export declare class AdapterDayjs implements MuiPickersAdapter<Dayjs, string> {
|
|
|
44
44
|
private hasUTCPlugin;
|
|
45
45
|
private hasTimezonePlugin;
|
|
46
46
|
private isSame;
|
|
47
|
+
/**
|
|
48
|
+
* Replace "default" by undefined before passing it to `dayjs
|
|
49
|
+
*/
|
|
50
|
+
private cleanTimezone;
|
|
47
51
|
private createSystemDate;
|
|
48
52
|
private createUTCDate;
|
|
49
53
|
private createTZDate;
|
|
@@ -158,6 +158,7 @@ export class AdapterDayjs {
|
|
|
158
158
|
formats,
|
|
159
159
|
instance
|
|
160
160
|
} = {}) {
|
|
161
|
+
var _this$rawDayJsInstanc;
|
|
161
162
|
this.isMUIAdapter = true;
|
|
162
163
|
this.isTimezoneCompatible = true;
|
|
163
164
|
this.lib = 'dayjs';
|
|
@@ -183,9 +184,27 @@ export class AdapterDayjs {
|
|
|
183
184
|
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
184
185
|
return value.format(comparisonTemplate) === comparingInValueTimezone.format(comparisonTemplate);
|
|
185
186
|
};
|
|
187
|
+
/**
|
|
188
|
+
* Replace "default" by undefined before passing it to `dayjs
|
|
189
|
+
*/
|
|
190
|
+
this.cleanTimezone = timezone => timezone === 'default' ? undefined : timezone;
|
|
186
191
|
this.createSystemDate = value => {
|
|
187
192
|
// TODO v7: Stop using `this.rawDayJsInstance` (drop the `instance` param on the adapters)
|
|
188
|
-
|
|
193
|
+
/* istanbul ignore next */
|
|
194
|
+
if (this.rawDayJsInstance) {
|
|
195
|
+
return this.rawDayJsInstance(value);
|
|
196
|
+
}
|
|
197
|
+
if (this.hasUTCPlugin() && this.hasTimezonePlugin()) {
|
|
198
|
+
const timezone = defaultDayjs.tz.guess();
|
|
199
|
+
|
|
200
|
+
// We can't change the system timezone in the tests
|
|
201
|
+
/* istanbul ignore next */
|
|
202
|
+
if (timezone !== 'UTC') {
|
|
203
|
+
return defaultDayjs.tz(value, timezone);
|
|
204
|
+
}
|
|
205
|
+
return defaultDayjs(value);
|
|
206
|
+
}
|
|
207
|
+
return defaultDayjs(value);
|
|
189
208
|
};
|
|
190
209
|
this.createUTCDate = value => {
|
|
191
210
|
/* istanbul ignore next */
|
|
@@ -204,9 +223,8 @@ export class AdapterDayjs {
|
|
|
204
223
|
if (!this.hasTimezonePlugin()) {
|
|
205
224
|
throw new Error(MISSING_TIMEZONE_PLUGIN);
|
|
206
225
|
}
|
|
207
|
-
const cleanTimezone = timezone === 'default' ? undefined : timezone;
|
|
208
226
|
const keepLocalTime = value !== undefined && !value.endsWith('Z');
|
|
209
|
-
return defaultDayjs(value).tz(cleanTimezone, keepLocalTime);
|
|
227
|
+
return defaultDayjs(value).tz(this.cleanTimezone(timezone), keepLocalTime);
|
|
210
228
|
};
|
|
211
229
|
this.getLocaleFormats = () => {
|
|
212
230
|
const locales = defaultDayjs.Ls;
|
|
@@ -264,11 +282,12 @@ export class AdapterDayjs {
|
|
|
264
282
|
}
|
|
265
283
|
return value.utc();
|
|
266
284
|
}
|
|
285
|
+
|
|
286
|
+
// We know that we have the UTC plugin.
|
|
287
|
+
// Otherwise, the value timezone would always equal "system".
|
|
288
|
+
// And it would be caught by the first "if" of this method.
|
|
267
289
|
if (timezone === 'system') {
|
|
268
|
-
|
|
269
|
-
return value.local();
|
|
270
|
-
}
|
|
271
|
-
return value;
|
|
290
|
+
return value.local();
|
|
272
291
|
}
|
|
273
292
|
if (!this.hasTimezonePlugin()) {
|
|
274
293
|
if (timezone === 'default') {
|
|
@@ -278,8 +297,7 @@ export class AdapterDayjs {
|
|
|
278
297
|
/* istanbul ignore next */
|
|
279
298
|
throw new Error(MISSING_TIMEZONE_PLUGIN);
|
|
280
299
|
}
|
|
281
|
-
|
|
282
|
-
return defaultDayjs.tz(value, cleanZone);
|
|
300
|
+
return defaultDayjs.tz(value, this.cleanTimezone(timezone));
|
|
283
301
|
};
|
|
284
302
|
this.toJsDate = value => {
|
|
285
303
|
return value.toDate();
|
|
@@ -338,7 +356,7 @@ export class AdapterDayjs {
|
|
|
338
356
|
if (value === null && comparing === null) {
|
|
339
357
|
return true;
|
|
340
358
|
}
|
|
341
|
-
return this.dayjs(value).
|
|
359
|
+
return this.dayjs(value).toDate().getTime() === this.dayjs(comparing).toDate().getTime();
|
|
342
360
|
};
|
|
343
361
|
this.isSameYear = (value, comparing) => {
|
|
344
362
|
return this.isSame(value, comparing, 'YYYY');
|
|
@@ -498,9 +516,10 @@ export class AdapterDayjs {
|
|
|
498
516
|
return [0, 1, 2, 3, 4, 5, 6].map(diff => this.formatByString(start.add(diff, 'day'), 'dd'));
|
|
499
517
|
};
|
|
500
518
|
this.getWeekArray = value => {
|
|
501
|
-
const
|
|
502
|
-
const
|
|
503
|
-
const
|
|
519
|
+
const timezone = this.getTimezone(value);
|
|
520
|
+
const cleanValue = this.setLocaleToValue(value);
|
|
521
|
+
const start = cleanValue.startOf('month').startOf('week');
|
|
522
|
+
const end = cleanValue.endOf('month').endOf('week');
|
|
504
523
|
let count = 0;
|
|
505
524
|
let current = start;
|
|
506
525
|
const nestedWeeks = [];
|
|
@@ -509,6 +528,14 @@ export class AdapterDayjs {
|
|
|
509
528
|
nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
|
510
529
|
nestedWeeks[weekNumber].push(current);
|
|
511
530
|
current = current.add(1, 'day');
|
|
531
|
+
|
|
532
|
+
// If the new day does not have the same offset as the old one (when switching to summer day time for example),
|
|
533
|
+
// Then dayjs will not automatically adjust the offset (moment does)
|
|
534
|
+
// We have to parse again the value to make sure the `fixOffset` method is applied
|
|
535
|
+
// See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72
|
|
536
|
+
if (this.hasTimezonePlugin() && timezone !== 'UTC' && timezone !== 'system') {
|
|
537
|
+
current = current.tz(this.cleanTimezone(timezone), true);
|
|
538
|
+
}
|
|
512
539
|
count += 1;
|
|
513
540
|
}
|
|
514
541
|
return nestedWeeks;
|
|
@@ -530,8 +557,8 @@ export class AdapterDayjs {
|
|
|
530
557
|
this.getMeridiemText = ampm => {
|
|
531
558
|
return ampm === 'am' ? 'AM' : 'PM';
|
|
532
559
|
};
|
|
533
|
-
this.rawDayJsInstance = instance
|
|
534
|
-
this.dayjs = withLocale(this.rawDayJsInstance, _locale);
|
|
560
|
+
this.rawDayJsInstance = instance;
|
|
561
|
+
this.dayjs = withLocale((_this$rawDayJsInstanc = this.rawDayJsInstance) != null ? _this$rawDayJsInstanc : defaultDayjs, _locale);
|
|
535
562
|
this.locale = _locale;
|
|
536
563
|
this.formats = _extends({}, defaultFormats, formats);
|
|
537
564
|
defaultDayjs.extend(weekOfYear);
|
|
@@ -37,6 +37,7 @@ export declare class AdapterLuxon implements MuiPickersAdapter<DateTime, string>
|
|
|
37
37
|
};
|
|
38
38
|
formatTokenMap: FieldFormatTokenMap;
|
|
39
39
|
constructor({ locale, formats }?: AdapterOptions<string, never>);
|
|
40
|
+
private setLocaleToValue;
|
|
40
41
|
date: (value?: any) => DateTime | null;
|
|
41
42
|
dateWithTimezone: (value: string | null | undefined, timezone: PickersTimezone) => DateTime | null;
|
|
42
43
|
getTimezone: (value: DateTime) => string;
|
|
@@ -178,6 +178,13 @@ export class AdapterLuxon {
|
|
|
178
178
|
end: "'"
|
|
179
179
|
};
|
|
180
180
|
this.formatTokenMap = formatTokenMap;
|
|
181
|
+
this.setLocaleToValue = value => {
|
|
182
|
+
const expectedLocale = this.getCurrentLocaleCode();
|
|
183
|
+
if (expectedLocale === value.locale) {
|
|
184
|
+
return value;
|
|
185
|
+
}
|
|
186
|
+
return value.setLocale(expectedLocale);
|
|
187
|
+
};
|
|
181
188
|
this.date = value => {
|
|
182
189
|
if (typeof value === 'undefined') {
|
|
183
190
|
return DateTime.local();
|
|
@@ -219,12 +226,11 @@ export class AdapterLuxon {
|
|
|
219
226
|
});
|
|
220
227
|
};
|
|
221
228
|
this.getTimezone = value => {
|
|
222
|
-
var _value$zoneName;
|
|
223
229
|
// When using the system zone, we want to return "system", not something like "Europe/Paris"
|
|
224
230
|
if (value.zone.type === 'system') {
|
|
225
231
|
return 'system';
|
|
226
232
|
}
|
|
227
|
-
return
|
|
233
|
+
return value.zoneName;
|
|
228
234
|
};
|
|
229
235
|
this.setTimezone = (value, timezone) => {
|
|
230
236
|
if (!value.zone.equals(Info.normalizeZone(timezone))) {
|
|
@@ -239,7 +245,7 @@ export class AdapterLuxon {
|
|
|
239
245
|
return DateTime.fromISO(isoString);
|
|
240
246
|
};
|
|
241
247
|
this.toISO = value => {
|
|
242
|
-
return value.toISO({
|
|
248
|
+
return value.toUTC().toISO({
|
|
243
249
|
format: 'extended'
|
|
244
250
|
});
|
|
245
251
|
};
|
|
@@ -522,11 +528,12 @@ export class AdapterLuxon {
|
|
|
522
528
|
});
|
|
523
529
|
};
|
|
524
530
|
this.getWeekArray = value => {
|
|
531
|
+
const cleanValue = this.setLocaleToValue(value);
|
|
525
532
|
const {
|
|
526
533
|
days
|
|
527
|
-
} =
|
|
534
|
+
} = cleanValue.endOf('month').endOf('week').diff(cleanValue.startOf('month').startOf('week'), 'days').toObject();
|
|
528
535
|
const weeks = [];
|
|
529
|
-
new Array(Math.round(days)).fill(0).map((_, i) => i).map(day =>
|
|
536
|
+
new Array(Math.round(days)).fill(0).map((_, i) => i).map(day => cleanValue.startOf('month').startOf('week').plus({
|
|
530
537
|
days: day
|
|
531
538
|
})).forEach((v, i) => {
|
|
532
539
|
if (i === 0 || i % 7 === 0 && i > 6) {
|
|
@@ -6,7 +6,11 @@ const formatTokenMap = {
|
|
|
6
6
|
// Year
|
|
7
7
|
Y: 'year',
|
|
8
8
|
YY: 'year',
|
|
9
|
-
YYYY:
|
|
9
|
+
YYYY: {
|
|
10
|
+
sectionType: 'year',
|
|
11
|
+
contentType: 'digit',
|
|
12
|
+
maxLength: 4
|
|
13
|
+
},
|
|
10
14
|
// Month
|
|
11
15
|
M: {
|
|
12
16
|
sectionType: 'month',
|
|
@@ -234,6 +238,9 @@ export class AdapterMoment {
|
|
|
234
238
|
};
|
|
235
239
|
this.setTimezone = (value, timezone) => {
|
|
236
240
|
var _this$moment$defaultZ2, _this$moment$defaultZ3;
|
|
241
|
+
if (this.getTimezone(value) === timezone) {
|
|
242
|
+
return value;
|
|
243
|
+
}
|
|
237
244
|
if (timezone === 'UTC') {
|
|
238
245
|
return value.clone().utc();
|
|
239
246
|
}
|
|
@@ -241,15 +248,17 @@ export class AdapterMoment {
|
|
|
241
248
|
return value.clone().local();
|
|
242
249
|
}
|
|
243
250
|
if (!this.hasTimezonePlugin()) {
|
|
244
|
-
if (timezone === 'default') {
|
|
245
|
-
return value;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
251
|
/* istanbul ignore next */
|
|
249
|
-
|
|
252
|
+
if (timezone !== 'default') {
|
|
253
|
+
throw new Error(MISSING_TIMEZONE_PLUGIN);
|
|
254
|
+
}
|
|
255
|
+
return value;
|
|
250
256
|
}
|
|
251
257
|
const cleanZone = timezone === 'default' ? // @ts-ignore
|
|
252
258
|
(_this$moment$defaultZ2 = (_this$moment$defaultZ3 = this.moment.defaultZone) == null ? void 0 : _this$moment$defaultZ3.name) != null ? _this$moment$defaultZ2 : 'system' : timezone;
|
|
259
|
+
if (cleanZone === 'system') {
|
|
260
|
+
return value.clone().local();
|
|
261
|
+
}
|
|
253
262
|
const newValue = value.clone();
|
|
254
263
|
newValue.tz(cleanZone);
|
|
255
264
|
return newValue;
|
|
@@ -463,9 +472,9 @@ export class AdapterMoment {
|
|
|
463
472
|
return defaultMoment.weekdaysShort(true);
|
|
464
473
|
};
|
|
465
474
|
this.getWeekArray = value => {
|
|
466
|
-
const
|
|
467
|
-
const start =
|
|
468
|
-
const end =
|
|
475
|
+
const cleanValue = this.setLocaleToValue(value);
|
|
476
|
+
const start = cleanValue.clone().startOf('month').startOf('week');
|
|
477
|
+
const end = cleanValue.clone().endOf('month').endOf('week');
|
|
469
478
|
let count = 0;
|
|
470
479
|
let current = start;
|
|
471
480
|
const nestedWeeks = [];
|