@mui/x-date-pickers 6.10.2 → 6.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AdapterDayjs/AdapterDayjs.d.ts +8 -1
- package/AdapterDayjs/AdapterDayjs.js +66 -38
- package/CHANGELOG.md +154 -0
- package/DateCalendar/DateCalendar.d.ts +1 -1
- package/DateCalendar/DateCalendar.js +48 -38
- package/DateCalendar/DateCalendar.types.d.ts +9 -1
- package/DateCalendar/index.d.ts +1 -2
- package/DateCalendar/index.js +3 -2
- package/DateCalendar/useCalendarState.d.ts +1 -1
- package/DateField/DateField.d.ts +1 -1
- package/DateField/DateField.js +3 -2
- package/DatePicker/DatePicker.d.ts +1 -1
- package/DatePicker/DatePickerToolbar.d.ts +1 -1
- package/DateTimeField/DateTimeField.d.ts +1 -1
- package/DateTimeField/DateTimeField.js +3 -2
- package/DateTimePicker/DateTimePicker.d.ts +1 -1
- package/DateTimePicker/DateTimePickerToolbar.js +4 -3
- package/DayCalendarSkeleton/DayCalendarSkeleton.d.ts +1 -1
- package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -1
- package/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -1
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
- package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -1
- package/DesktopTimePicker/DesktopTimePicker.js +2 -2
- package/DigitalClock/DigitalClock.d.ts +1 -1
- package/LocalizationProvider/LocalizationProvider.d.ts +1 -1
- package/MobileDatePicker/MobileDatePicker.d.ts +1 -1
- package/MobileDatePicker/MobileDatePicker.js +2 -2
- package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -1
- package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/MobileTimePicker/MobileTimePicker.d.ts +1 -1
- package/MobileTimePicker/MobileTimePicker.js +2 -2
- package/MonthCalendar/MonthCalendar.d.ts +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.ts +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -2
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +1 -1
- package/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.d.ts +21 -9
- package/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +72 -28
- package/PickersCalendarHeader/index.d.ts +4 -0
- package/PickersCalendarHeader/index.js +2 -0
- package/PickersCalendarHeader/package.json +6 -0
- package/PickersDay/PickersDay.d.ts +1 -1
- package/PickersDay/PickersDay.js +1 -0
- package/PickersShortcuts/PickersShortcuts.js +1 -0
- package/StaticDatePicker/StaticDatePicker.d.ts +1 -1
- package/StaticDateTimePicker/StaticDateTimePicker.d.ts +1 -1
- package/StaticTimePicker/StaticTimePicker.d.ts +1 -1
- package/TimeClock/ClockNumbers.d.ts +1 -1
- package/TimeClock/TimeClock.d.ts +1 -1
- package/TimeField/TimeField.d.ts +1 -1
- package/TimeField/TimeField.js +3 -2
- package/TimePicker/TimePicker.d.ts +1 -1
- package/TimePicker/TimePickerToolbar.js +3 -2
- package/YearCalendar/YearCalendar.d.ts +2 -2
- package/index.js +1 -1
- package/internals/components/PickersModalDialog.d.ts +2 -2
- package/internals/components/PickersPopper.d.ts +3 -3
- package/internals/components/PickersToolbar.d.ts +1 -1
- package/internals/hooks/date-helpers-hooks.d.ts +1 -2
- package/internals/hooks/useDefaultReduceAnimations.d.ts +2 -0
- package/internals/hooks/useDefaultReduceAnimations.js +9 -0
- package/internals/hooks/useField/useField.js +10 -5
- package/internals/hooks/useField/useField.utils.d.ts +1 -1
- package/internals/hooks/useField/useField.utils.js +6 -5
- package/internals/hooks/usePicker/usePickerValue.js +1 -1
- package/internals/index.d.ts +1 -3
- package/internals/index.js +1 -2
- package/internals/utils/date-utils.d.ts +1 -0
- package/internals/utils/date-utils.js +4 -0
- package/internals/utils/valueManagers.js +1 -1
- package/legacy/AdapterDayjs/AdapterDayjs.js +64 -38
- package/legacy/DateCalendar/DateCalendar.js +50 -40
- package/legacy/DateCalendar/index.js +3 -2
- package/legacy/DateField/DateField.js +3 -2
- package/legacy/DateTimeField/DateTimeField.js +3 -2
- package/legacy/DateTimePicker/DateTimePickerToolbar.js +4 -3
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +2 -2
- package/legacy/MobileDatePicker/MobileDatePicker.js +2 -2
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/legacy/MobileTimePicker/MobileTimePicker.js +2 -2
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -2
- package/legacy/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +57 -13
- package/legacy/PickersCalendarHeader/index.js +2 -0
- package/legacy/PickersDay/PickersDay.js +1 -0
- package/legacy/PickersShortcuts/PickersShortcuts.js +1 -0
- package/legacy/TimeField/TimeField.js +3 -2
- package/legacy/TimePicker/TimePickerToolbar.js +3 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/hooks/useDefaultReduceAnimations.js +9 -0
- package/legacy/internals/hooks/useField/useField.js +10 -5
- package/legacy/internals/hooks/useField/useField.utils.js +6 -5
- package/legacy/internals/hooks/usePicker/usePickerValue.js +1 -1
- package/legacy/internals/index.js +1 -2
- package/legacy/internals/utils/date-utils.js +4 -0
- package/legacy/internals/utils/valueManagers.js +1 -1
- package/legacy/locales/fiFI.js +8 -5
- package/legacy/locales/isIS.js +33 -16
- package/legacy/tests/describeGregorianAdapter/testCalculations.js +63 -16
- package/legacy/tests/describeValue/describeValue.js +2 -1
- package/legacy/tests/describeValue/testPickerActionBar.js +12 -28
- package/legacy/tests/describeValue/testShortcuts.js +119 -0
- package/locales/fiFI.js +4 -5
- package/locales/isIS.js +13 -16
- package/models/adapters.d.ts +1 -0
- package/modern/AdapterDayjs/AdapterDayjs.js +65 -38
- package/modern/DateCalendar/DateCalendar.js +46 -38
- package/modern/DateCalendar/index.js +3 -2
- package/modern/DateField/DateField.js +3 -2
- package/modern/DateTimeField/DateTimeField.js +3 -2
- package/modern/DateTimePicker/DateTimePickerToolbar.js +4 -3
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
- package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -1
- package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/modern/MobileTimePicker/MobileTimePicker.js +1 -1
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -2
- package/modern/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +72 -28
- package/modern/PickersCalendarHeader/index.js +2 -0
- package/modern/PickersDay/PickersDay.js +1 -0
- package/modern/PickersShortcuts/PickersShortcuts.js +1 -0
- package/modern/TimeField/TimeField.js +3 -2
- package/modern/TimePicker/TimePickerToolbar.js +3 -2
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useDefaultReduceAnimations.js +9 -0
- package/modern/internals/hooks/useField/useField.js +10 -5
- package/modern/internals/hooks/useField/useField.utils.js +6 -5
- package/modern/internals/hooks/usePicker/usePickerValue.js +1 -1
- package/modern/internals/index.js +1 -2
- package/modern/internals/utils/date-utils.js +4 -0
- package/modern/internals/utils/valueManagers.js +1 -1
- package/modern/locales/fiFI.js +4 -5
- package/modern/locales/isIS.js +13 -16
- package/modern/tests/describeGregorianAdapter/testCalculations.js +63 -16
- package/modern/tests/describeValue/describeValue.js +2 -1
- package/modern/tests/describeValue/testPickerActionBar.js +12 -28
- package/modern/tests/describeValue/testShortcuts.js +112 -0
- package/node/AdapterDayjs/AdapterDayjs.js +65 -38
- package/node/DateCalendar/DateCalendar.js +52 -44
- package/node/DateCalendar/index.js +21 -8
- package/node/DateField/DateField.js +3 -2
- package/node/DateTimeField/DateTimeField.js +3 -2
- package/node/DateTimePicker/DateTimePickerToolbar.js +4 -3
- package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
- package/node/DesktopTimePicker/DesktopTimePicker.js +1 -1
- package/node/MobileDatePicker/MobileDatePicker.js +1 -1
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/node/MobileTimePicker/MobileTimePicker.js +1 -1
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -2
- package/node/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +73 -29
- package/node/PickersCalendarHeader/index.js +19 -0
- package/node/PickersDay/PickersDay.js +1 -0
- package/node/PickersShortcuts/PickersShortcuts.js +1 -0
- package/node/TimeField/TimeField.js +3 -2
- package/node/TimePicker/TimePickerToolbar.js +3 -2
- package/node/index.js +1 -1
- package/node/internals/hooks/useDefaultReduceAnimations.js +18 -0
- package/node/internals/hooks/useField/useField.js +10 -5
- package/node/internals/hooks/useField/useField.utils.js +6 -5
- package/node/internals/hooks/usePicker/usePickerValue.js +1 -1
- package/node/internals/index.js +7 -14
- package/node/internals/utils/date-utils.js +6 -1
- package/node/internals/utils/valueManagers.js +1 -1
- package/node/locales/fiFI.js +4 -5
- package/node/locales/isIS.js +13 -16
- package/node/tests/describeGregorianAdapter/testCalculations.js +61 -16
- package/node/tests/describeValue/describeValue.js +2 -1
- package/node/tests/describeValue/testPickerActionBar.js +12 -28
- package/node/tests/describeValue/testShortcuts.js +122 -0
- package/package.json +3 -3
- package/tests/describeGregorianAdapter/testCalculations.js +63 -16
- package/tests/describeValue/describeValue.js +2 -1
- package/tests/describeValue/testPickerActionBar.js +12 -28
- package/tests/describeValue/testShortcuts.js +112 -0
- package/themeAugmentation/components.d.ts +6 -14
- package/themeAugmentation/overrides.d.ts +0 -20
- package/themeAugmentation/props.d.ts +6 -2
- package/internals/utils/defaultReduceAnimations.d.ts +0 -1
- package/internals/utils/defaultReduceAnimations.js +0 -1
- package/legacy/internals/utils/defaultReduceAnimations.js +0 -1
- package/modern/internals/utils/defaultReduceAnimations.js +0 -1
- package/node/internals/utils/defaultReduceAnimations.js +0 -8
- /package/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.d.ts +0 -0
- /package/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
- /package/legacy/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
- /package/modern/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
- /package/node/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
|
@@ -184,9 +184,24 @@ export class AdapterDayjs {
|
|
|
184
184
|
return value.format(comparisonTemplate) === comparingInValueTimezone.format(comparisonTemplate);
|
|
185
185
|
};
|
|
186
186
|
/**
|
|
187
|
-
*
|
|
187
|
+
* Replaces "default" by undefined and "system" by the system timezone before passing it to `dayjs`.
|
|
188
188
|
*/
|
|
189
|
-
this.cleanTimezone = timezone =>
|
|
189
|
+
this.cleanTimezone = timezone => {
|
|
190
|
+
switch (timezone) {
|
|
191
|
+
case 'default':
|
|
192
|
+
{
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
case 'system':
|
|
196
|
+
{
|
|
197
|
+
return defaultDayjs.tz.guess();
|
|
198
|
+
}
|
|
199
|
+
default:
|
|
200
|
+
{
|
|
201
|
+
return timezone;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
};
|
|
190
205
|
this.createSystemDate = value => {
|
|
191
206
|
// TODO v7: Stop using `this.rawDayJsInstance` (drop the `instance` param on the adapters)
|
|
192
207
|
/* istanbul ignore next */
|
|
@@ -235,6 +250,27 @@ export class AdapterDayjs {
|
|
|
235
250
|
}
|
|
236
251
|
return localeObject.formats;
|
|
237
252
|
};
|
|
253
|
+
/**
|
|
254
|
+
* If the new day does not have the same offset as the old one (when switching to summer day time for example),
|
|
255
|
+
* Then dayjs will not automatically adjust the offset (moment does).
|
|
256
|
+
* We have to parse again the value to make sure the `fixOffset` method is applied.
|
|
257
|
+
* See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72
|
|
258
|
+
*/
|
|
259
|
+
this.adjustOffset = value => {
|
|
260
|
+
if (!this.hasTimezonePlugin()) {
|
|
261
|
+
return value;
|
|
262
|
+
}
|
|
263
|
+
const timezone = this.getTimezone(value);
|
|
264
|
+
if (timezone !== 'UTC') {
|
|
265
|
+
const fixedValue = value.tz(this.cleanTimezone(timezone), true);
|
|
266
|
+
// @ts-ignore
|
|
267
|
+
if ((fixedValue.$offset ?? 0) === (value.$offset ?? 0)) {
|
|
268
|
+
return value;
|
|
269
|
+
}
|
|
270
|
+
return fixedValue;
|
|
271
|
+
}
|
|
272
|
+
return value;
|
|
273
|
+
};
|
|
238
274
|
this.date = value => {
|
|
239
275
|
if (value === null) {
|
|
240
276
|
return null;
|
|
@@ -402,49 +438,49 @@ export class AdapterDayjs {
|
|
|
402
438
|
return value >= start && value <= end;
|
|
403
439
|
};
|
|
404
440
|
this.startOfYear = value => {
|
|
405
|
-
return value.startOf('year');
|
|
441
|
+
return this.adjustOffset(value.startOf('year'));
|
|
406
442
|
};
|
|
407
443
|
this.startOfMonth = value => {
|
|
408
|
-
return value.startOf('month');
|
|
444
|
+
return this.adjustOffset(value.startOf('month'));
|
|
409
445
|
};
|
|
410
446
|
this.startOfWeek = value => {
|
|
411
|
-
return value.startOf('week');
|
|
447
|
+
return this.adjustOffset(value.startOf('week'));
|
|
412
448
|
};
|
|
413
449
|
this.startOfDay = value => {
|
|
414
|
-
return value.startOf('day');
|
|
450
|
+
return this.adjustOffset(value.startOf('day'));
|
|
415
451
|
};
|
|
416
452
|
this.endOfYear = value => {
|
|
417
|
-
return value.endOf('year');
|
|
453
|
+
return this.adjustOffset(value.endOf('year'));
|
|
418
454
|
};
|
|
419
455
|
this.endOfMonth = value => {
|
|
420
|
-
return value.endOf('month');
|
|
456
|
+
return this.adjustOffset(value.endOf('month'));
|
|
421
457
|
};
|
|
422
458
|
this.endOfWeek = value => {
|
|
423
|
-
return value.endOf('week');
|
|
459
|
+
return this.adjustOffset(value.endOf('week'));
|
|
424
460
|
};
|
|
425
461
|
this.endOfDay = value => {
|
|
426
|
-
return value.endOf('day');
|
|
462
|
+
return this.adjustOffset(value.endOf('day'));
|
|
427
463
|
};
|
|
428
464
|
this.addYears = (value, amount) => {
|
|
429
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'year') : value.add(amount, 'year');
|
|
465
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'year') : value.add(amount, 'year'));
|
|
430
466
|
};
|
|
431
467
|
this.addMonths = (value, amount) => {
|
|
432
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'month') : value.add(amount, 'month');
|
|
468
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'month') : value.add(amount, 'month'));
|
|
433
469
|
};
|
|
434
470
|
this.addWeeks = (value, amount) => {
|
|
435
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'week') : value.add(amount, 'week');
|
|
471
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'week') : value.add(amount, 'week'));
|
|
436
472
|
};
|
|
437
473
|
this.addDays = (value, amount) => {
|
|
438
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'day') : value.add(amount, 'day');
|
|
474
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'day') : value.add(amount, 'day'));
|
|
439
475
|
};
|
|
440
476
|
this.addHours = (value, amount) => {
|
|
441
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'hour') : value.add(amount, 'hour');
|
|
477
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'hour') : value.add(amount, 'hour'));
|
|
442
478
|
};
|
|
443
479
|
this.addMinutes = (value, amount) => {
|
|
444
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'minute') : value.add(amount, 'minute');
|
|
480
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'minute') : value.add(amount, 'minute'));
|
|
445
481
|
};
|
|
446
482
|
this.addSeconds = (value, amount) => {
|
|
447
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'second') : value.add(amount, 'second');
|
|
483
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'second') : value.add(amount, 'second'));
|
|
448
484
|
};
|
|
449
485
|
this.getYear = value => {
|
|
450
486
|
return value.year();
|
|
@@ -468,34 +504,34 @@ export class AdapterDayjs {
|
|
|
468
504
|
return value.millisecond();
|
|
469
505
|
};
|
|
470
506
|
this.setYear = (value, year) => {
|
|
471
|
-
return value.set('year', year);
|
|
507
|
+
return this.adjustOffset(value.set('year', year));
|
|
472
508
|
};
|
|
473
509
|
this.setMonth = (value, month) => {
|
|
474
|
-
return value.set('month', month);
|
|
510
|
+
return this.adjustOffset(value.set('month', month));
|
|
475
511
|
};
|
|
476
512
|
this.setDate = (value, date) => {
|
|
477
|
-
return value.set('date', date);
|
|
513
|
+
return this.adjustOffset(value.set('date', date));
|
|
478
514
|
};
|
|
479
515
|
this.setHours = (value, hours) => {
|
|
480
|
-
return value.set('hour', hours);
|
|
516
|
+
return this.adjustOffset(value.set('hour', hours));
|
|
481
517
|
};
|
|
482
518
|
this.setMinutes = (value, minutes) => {
|
|
483
|
-
return value.set('minute', minutes);
|
|
519
|
+
return this.adjustOffset(value.set('minute', minutes));
|
|
484
520
|
};
|
|
485
521
|
this.setSeconds = (value, seconds) => {
|
|
486
|
-
return value.set('second', seconds);
|
|
522
|
+
return this.adjustOffset(value.set('second', seconds));
|
|
487
523
|
};
|
|
488
524
|
this.setMilliseconds = (value, milliseconds) => {
|
|
489
|
-
return value.set('millisecond', milliseconds);
|
|
525
|
+
return this.adjustOffset(value.set('millisecond', milliseconds));
|
|
490
526
|
};
|
|
491
527
|
this.getDaysInMonth = value => {
|
|
492
528
|
return value.daysInMonth();
|
|
493
529
|
};
|
|
494
530
|
this.getNextMonth = value => {
|
|
495
|
-
return
|
|
531
|
+
return this.addMonths(value, 1);
|
|
496
532
|
};
|
|
497
533
|
this.getPreviousMonth = value => {
|
|
498
|
-
return
|
|
534
|
+
return this.addMonths(value, -1);
|
|
499
535
|
};
|
|
500
536
|
this.getMonthArray = value => {
|
|
501
537
|
const firstMonth = value.startOf('year');
|
|
@@ -511,10 +547,9 @@ export class AdapterDayjs {
|
|
|
511
547
|
};
|
|
512
548
|
this.getWeekdays = () => {
|
|
513
549
|
const start = this.dayjs().startOf('week');
|
|
514
|
-
return [0, 1, 2, 3, 4, 5, 6].map(diff => this.formatByString(
|
|
550
|
+
return [0, 1, 2, 3, 4, 5, 6].map(diff => this.formatByString(this.addDays(start, diff), 'dd'));
|
|
515
551
|
};
|
|
516
552
|
this.getWeekArray = value => {
|
|
517
|
-
const timezone = this.getTimezone(value);
|
|
518
553
|
const cleanValue = this.setLocaleToValue(value);
|
|
519
554
|
const start = cleanValue.startOf('month').startOf('week');
|
|
520
555
|
const end = cleanValue.endOf('month').endOf('week');
|
|
@@ -525,15 +560,7 @@ export class AdapterDayjs {
|
|
|
525
560
|
const weekNumber = Math.floor(count / 7);
|
|
526
561
|
nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
|
527
562
|
nestedWeeks[weekNumber].push(current);
|
|
528
|
-
current =
|
|
529
|
-
|
|
530
|
-
// If the new day does not have the same offset as the old one (when switching to summer day time for example),
|
|
531
|
-
// Then dayjs will not automatically adjust the offset (moment does)
|
|
532
|
-
// We have to parse again the value to make sure the `fixOffset` method is applied
|
|
533
|
-
// See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72
|
|
534
|
-
if (this.hasTimezonePlugin() && timezone !== 'UTC' && timezone !== 'system') {
|
|
535
|
-
current = current.tz(this.cleanTimezone(timezone), true);
|
|
536
|
-
}
|
|
563
|
+
current = this.addDays(current, 1);
|
|
537
564
|
count += 1;
|
|
538
565
|
}
|
|
539
566
|
return nestedWeeks;
|
|
@@ -548,7 +575,7 @@ export class AdapterDayjs {
|
|
|
548
575
|
let current = startDate;
|
|
549
576
|
while (current < endDate) {
|
|
550
577
|
years.push(current);
|
|
551
|
-
current =
|
|
578
|
+
current = this.addYears(current, 1);
|
|
552
579
|
}
|
|
553
580
|
return years;
|
|
554
581
|
};
|
|
@@ -4,6 +4,7 @@ const _excluded = ["autoFocus", "onViewChange", "value", "defaultValue", "refere
|
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import clsx from 'clsx';
|
|
7
|
+
import { useSlotProps } from '@mui/base/utils';
|
|
7
8
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
8
9
|
import { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
9
10
|
import { useCalendarState } from './useCalendarState';
|
|
@@ -13,10 +14,10 @@ import { DayCalendar } from './DayCalendar';
|
|
|
13
14
|
import { MonthCalendar } from '../MonthCalendar';
|
|
14
15
|
import { YearCalendar } from '../YearCalendar';
|
|
15
16
|
import { useViews } from '../internals/hooks/useViews';
|
|
16
|
-
import { PickersCalendarHeader } from '
|
|
17
|
+
import { PickersCalendarHeader } from '../PickersCalendarHeader';
|
|
17
18
|
import { findClosestEnabledDate, applyDefaultDate, mergeDateAndTime } from '../internals/utils/date-utils';
|
|
18
19
|
import { PickerViewRoot } from '../internals/components/PickerViewRoot';
|
|
19
|
-
import {
|
|
20
|
+
import { useDefaultReduceAnimations } from '../internals/hooks/useDefaultReduceAnimations';
|
|
20
21
|
import { getDateCalendarUtilityClass } from './dateCalendarClasses';
|
|
21
22
|
import { useControlledValueWithTimezone } from '../internals/hooks/useValueWithTimezone';
|
|
22
23
|
import { singleItemValueManager } from '../internals/utils/valueManagers';
|
|
@@ -35,21 +36,21 @@ const useUtilityClasses = ownerState => {
|
|
|
35
36
|
function useDateCalendarDefaultizedProps(props, name) {
|
|
36
37
|
const utils = useUtils();
|
|
37
38
|
const defaultDates = useDefaultDates();
|
|
39
|
+
const defaultReduceAnimations = useDefaultReduceAnimations();
|
|
38
40
|
const themeProps = useThemeProps({
|
|
39
41
|
props,
|
|
40
42
|
name
|
|
41
43
|
});
|
|
42
|
-
return _extends({
|
|
43
|
-
loading: false,
|
|
44
|
-
disablePast: false,
|
|
45
|
-
disableFuture: false,
|
|
46
|
-
openTo: 'day',
|
|
47
|
-
views: ['year', 'day'],
|
|
48
|
-
reduceAnimations: defaultReduceAnimations,
|
|
49
|
-
renderLoading: () => /*#__PURE__*/_jsx("span", {
|
|
44
|
+
return _extends({}, themeProps, {
|
|
45
|
+
loading: themeProps.loading ?? false,
|
|
46
|
+
disablePast: themeProps.disablePast ?? false,
|
|
47
|
+
disableFuture: themeProps.disableFuture ?? false,
|
|
48
|
+
openTo: themeProps.openTo ?? 'day',
|
|
49
|
+
views: themeProps.views ?? ['year', 'day'],
|
|
50
|
+
reduceAnimations: themeProps.reduceAnimations ?? defaultReduceAnimations,
|
|
51
|
+
renderLoading: themeProps.renderLoading ?? (() => /*#__PURE__*/_jsx("span", {
|
|
50
52
|
children: "..."
|
|
51
|
-
})
|
|
52
|
-
}, themeProps, {
|
|
53
|
+
})),
|
|
53
54
|
minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
|
|
54
55
|
maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
55
56
|
});
|
|
@@ -173,6 +174,38 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
173
174
|
disableFuture,
|
|
174
175
|
timezone
|
|
175
176
|
});
|
|
177
|
+
|
|
178
|
+
// When disabled, limit the view to the selected date
|
|
179
|
+
const minDateWithDisabled = disabled && value || minDate;
|
|
180
|
+
const maxDateWithDisabled = disabled && value || maxDate;
|
|
181
|
+
const gridLabelId = `${id}-grid-label`;
|
|
182
|
+
const hasFocus = focusedView !== null;
|
|
183
|
+
const CalendarHeader = slots?.calendarHeader ?? components?.CalendarHeader ?? PickersCalendarHeader;
|
|
184
|
+
const calendarHeaderProps = useSlotProps({
|
|
185
|
+
elementType: CalendarHeader,
|
|
186
|
+
externalSlotProps: slotProps?.calendarHeader ?? componentsProps?.calendarHeader,
|
|
187
|
+
additionalProps: {
|
|
188
|
+
views,
|
|
189
|
+
view,
|
|
190
|
+
currentMonth: calendarState.currentMonth,
|
|
191
|
+
onViewChange: setView,
|
|
192
|
+
onMonthChange: (newMonth, direction) => handleChangeMonth({
|
|
193
|
+
newMonth,
|
|
194
|
+
direction
|
|
195
|
+
}),
|
|
196
|
+
minDate: minDateWithDisabled,
|
|
197
|
+
maxDate: maxDateWithDisabled,
|
|
198
|
+
disabled,
|
|
199
|
+
disablePast,
|
|
200
|
+
disableFuture,
|
|
201
|
+
reduceAnimations,
|
|
202
|
+
timezone,
|
|
203
|
+
labelId: gridLabelId,
|
|
204
|
+
slots,
|
|
205
|
+
slotProps
|
|
206
|
+
},
|
|
207
|
+
ownerState: props
|
|
208
|
+
});
|
|
176
209
|
const handleDateMonthChange = useEventCallback(newDate => {
|
|
177
210
|
const startOfMonth = utils.startOfMonth(newDate);
|
|
178
211
|
const endOfMonth = utils.endOfMonth(newDate);
|
|
@@ -238,18 +271,12 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
238
271
|
maxDate,
|
|
239
272
|
minDate
|
|
240
273
|
};
|
|
241
|
-
|
|
242
|
-
// When disabled, limit the view to the selected date
|
|
243
|
-
const minDateWithDisabled = disabled && value || minDate;
|
|
244
|
-
const maxDateWithDisabled = disabled && value || maxDate;
|
|
245
274
|
const commonViewProps = {
|
|
246
275
|
disableHighlightToday,
|
|
247
276
|
readOnly,
|
|
248
277
|
disabled,
|
|
249
278
|
timezone
|
|
250
279
|
};
|
|
251
|
-
const gridLabelId = `${id}-grid-label`;
|
|
252
|
-
const hasFocus = focusedView !== null;
|
|
253
280
|
const prevOpenViewRef = React.useRef(view);
|
|
254
281
|
React.useEffect(() => {
|
|
255
282
|
// If the view change and the focus was on the previous view
|
|
@@ -268,26 +295,7 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
268
295
|
className: clsx(classes.root, className),
|
|
269
296
|
ownerState: ownerState
|
|
270
297
|
}, other, {
|
|
271
|
-
children: [/*#__PURE__*/_jsx(
|
|
272
|
-
views: views,
|
|
273
|
-
view: view,
|
|
274
|
-
currentMonth: calendarState.currentMonth,
|
|
275
|
-
onViewChange: setView,
|
|
276
|
-
onMonthChange: (newMonth, direction) => handleChangeMonth({
|
|
277
|
-
newMonth,
|
|
278
|
-
direction
|
|
279
|
-
}),
|
|
280
|
-
minDate: minDateWithDisabled,
|
|
281
|
-
maxDate: maxDateWithDisabled,
|
|
282
|
-
disabled: disabled,
|
|
283
|
-
disablePast: disablePast,
|
|
284
|
-
disableFuture: disableFuture,
|
|
285
|
-
reduceAnimations: reduceAnimations,
|
|
286
|
-
labelId: gridLabelId,
|
|
287
|
-
slots: slots,
|
|
288
|
-
slotProps: slotProps,
|
|
289
|
-
timezone: timezone
|
|
290
|
-
}), /*#__PURE__*/_jsx(DateCalendarViewTransitionContainer, {
|
|
298
|
+
children: [/*#__PURE__*/_jsx(CalendarHeader, _extends({}, calendarHeaderProps)), /*#__PURE__*/_jsx(DateCalendarViewTransitionContainer, {
|
|
291
299
|
reduceAnimations: reduceAnimations,
|
|
292
300
|
className: classes.viewTransitionContainer,
|
|
293
301
|
transKey: view,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { DateCalendar } from './DateCalendar';
|
|
2
2
|
export { getDateCalendarUtilityClass, dateCalendarClasses } from './dateCalendarClasses';
|
|
3
3
|
export { dayPickerClasses } from './dayCalendarClasses';
|
|
4
|
-
export { pickersCalendarHeaderClasses } from './pickersCalendarHeaderClasses';
|
|
5
4
|
export { pickersFadeTransitionGroupClasses } from './pickersFadeTransitionGroupClasses';
|
|
6
|
-
export { pickersSlideTransitionClasses } from './pickersSlideTransitionClasses';
|
|
5
|
+
export { pickersSlideTransitionClasses } from './pickersSlideTransitionClasses';
|
|
6
|
+
// TODO v7: Remove and export the `PickersCalendarHeader` folder from the root instead.
|
|
7
|
+
export * from '../PickersCalendarHeader';
|
|
@@ -38,8 +38,8 @@ const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref)
|
|
|
38
38
|
textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
39
39
|
|
|
40
40
|
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
41
|
-
textFieldProps.inputProps = _extends({},
|
|
42
|
-
textFieldProps.InputProps = _extends({},
|
|
41
|
+
textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
|
|
42
|
+
textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
|
|
43
43
|
const _useDateField = useDateField({
|
|
44
44
|
props: textFieldProps,
|
|
45
45
|
inputRef: externalInputRef
|
|
@@ -84,6 +84,7 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
|
84
84
|
* @default 'primary'
|
|
85
85
|
*/
|
|
86
86
|
color: PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']),
|
|
87
|
+
component: PropTypes.elementType,
|
|
87
88
|
/**
|
|
88
89
|
* Overridable components.
|
|
89
90
|
* @default {}
|
|
@@ -38,8 +38,8 @@ const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inPro
|
|
|
38
38
|
textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
39
39
|
|
|
40
40
|
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
41
|
-
textFieldProps.inputProps = _extends({},
|
|
42
|
-
textFieldProps.InputProps = _extends({},
|
|
41
|
+
textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
|
|
42
|
+
textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
|
|
43
43
|
const _useDateTimeField = useDateTimeField({
|
|
44
44
|
props: textFieldProps,
|
|
45
45
|
inputRef: externalInputRef
|
|
@@ -89,6 +89,7 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
89
89
|
* @default 'primary'
|
|
90
90
|
*/
|
|
91
91
|
color: PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']),
|
|
92
|
+
component: PropTypes.elementType,
|
|
92
93
|
/**
|
|
93
94
|
* Overridable components.
|
|
94
95
|
* @default {}
|
|
@@ -12,6 +12,7 @@ import { useLocaleText, useUtils } from '../internals/hooks/useUtils';
|
|
|
12
12
|
import { dateTimePickerToolbarClasses, getDateTimePickerToolbarUtilityClass } from './dateTimePickerToolbarClasses';
|
|
13
13
|
import { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';
|
|
14
14
|
import { MULTI_SECTION_CLOCK_SECTION_WIDTH } from '../internals/constants/dimensions';
|
|
15
|
+
import { formatMeridiem } from '../internals/utils/date-utils';
|
|
15
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
18
|
const useUtilityClasses = ownerState => {
|
|
@@ -264,14 +265,14 @@ function DateTimePickerToolbar(inProps) {
|
|
|
264
265
|
variant: "subtitle2",
|
|
265
266
|
selected: meridiemMode === 'am',
|
|
266
267
|
typographyClassName: classes.ampmLabel,
|
|
267
|
-
value: utils
|
|
268
|
+
value: formatMeridiem(utils, 'am'),
|
|
268
269
|
onClick: readOnly ? undefined : () => handleMeridiemChange('am'),
|
|
269
270
|
disabled: disabled
|
|
270
271
|
}), /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
271
272
|
variant: "subtitle2",
|
|
272
273
|
selected: meridiemMode === 'pm',
|
|
273
274
|
typographyClassName: classes.ampmLabel,
|
|
274
|
-
value: utils
|
|
275
|
+
value: formatMeridiem(utils, 'pm'),
|
|
275
276
|
onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),
|
|
276
277
|
disabled: disabled
|
|
277
278
|
})]
|
|
@@ -279,7 +280,7 @@ function DateTimePickerToolbar(inProps) {
|
|
|
279
280
|
variant: "h5",
|
|
280
281
|
onClick: () => onViewChange('meridiem'),
|
|
281
282
|
selected: view === 'meridiem',
|
|
282
|
-
value: value && meridiemMode ? utils
|
|
283
|
+
value: value && meridiemMode ? formatMeridiem(utils, meridiemMode) : '--',
|
|
283
284
|
width: MULTI_SECTION_CLOCK_SECTION_WIDTH
|
|
284
285
|
})]
|
|
285
286
|
})]
|
|
@@ -47,7 +47,7 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
47
47
|
props,
|
|
48
48
|
valueManager: singleItemValueManager,
|
|
49
49
|
valueType: 'date',
|
|
50
|
-
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
50
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
51
51
|
validator: validateDate
|
|
52
52
|
});
|
|
53
53
|
return renderPicker();
|
|
@@ -83,7 +83,7 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
83
83
|
props,
|
|
84
84
|
valueManager: singleItemValueManager,
|
|
85
85
|
valueType: 'date-time',
|
|
86
|
-
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
86
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
87
87
|
validator: validateDateTime
|
|
88
88
|
});
|
|
89
89
|
return renderPicker();
|
|
@@ -70,7 +70,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
70
70
|
props,
|
|
71
71
|
valueManager: singleItemValueManager,
|
|
72
72
|
valueType: 'time',
|
|
73
|
-
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
73
|
+
getOpenDialogAriaText: props.localeText?.openTimePickerDialogue ?? localeText.openTimePickerDialogue,
|
|
74
74
|
validator: validateTime
|
|
75
75
|
});
|
|
76
76
|
return renderPicker();
|
|
@@ -44,7 +44,7 @@ const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker
|
|
|
44
44
|
props,
|
|
45
45
|
valueManager: singleItemValueManager,
|
|
46
46
|
valueType: 'date',
|
|
47
|
-
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
47
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
48
48
|
validator: validateDate
|
|
49
49
|
});
|
|
50
50
|
return renderPicker();
|
|
@@ -55,7 +55,7 @@ const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTi
|
|
|
55
55
|
props,
|
|
56
56
|
valueManager: singleItemValueManager,
|
|
57
57
|
valueType: 'date-time',
|
|
58
|
-
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
58
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
59
59
|
validator: validateDateTime
|
|
60
60
|
});
|
|
61
61
|
return renderPicker();
|
|
@@ -48,7 +48,7 @@ const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker
|
|
|
48
48
|
props,
|
|
49
49
|
valueManager: singleItemValueManager,
|
|
50
50
|
valueType: 'time',
|
|
51
|
-
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
51
|
+
getOpenDialogAriaText: props.localeText?.openTimePickerDialogue ?? localeText.openTimePickerDialogue,
|
|
52
52
|
validator: validateTime
|
|
53
53
|
});
|
|
54
54
|
return renderPicker();
|
|
@@ -18,6 +18,7 @@ import { getHourSectionOptions, getTimeSectionOptions } from './MultiSectionDigi
|
|
|
18
18
|
import { useControlledValueWithTimezone } from '../internals/hooks/useValueWithTimezone';
|
|
19
19
|
import { singleItemValueManager } from '../internals/utils/valueManagers';
|
|
20
20
|
import { useClockReferenceDate } from '../internals/hooks/useClockReferenceDate';
|
|
21
|
+
import { formatMeridiem } from '../internals/utils/date-utils';
|
|
21
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
23
|
const useUtilityClasses = ownerState => {
|
|
23
24
|
const {
|
|
@@ -269,8 +270,8 @@ export const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function M
|
|
|
269
270
|
}
|
|
270
271
|
case 'meridiem':
|
|
271
272
|
{
|
|
272
|
-
const amLabel = utils
|
|
273
|
-
const pmLabel = utils
|
|
273
|
+
const amLabel = formatMeridiem(utils, 'am');
|
|
274
|
+
const pmLabel = formatMeridiem(utils, 'pm');
|
|
274
275
|
return {
|
|
275
276
|
onChange: handleMeridiemChange,
|
|
276
277
|
items: [{
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["
|
|
3
|
+
const _excluded = ["slots", "slotProps", "currentMonth", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onMonthChange", "onViewChange", "view", "reduceAnimations", "views", "labelId", "className", "timezone"],
|
|
4
|
+
_excluded2 = ["ownerState"];
|
|
4
5
|
import * as React from 'react';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import clsx from 'clsx';
|
|
5
8
|
import Fade from '@mui/material/Fade';
|
|
6
9
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
7
10
|
import { useSlotProps } from '@mui/base/utils';
|
|
8
11
|
import { unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
9
12
|
import IconButton from '@mui/material/IconButton';
|
|
10
13
|
import { useLocaleText, useUtils } from '../internals/hooks/useUtils';
|
|
11
|
-
import { PickersFadeTransitionGroup } from '
|
|
14
|
+
import { PickersFadeTransitionGroup } from '../DateCalendar/PickersFadeTransitionGroup';
|
|
12
15
|
import { ArrowDropDownIcon } from '../icons';
|
|
13
16
|
import { PickersArrowSwitcher } from '../internals/components/PickersArrowSwitcher';
|
|
14
17
|
import { usePreviousMonthDisabled, useNextMonthDisabled } from '../internals/hooks/date-helpers-hooks';
|
|
@@ -91,11 +94,7 @@ const PickersCalendarHeaderSwitchViewIcon = styled(ArrowDropDownIcon, {
|
|
|
91
94
|
transition: theme.transitions.create('transform'),
|
|
92
95
|
transform: 'rotate(0deg)'
|
|
93
96
|
}));
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* @ignore - do not document.
|
|
97
|
-
*/
|
|
98
|
-
export function PickersCalendarHeader(inProps) {
|
|
97
|
+
const PickersCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersCalendarHeader(inProps, ref) {
|
|
99
98
|
const localeText = useLocaleText();
|
|
100
99
|
const utils = useUtils();
|
|
101
100
|
const props = useThemeProps({
|
|
@@ -103,22 +102,24 @@ export function PickersCalendarHeader(inProps) {
|
|
|
103
102
|
name: 'MuiPickersCalendarHeader'
|
|
104
103
|
});
|
|
105
104
|
const {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
105
|
+
slots,
|
|
106
|
+
slotProps,
|
|
107
|
+
currentMonth: month,
|
|
108
|
+
disabled,
|
|
109
|
+
disableFuture,
|
|
110
|
+
disablePast,
|
|
111
|
+
maxDate,
|
|
112
|
+
minDate,
|
|
113
|
+
onMonthChange,
|
|
114
|
+
onViewChange,
|
|
115
|
+
view,
|
|
116
|
+
reduceAnimations,
|
|
117
|
+
views,
|
|
118
|
+
labelId,
|
|
119
|
+
className,
|
|
120
|
+
timezone
|
|
121
|
+
} = props,
|
|
122
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
122
123
|
const ownerState = props;
|
|
123
124
|
const classes = useUtilityClasses(props);
|
|
124
125
|
const SwitchViewButton = slots?.switchViewButton ?? PickersCalendarHeaderSwitchViewButton;
|
|
@@ -140,7 +141,7 @@ export function PickersCalendarHeader(inProps) {
|
|
|
140
141
|
ownerState: undefined,
|
|
141
142
|
className: classes.switchViewIcon
|
|
142
143
|
}),
|
|
143
|
-
switchViewIconProps = _objectWithoutPropertiesLoose(_useSlotProps,
|
|
144
|
+
switchViewIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
144
145
|
const selectNextMonth = () => onMonthChange(utils.addMonths(month, 1), 'left');
|
|
145
146
|
const selectPreviousMonth = () => onMonthChange(utils.addMonths(month, -1), 'right');
|
|
146
147
|
const isNextMonthDisabled = useNextMonthDisabled(month, {
|
|
@@ -170,9 +171,10 @@ export function PickersCalendarHeader(inProps) {
|
|
|
170
171
|
if (views.length === 1 && views[0] === 'year') {
|
|
171
172
|
return null;
|
|
172
173
|
}
|
|
173
|
-
return /*#__PURE__*/_jsxs(PickersCalendarHeaderRoot, {
|
|
174
|
+
return /*#__PURE__*/_jsxs(PickersCalendarHeaderRoot, _extends({}, other, {
|
|
174
175
|
ownerState: ownerState,
|
|
175
|
-
className: classes.root,
|
|
176
|
+
className: clsx(className, classes.root),
|
|
177
|
+
ref: ref,
|
|
176
178
|
children: [/*#__PURE__*/_jsxs(PickersCalendarHeaderLabelContainer, {
|
|
177
179
|
role: "presentation",
|
|
178
180
|
onClick: handleToggleView,
|
|
@@ -206,5 +208,47 @@ export function PickersCalendarHeader(inProps) {
|
|
|
206
208
|
nextLabel: localeText.nextMonth
|
|
207
209
|
})
|
|
208
210
|
})]
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
+
}));
|
|
212
|
+
});
|
|
213
|
+
process.env.NODE_ENV !== "production" ? PickersCalendarHeader.propTypes = {
|
|
214
|
+
// ----------------------------- Warning --------------------------------
|
|
215
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
216
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
217
|
+
// ----------------------------------------------------------------------
|
|
218
|
+
/**
|
|
219
|
+
* Override or extend the styles applied to the component.
|
|
220
|
+
*/
|
|
221
|
+
classes: PropTypes.object,
|
|
222
|
+
/**
|
|
223
|
+
* className applied to the root element.
|
|
224
|
+
*/
|
|
225
|
+
className: PropTypes.string,
|
|
226
|
+
currentMonth: PropTypes.any.isRequired,
|
|
227
|
+
disabled: PropTypes.bool,
|
|
228
|
+
disableFuture: PropTypes.bool,
|
|
229
|
+
disablePast: PropTypes.bool,
|
|
230
|
+
labelId: PropTypes.string,
|
|
231
|
+
maxDate: PropTypes.any.isRequired,
|
|
232
|
+
minDate: PropTypes.any.isRequired,
|
|
233
|
+
onMonthChange: PropTypes.func.isRequired,
|
|
234
|
+
onViewChange: PropTypes.func,
|
|
235
|
+
reduceAnimations: PropTypes.bool.isRequired,
|
|
236
|
+
/**
|
|
237
|
+
* The props used for each component slot.
|
|
238
|
+
* @default {}
|
|
239
|
+
*/
|
|
240
|
+
slotProps: PropTypes.object,
|
|
241
|
+
/**
|
|
242
|
+
* Overridable component slots.
|
|
243
|
+
* @default {}
|
|
244
|
+
*/
|
|
245
|
+
slots: PropTypes.object,
|
|
246
|
+
/**
|
|
247
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
248
|
+
*/
|
|
249
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
250
|
+
timezone: PropTypes.string.isRequired,
|
|
251
|
+
view: PropTypes.oneOf(['day', 'month', 'year']).isRequired,
|
|
252
|
+
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired).isRequired
|
|
253
|
+
} : void 0;
|
|
254
|
+
export { PickersCalendarHeader };
|