@mui/x-date-pickers 6.10.1 → 6.11.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 +8 -1
- package/AdapterDayjs/AdapterDayjs.js +66 -38
- package/CHANGELOG.md +156 -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 +2 -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 +2 -2
- package/DateTimePicker/DateTimePicker.d.ts +1 -1
- 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/DigitalClock/DigitalClock.js +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/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/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 +2 -2
- package/TimePicker/TimePicker.d.ts +1 -1
- 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 +9 -4
- package/internals/hooks/useField/useField.utils.d.ts +1 -1
- package/internals/hooks/useField/useField.utils.js +6 -5
- package/internals/index.d.ts +1 -3
- package/internals/index.js +1 -2
- 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 +2 -2
- package/legacy/DateTimeField/DateTimeField.js +2 -2
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +2 -2
- package/legacy/DigitalClock/DigitalClock.js +1 -1
- package/legacy/MobileDatePicker/MobileDatePicker.js +2 -2
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/legacy/MobileTimePicker/MobileTimePicker.js +2 -2
- package/legacy/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +57 -13
- package/legacy/PickersCalendarHeader/index.js +2 -0
- package/legacy/TimeField/TimeField.js +2 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/hooks/useDefaultReduceAnimations.js +9 -0
- package/legacy/internals/hooks/useField/useField.js +9 -4
- package/legacy/internals/hooks/useField/useField.utils.js +6 -5
- package/legacy/internals/index.js +1 -2
- package/legacy/internals/utils/valueManagers.js +1 -1
- package/legacy/tests/describeGregorianAdapter/testCalculations.js +63 -16
- 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 +2 -2
- package/modern/DateTimeField/DateTimeField.js +2 -2
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
- package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -1
- package/modern/DigitalClock/DigitalClock.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/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +72 -28
- package/modern/PickersCalendarHeader/index.js +2 -0
- package/modern/TimeField/TimeField.js +2 -2
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useDefaultReduceAnimations.js +9 -0
- package/modern/internals/hooks/useField/useField.js +9 -4
- package/modern/internals/hooks/useField/useField.utils.js +6 -5
- package/modern/internals/index.js +1 -2
- package/modern/internals/utils/valueManagers.js +1 -1
- package/modern/tests/describeGregorianAdapter/testCalculations.js +63 -16
- 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 +2 -2
- package/node/DateTimeField/DateTimeField.js +2 -2
- package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
- package/node/DesktopTimePicker/DesktopTimePicker.js +1 -1
- package/node/DigitalClock/DigitalClock.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/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +73 -29
- package/node/PickersCalendarHeader/index.js +19 -0
- package/node/TimeField/TimeField.js +2 -2
- package/node/index.js +1 -1
- package/node/internals/hooks/useDefaultReduceAnimations.js +18 -0
- package/node/internals/hooks/useField/useField.js +9 -4
- package/node/internals/hooks/useField/useField.utils.js +6 -5
- package/node/internals/index.js +7 -14
- package/node/internals/utils/valueManagers.js +1 -1
- package/node/tests/describeGregorianAdapter/testCalculations.js +61 -16
- package/package.json +2 -2
- package/tests/describeGregorianAdapter/testCalculations.js +63 -16
- package/themeAugmentation/props.d.ts +2 -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
|
@@ -192,9 +192,24 @@ class AdapterDayjs {
|
|
|
192
192
|
return value.format(comparisonTemplate) === comparingInValueTimezone.format(comparisonTemplate);
|
|
193
193
|
};
|
|
194
194
|
/**
|
|
195
|
-
*
|
|
195
|
+
* Replaces "default" by undefined and "system" by the system timezone before passing it to `dayjs`.
|
|
196
196
|
*/
|
|
197
|
-
this.cleanTimezone = timezone =>
|
|
197
|
+
this.cleanTimezone = timezone => {
|
|
198
|
+
switch (timezone) {
|
|
199
|
+
case 'default':
|
|
200
|
+
{
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
case 'system':
|
|
204
|
+
{
|
|
205
|
+
return _dayjs.default.tz.guess();
|
|
206
|
+
}
|
|
207
|
+
default:
|
|
208
|
+
{
|
|
209
|
+
return timezone;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
};
|
|
198
213
|
this.createSystemDate = value => {
|
|
199
214
|
// TODO v7: Stop using `this.rawDayJsInstance` (drop the `instance` param on the adapters)
|
|
200
215
|
/* istanbul ignore next */
|
|
@@ -243,6 +258,27 @@ class AdapterDayjs {
|
|
|
243
258
|
}
|
|
244
259
|
return localeObject.formats;
|
|
245
260
|
};
|
|
261
|
+
/**
|
|
262
|
+
* If the new day does not have the same offset as the old one (when switching to summer day time for example),
|
|
263
|
+
* Then dayjs will not automatically adjust the offset (moment does).
|
|
264
|
+
* We have to parse again the value to make sure the `fixOffset` method is applied.
|
|
265
|
+
* See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72
|
|
266
|
+
*/
|
|
267
|
+
this.adjustOffset = value => {
|
|
268
|
+
if (!this.hasTimezonePlugin()) {
|
|
269
|
+
return value;
|
|
270
|
+
}
|
|
271
|
+
const timezone = this.getTimezone(value);
|
|
272
|
+
if (timezone !== 'UTC') {
|
|
273
|
+
const fixedValue = value.tz(this.cleanTimezone(timezone), true);
|
|
274
|
+
// @ts-ignore
|
|
275
|
+
if ((fixedValue.$offset ?? 0) === (value.$offset ?? 0)) {
|
|
276
|
+
return value;
|
|
277
|
+
}
|
|
278
|
+
return fixedValue;
|
|
279
|
+
}
|
|
280
|
+
return value;
|
|
281
|
+
};
|
|
246
282
|
this.date = value => {
|
|
247
283
|
if (value === null) {
|
|
248
284
|
return null;
|
|
@@ -410,49 +446,49 @@ class AdapterDayjs {
|
|
|
410
446
|
return value >= start && value <= end;
|
|
411
447
|
};
|
|
412
448
|
this.startOfYear = value => {
|
|
413
|
-
return value.startOf('year');
|
|
449
|
+
return this.adjustOffset(value.startOf('year'));
|
|
414
450
|
};
|
|
415
451
|
this.startOfMonth = value => {
|
|
416
|
-
return value.startOf('month');
|
|
452
|
+
return this.adjustOffset(value.startOf('month'));
|
|
417
453
|
};
|
|
418
454
|
this.startOfWeek = value => {
|
|
419
|
-
return value.startOf('week');
|
|
455
|
+
return this.adjustOffset(value.startOf('week'));
|
|
420
456
|
};
|
|
421
457
|
this.startOfDay = value => {
|
|
422
|
-
return value.startOf('day');
|
|
458
|
+
return this.adjustOffset(value.startOf('day'));
|
|
423
459
|
};
|
|
424
460
|
this.endOfYear = value => {
|
|
425
|
-
return value.endOf('year');
|
|
461
|
+
return this.adjustOffset(value.endOf('year'));
|
|
426
462
|
};
|
|
427
463
|
this.endOfMonth = value => {
|
|
428
|
-
return value.endOf('month');
|
|
464
|
+
return this.adjustOffset(value.endOf('month'));
|
|
429
465
|
};
|
|
430
466
|
this.endOfWeek = value => {
|
|
431
|
-
return value.endOf('week');
|
|
467
|
+
return this.adjustOffset(value.endOf('week'));
|
|
432
468
|
};
|
|
433
469
|
this.endOfDay = value => {
|
|
434
|
-
return value.endOf('day');
|
|
470
|
+
return this.adjustOffset(value.endOf('day'));
|
|
435
471
|
};
|
|
436
472
|
this.addYears = (value, amount) => {
|
|
437
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'year') : value.add(amount, 'year');
|
|
473
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'year') : value.add(amount, 'year'));
|
|
438
474
|
};
|
|
439
475
|
this.addMonths = (value, amount) => {
|
|
440
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'month') : value.add(amount, 'month');
|
|
476
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'month') : value.add(amount, 'month'));
|
|
441
477
|
};
|
|
442
478
|
this.addWeeks = (value, amount) => {
|
|
443
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'week') : value.add(amount, 'week');
|
|
479
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'week') : value.add(amount, 'week'));
|
|
444
480
|
};
|
|
445
481
|
this.addDays = (value, amount) => {
|
|
446
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'day') : value.add(amount, 'day');
|
|
482
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'day') : value.add(amount, 'day'));
|
|
447
483
|
};
|
|
448
484
|
this.addHours = (value, amount) => {
|
|
449
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'hour') : value.add(amount, 'hour');
|
|
485
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'hour') : value.add(amount, 'hour'));
|
|
450
486
|
};
|
|
451
487
|
this.addMinutes = (value, amount) => {
|
|
452
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'minute') : value.add(amount, 'minute');
|
|
488
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'minute') : value.add(amount, 'minute'));
|
|
453
489
|
};
|
|
454
490
|
this.addSeconds = (value, amount) => {
|
|
455
|
-
return amount < 0 ? value.subtract(Math.abs(amount), 'second') : value.add(amount, 'second');
|
|
491
|
+
return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'second') : value.add(amount, 'second'));
|
|
456
492
|
};
|
|
457
493
|
this.getYear = value => {
|
|
458
494
|
return value.year();
|
|
@@ -476,34 +512,34 @@ class AdapterDayjs {
|
|
|
476
512
|
return value.millisecond();
|
|
477
513
|
};
|
|
478
514
|
this.setYear = (value, year) => {
|
|
479
|
-
return value.set('year', year);
|
|
515
|
+
return this.adjustOffset(value.set('year', year));
|
|
480
516
|
};
|
|
481
517
|
this.setMonth = (value, month) => {
|
|
482
|
-
return value.set('month', month);
|
|
518
|
+
return this.adjustOffset(value.set('month', month));
|
|
483
519
|
};
|
|
484
520
|
this.setDate = (value, date) => {
|
|
485
|
-
return value.set('date', date);
|
|
521
|
+
return this.adjustOffset(value.set('date', date));
|
|
486
522
|
};
|
|
487
523
|
this.setHours = (value, hours) => {
|
|
488
|
-
return value.set('hour', hours);
|
|
524
|
+
return this.adjustOffset(value.set('hour', hours));
|
|
489
525
|
};
|
|
490
526
|
this.setMinutes = (value, minutes) => {
|
|
491
|
-
return value.set('minute', minutes);
|
|
527
|
+
return this.adjustOffset(value.set('minute', minutes));
|
|
492
528
|
};
|
|
493
529
|
this.setSeconds = (value, seconds) => {
|
|
494
|
-
return value.set('second', seconds);
|
|
530
|
+
return this.adjustOffset(value.set('second', seconds));
|
|
495
531
|
};
|
|
496
532
|
this.setMilliseconds = (value, milliseconds) => {
|
|
497
|
-
return value.set('millisecond', milliseconds);
|
|
533
|
+
return this.adjustOffset(value.set('millisecond', milliseconds));
|
|
498
534
|
};
|
|
499
535
|
this.getDaysInMonth = value => {
|
|
500
536
|
return value.daysInMonth();
|
|
501
537
|
};
|
|
502
538
|
this.getNextMonth = value => {
|
|
503
|
-
return
|
|
539
|
+
return this.addMonths(value, 1);
|
|
504
540
|
};
|
|
505
541
|
this.getPreviousMonth = value => {
|
|
506
|
-
return
|
|
542
|
+
return this.addMonths(value, -1);
|
|
507
543
|
};
|
|
508
544
|
this.getMonthArray = value => {
|
|
509
545
|
const firstMonth = value.startOf('year');
|
|
@@ -519,10 +555,9 @@ class AdapterDayjs {
|
|
|
519
555
|
};
|
|
520
556
|
this.getWeekdays = () => {
|
|
521
557
|
const start = this.dayjs().startOf('week');
|
|
522
|
-
return [0, 1, 2, 3, 4, 5, 6].map(diff => this.formatByString(
|
|
558
|
+
return [0, 1, 2, 3, 4, 5, 6].map(diff => this.formatByString(this.addDays(start, diff), 'dd'));
|
|
523
559
|
};
|
|
524
560
|
this.getWeekArray = value => {
|
|
525
|
-
const timezone = this.getTimezone(value);
|
|
526
561
|
const cleanValue = this.setLocaleToValue(value);
|
|
527
562
|
const start = cleanValue.startOf('month').startOf('week');
|
|
528
563
|
const end = cleanValue.endOf('month').endOf('week');
|
|
@@ -533,15 +568,7 @@ class AdapterDayjs {
|
|
|
533
568
|
const weekNumber = Math.floor(count / 7);
|
|
534
569
|
nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
|
535
570
|
nestedWeeks[weekNumber].push(current);
|
|
536
|
-
current =
|
|
537
|
-
|
|
538
|
-
// If the new day does not have the same offset as the old one (when switching to summer day time for example),
|
|
539
|
-
// Then dayjs will not automatically adjust the offset (moment does)
|
|
540
|
-
// We have to parse again the value to make sure the `fixOffset` method is applied
|
|
541
|
-
// See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72
|
|
542
|
-
if (this.hasTimezonePlugin() && timezone !== 'UTC' && timezone !== 'system') {
|
|
543
|
-
current = current.tz(this.cleanTimezone(timezone), true);
|
|
544
|
-
}
|
|
571
|
+
current = this.addDays(current, 1);
|
|
545
572
|
count += 1;
|
|
546
573
|
}
|
|
547
574
|
return nestedWeeks;
|
|
@@ -556,7 +583,7 @@ class AdapterDayjs {
|
|
|
556
583
|
let current = startDate;
|
|
557
584
|
while (current < endDate) {
|
|
558
585
|
years.push(current);
|
|
559
|
-
current =
|
|
586
|
+
current = this.addYears(current, 1);
|
|
560
587
|
}
|
|
561
588
|
return years;
|
|
562
589
|
};
|
|
@@ -10,8 +10,9 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
|
+
var _utils = require("@mui/base/utils");
|
|
13
14
|
var _styles = require("@mui/material/styles");
|
|
14
|
-
var
|
|
15
|
+
var _utils2 = require("@mui/utils");
|
|
15
16
|
var _useCalendarState = require("./useCalendarState");
|
|
16
17
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
17
18
|
var _PickersFadeTransitionGroup = require("./PickersFadeTransitionGroup");
|
|
@@ -19,10 +20,10 @@ var _DayCalendar = require("./DayCalendar");
|
|
|
19
20
|
var _MonthCalendar = require("../MonthCalendar");
|
|
20
21
|
var _YearCalendar = require("../YearCalendar");
|
|
21
22
|
var _useViews = require("../internals/hooks/useViews");
|
|
22
|
-
var _PickersCalendarHeader = require("
|
|
23
|
+
var _PickersCalendarHeader = require("../PickersCalendarHeader");
|
|
23
24
|
var _dateUtils = require("../internals/utils/date-utils");
|
|
24
25
|
var _PickerViewRoot = require("../internals/components/PickerViewRoot");
|
|
25
|
-
var
|
|
26
|
+
var _useDefaultReduceAnimations = require("../internals/hooks/useDefaultReduceAnimations");
|
|
26
27
|
var _dateCalendarClasses = require("./dateCalendarClasses");
|
|
27
28
|
var _useValueWithTimezone = require("../internals/hooks/useValueWithTimezone");
|
|
28
29
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
@@ -38,26 +39,26 @@ const useUtilityClasses = ownerState => {
|
|
|
38
39
|
root: ['root'],
|
|
39
40
|
viewTransitionContainer: ['viewTransitionContainer']
|
|
40
41
|
};
|
|
41
|
-
return (0,
|
|
42
|
+
return (0, _utils2.unstable_composeClasses)(slots, _dateCalendarClasses.getDateCalendarUtilityClass, classes);
|
|
42
43
|
};
|
|
43
44
|
function useDateCalendarDefaultizedProps(props, name) {
|
|
44
45
|
const utils = (0, _useUtils.useUtils)();
|
|
45
46
|
const defaultDates = (0, _useUtils.useDefaultDates)();
|
|
47
|
+
const defaultReduceAnimations = (0, _useDefaultReduceAnimations.useDefaultReduceAnimations)();
|
|
46
48
|
const themeProps = (0, _styles.useThemeProps)({
|
|
47
49
|
props,
|
|
48
50
|
name
|
|
49
51
|
});
|
|
50
|
-
return (0, _extends2.default)({
|
|
51
|
-
loading: false,
|
|
52
|
-
disablePast: false,
|
|
53
|
-
disableFuture: false,
|
|
54
|
-
openTo: 'day',
|
|
55
|
-
views: ['year', 'day'],
|
|
56
|
-
reduceAnimations:
|
|
57
|
-
renderLoading: () => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
52
|
+
return (0, _extends2.default)({}, themeProps, {
|
|
53
|
+
loading: themeProps.loading ?? false,
|
|
54
|
+
disablePast: themeProps.disablePast ?? false,
|
|
55
|
+
disableFuture: themeProps.disableFuture ?? false,
|
|
56
|
+
openTo: themeProps.openTo ?? 'day',
|
|
57
|
+
views: themeProps.views ?? ['year', 'day'],
|
|
58
|
+
reduceAnimations: themeProps.reduceAnimations ?? defaultReduceAnimations,
|
|
59
|
+
renderLoading: themeProps.renderLoading ?? (() => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
58
60
|
children: "..."
|
|
59
|
-
})
|
|
60
|
-
}, themeProps, {
|
|
61
|
+
})),
|
|
61
62
|
minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
|
|
62
63
|
maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
63
64
|
});
|
|
@@ -87,7 +88,7 @@ const DateCalendarViewTransitionContainer = (0, _styles.styled)(_PickersFadeTran
|
|
|
87
88
|
*/
|
|
88
89
|
const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps, ref) {
|
|
89
90
|
const utils = (0, _useUtils.useUtils)();
|
|
90
|
-
const id = (0,
|
|
91
|
+
const id = (0, _utils2.unstable_useId)();
|
|
91
92
|
const props = useDateCalendarDefaultizedProps(inProps, 'MuiDateCalendar');
|
|
92
93
|
const {
|
|
93
94
|
autoFocus,
|
|
@@ -181,7 +182,39 @@ const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps
|
|
|
181
182
|
disableFuture,
|
|
182
183
|
timezone
|
|
183
184
|
});
|
|
184
|
-
|
|
185
|
+
|
|
186
|
+
// When disabled, limit the view to the selected date
|
|
187
|
+
const minDateWithDisabled = disabled && value || minDate;
|
|
188
|
+
const maxDateWithDisabled = disabled && value || maxDate;
|
|
189
|
+
const gridLabelId = `${id}-grid-label`;
|
|
190
|
+
const hasFocus = focusedView !== null;
|
|
191
|
+
const CalendarHeader = slots?.calendarHeader ?? components?.CalendarHeader ?? _PickersCalendarHeader.PickersCalendarHeader;
|
|
192
|
+
const calendarHeaderProps = (0, _utils.useSlotProps)({
|
|
193
|
+
elementType: CalendarHeader,
|
|
194
|
+
externalSlotProps: slotProps?.calendarHeader ?? componentsProps?.calendarHeader,
|
|
195
|
+
additionalProps: {
|
|
196
|
+
views,
|
|
197
|
+
view,
|
|
198
|
+
currentMonth: calendarState.currentMonth,
|
|
199
|
+
onViewChange: setView,
|
|
200
|
+
onMonthChange: (newMonth, direction) => handleChangeMonth({
|
|
201
|
+
newMonth,
|
|
202
|
+
direction
|
|
203
|
+
}),
|
|
204
|
+
minDate: minDateWithDisabled,
|
|
205
|
+
maxDate: maxDateWithDisabled,
|
|
206
|
+
disabled,
|
|
207
|
+
disablePast,
|
|
208
|
+
disableFuture,
|
|
209
|
+
reduceAnimations,
|
|
210
|
+
timezone,
|
|
211
|
+
labelId: gridLabelId,
|
|
212
|
+
slots,
|
|
213
|
+
slotProps
|
|
214
|
+
},
|
|
215
|
+
ownerState: props
|
|
216
|
+
});
|
|
217
|
+
const handleDateMonthChange = (0, _utils2.unstable_useEventCallback)(newDate => {
|
|
185
218
|
const startOfMonth = utils.startOfMonth(newDate);
|
|
186
219
|
const endOfMonth = utils.endOfMonth(newDate);
|
|
187
220
|
const closestEnabledDate = isDateDisabled(newDate) ? (0, _dateUtils.findClosestEnabledDate)({
|
|
@@ -203,7 +236,7 @@ const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps
|
|
|
203
236
|
}
|
|
204
237
|
changeFocusedDay(closestEnabledDate, true);
|
|
205
238
|
});
|
|
206
|
-
const handleDateYearChange = (0,
|
|
239
|
+
const handleDateYearChange = (0, _utils2.unstable_useEventCallback)(newDate => {
|
|
207
240
|
const startOfYear = utils.startOfYear(newDate);
|
|
208
241
|
const endOfYear = utils.endOfYear(newDate);
|
|
209
242
|
const closestEnabledDate = isDateDisabled(newDate) ? (0, _dateUtils.findClosestEnabledDate)({
|
|
@@ -225,7 +258,7 @@ const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps
|
|
|
225
258
|
}
|
|
226
259
|
changeFocusedDay(closestEnabledDate, true);
|
|
227
260
|
});
|
|
228
|
-
const handleSelectedDayChange = (0,
|
|
261
|
+
const handleSelectedDayChange = (0, _utils2.unstable_useEventCallback)(day => {
|
|
229
262
|
if (day) {
|
|
230
263
|
// If there is a date already selected, then we want to keep its time
|
|
231
264
|
return handleValueChange((0, _dateUtils.mergeDateAndTime)(utils, day, value ?? referenceDate), 'finish');
|
|
@@ -246,18 +279,12 @@ const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps
|
|
|
246
279
|
maxDate,
|
|
247
280
|
minDate
|
|
248
281
|
};
|
|
249
|
-
|
|
250
|
-
// When disabled, limit the view to the selected date
|
|
251
|
-
const minDateWithDisabled = disabled && value || minDate;
|
|
252
|
-
const maxDateWithDisabled = disabled && value || maxDate;
|
|
253
282
|
const commonViewProps = {
|
|
254
283
|
disableHighlightToday,
|
|
255
284
|
readOnly,
|
|
256
285
|
disabled,
|
|
257
286
|
timezone
|
|
258
287
|
};
|
|
259
|
-
const gridLabelId = `${id}-grid-label`;
|
|
260
|
-
const hasFocus = focusedView !== null;
|
|
261
288
|
const prevOpenViewRef = React.useRef(view);
|
|
262
289
|
React.useEffect(() => {
|
|
263
290
|
// If the view change and the focus was on the previous view
|
|
@@ -276,26 +303,7 @@ const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps
|
|
|
276
303
|
className: (0, _clsx.default)(classes.root, className),
|
|
277
304
|
ownerState: ownerState
|
|
278
305
|
}, other, {
|
|
279
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
280
|
-
views: views,
|
|
281
|
-
view: view,
|
|
282
|
-
currentMonth: calendarState.currentMonth,
|
|
283
|
-
onViewChange: setView,
|
|
284
|
-
onMonthChange: (newMonth, direction) => handleChangeMonth({
|
|
285
|
-
newMonth,
|
|
286
|
-
direction
|
|
287
|
-
}),
|
|
288
|
-
minDate: minDateWithDisabled,
|
|
289
|
-
maxDate: maxDateWithDisabled,
|
|
290
|
-
disabled: disabled,
|
|
291
|
-
disablePast: disablePast,
|
|
292
|
-
disableFuture: disableFuture,
|
|
293
|
-
reduceAnimations: reduceAnimations,
|
|
294
|
-
labelId: gridLabelId,
|
|
295
|
-
slots: slots,
|
|
296
|
-
slotProps: slotProps,
|
|
297
|
-
timezone: timezone
|
|
298
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(DateCalendarViewTransitionContainer, {
|
|
306
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CalendarHeader, (0, _extends2.default)({}, calendarHeaderProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(DateCalendarViewTransitionContainer, {
|
|
299
307
|
reduceAnimations: reduceAnimations,
|
|
300
308
|
className: classes.viewTransitionContainer,
|
|
301
309
|
transKey: view,
|
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
DateCalendar: true,
|
|
8
|
+
getDateCalendarUtilityClass: true,
|
|
9
|
+
dateCalendarClasses: true,
|
|
10
|
+
dayPickerClasses: true,
|
|
11
|
+
pickersFadeTransitionGroupClasses: true,
|
|
12
|
+
pickersSlideTransitionClasses: true
|
|
13
|
+
};
|
|
6
14
|
Object.defineProperty(exports, "DateCalendar", {
|
|
7
15
|
enumerable: true,
|
|
8
16
|
get: function () {
|
|
@@ -27,12 +35,6 @@ Object.defineProperty(exports, "getDateCalendarUtilityClass", {
|
|
|
27
35
|
return _dateCalendarClasses.getDateCalendarUtilityClass;
|
|
28
36
|
}
|
|
29
37
|
});
|
|
30
|
-
Object.defineProperty(exports, "pickersCalendarHeaderClasses", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
get: function () {
|
|
33
|
-
return _pickersCalendarHeaderClasses.pickersCalendarHeaderClasses;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
38
|
Object.defineProperty(exports, "pickersFadeTransitionGroupClasses", {
|
|
37
39
|
enumerable: true,
|
|
38
40
|
get: function () {
|
|
@@ -48,6 +50,17 @@ Object.defineProperty(exports, "pickersSlideTransitionClasses", {
|
|
|
48
50
|
var _DateCalendar = require("./DateCalendar");
|
|
49
51
|
var _dateCalendarClasses = require("./dateCalendarClasses");
|
|
50
52
|
var _dayCalendarClasses = require("./dayCalendarClasses");
|
|
51
|
-
var _pickersCalendarHeaderClasses = require("./pickersCalendarHeaderClasses");
|
|
52
53
|
var _pickersFadeTransitionGroupClasses = require("./pickersFadeTransitionGroupClasses");
|
|
53
|
-
var _pickersSlideTransitionClasses = require("./pickersSlideTransitionClasses");
|
|
54
|
+
var _pickersSlideTransitionClasses = require("./pickersSlideTransitionClasses");
|
|
55
|
+
var _PickersCalendarHeader = require("../PickersCalendarHeader");
|
|
56
|
+
Object.keys(_PickersCalendarHeader).forEach(function (key) {
|
|
57
|
+
if (key === "default" || key === "__esModule") return;
|
|
58
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
59
|
+
if (key in exports && exports[key] === _PickersCalendarHeader[key]) return;
|
|
60
|
+
Object.defineProperty(exports, key, {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _PickersCalendarHeader[key];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
});
|
|
@@ -47,8 +47,8 @@ const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref)
|
|
|
47
47
|
textFieldProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
|
|
48
48
|
|
|
49
49
|
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
50
|
-
textFieldProps.inputProps = (0, _extends2.default)({},
|
|
51
|
-
textFieldProps.InputProps = (0, _extends2.default)({},
|
|
50
|
+
textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
|
|
51
|
+
textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
|
|
52
52
|
const _useDateField = (0, _useDateField2.useDateField)({
|
|
53
53
|
props: textFieldProps,
|
|
54
54
|
inputRef: externalInputRef
|
|
@@ -47,8 +47,8 @@ const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inPro
|
|
|
47
47
|
textFieldProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
|
|
48
48
|
|
|
49
49
|
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
50
|
-
textFieldProps.inputProps = (0, _extends2.default)({},
|
|
51
|
-
textFieldProps.InputProps = (0, _extends2.default)({},
|
|
50
|
+
textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
|
|
51
|
+
textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
|
|
52
52
|
const _useDateTimeField = (0, _useDateTimeField2.useDateTimeField)({
|
|
53
53
|
props: textFieldProps,
|
|
54
54
|
inputRef: externalInputRef
|
|
@@ -56,7 +56,7 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
56
56
|
props,
|
|
57
57
|
valueManager: _valueManagers.singleItemValueManager,
|
|
58
58
|
valueType: 'date',
|
|
59
|
-
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
59
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
60
60
|
validator: _internals.validateDate
|
|
61
61
|
});
|
|
62
62
|
return renderPicker();
|
|
@@ -92,7 +92,7 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
92
92
|
props,
|
|
93
93
|
valueManager: _valueManagers.singleItemValueManager,
|
|
94
94
|
valueType: 'date-time',
|
|
95
|
-
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
95
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
96
96
|
validator: _validateDateTime.validateDateTime
|
|
97
97
|
});
|
|
98
98
|
return renderPicker();
|
|
@@ -79,7 +79,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
79
79
|
props,
|
|
80
80
|
valueManager: _valueManagers.singleItemValueManager,
|
|
81
81
|
valueType: 'time',
|
|
82
|
-
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
82
|
+
getOpenDialogAriaText: props.localeText?.openTimePickerDialogue ?? localeText.openTimePickerDialogue,
|
|
83
83
|
validator: _validateTime.validateTime
|
|
84
84
|
});
|
|
85
85
|
return renderPicker();
|
|
@@ -222,7 +222,7 @@ const DigitalClock = /*#__PURE__*/React.forwardRef(function DigitalClock(inProps
|
|
|
222
222
|
const startOfDay = utils.startOfDay(valueOrReferenceDate);
|
|
223
223
|
return [startOfDay, ...Array.from({
|
|
224
224
|
length: Math.ceil(24 * 60 / timeStep) - 1
|
|
225
|
-
}, (_, index) => utils.addMinutes(startOfDay, timeStep * (index + 1)))
|
|
225
|
+
}, (_, index) => utils.addMinutes(startOfDay, timeStep * (index + 1)))];
|
|
226
226
|
}, [valueOrReferenceDate, timeStep, utils]);
|
|
227
227
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(DigitalClockRoot, (0, _extends2.default)({
|
|
228
228
|
ref: handleRef,
|
|
@@ -53,7 +53,7 @@ const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker
|
|
|
53
53
|
props,
|
|
54
54
|
valueManager: _valueManagers.singleItemValueManager,
|
|
55
55
|
valueType: 'date',
|
|
56
|
-
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
56
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
57
57
|
validator: _internals.validateDate
|
|
58
58
|
});
|
|
59
59
|
return renderPicker();
|
|
@@ -64,7 +64,7 @@ const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTi
|
|
|
64
64
|
props,
|
|
65
65
|
valueManager: _valueManagers.singleItemValueManager,
|
|
66
66
|
valueType: 'date-time',
|
|
67
|
-
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
67
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
68
68
|
validator: _validateDateTime.validateDateTime
|
|
69
69
|
});
|
|
70
70
|
return renderPicker();
|
|
@@ -57,7 +57,7 @@ const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker
|
|
|
57
57
|
props,
|
|
58
58
|
valueManager: _valueManagers.singleItemValueManager,
|
|
59
59
|
valueType: 'time',
|
|
60
|
-
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
60
|
+
getOpenDialogAriaText: props.localeText?.openTimePickerDialogue ?? localeText.openTimePickerDialogue,
|
|
61
61
|
validator: _validateTime.validateTime
|
|
62
62
|
});
|
|
63
63
|
return renderPicker();
|