@mui/x-date-pickers 7.0.0-alpha.2 → 7.0.0-alpha.4

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.
Files changed (242) hide show
  1. package/AdapterDateFns/AdapterDateFns.js +10 -14
  2. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
  3. package/AdapterDayjs/AdapterDayjs.js +11 -8
  4. package/AdapterLuxon/AdapterLuxon.d.ts +28 -28
  5. package/AdapterLuxon/AdapterLuxon.js +29 -17
  6. package/AdapterMoment/AdapterMoment.d.ts +1 -1
  7. package/AdapterMoment/AdapterMoment.js +14 -14
  8. package/AdapterMomentHijri/AdapterMomentHijri.d.ts +0 -1
  9. package/AdapterMomentHijri/AdapterMomentHijri.js +1 -24
  10. package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +0 -2
  11. package/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -26
  12. package/CHANGELOG.md +364 -0
  13. package/DateCalendar/DateCalendar.js +2 -2
  14. package/DateCalendar/DayCalendar.d.ts +3 -3
  15. package/DateCalendar/useCalendarState.js +0 -1
  16. package/DatePicker/DatePicker.js +2 -2
  17. package/DateTimePicker/DateTimePicker.js +2 -2
  18. package/DesktopDatePicker/DesktopDatePicker.js +2 -2
  19. package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  20. package/MobileDatePicker/MobileDatePicker.js +2 -2
  21. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  22. package/MonthCalendar/MonthCalendar.js +0 -1
  23. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
  24. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +3 -2
  25. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
  26. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  27. package/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  28. package/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  29. package/PickersShortcuts/PickersShortcuts.d.ts +1 -1
  30. package/PickersShortcuts/PickersShortcuts.js +1 -1
  31. package/README.md +0 -1
  32. package/StaticDatePicker/StaticDatePicker.js +2 -2
  33. package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  34. package/TimeClock/Clock.js +0 -1
  35. package/TimeClock/ClockPointer.js +0 -1
  36. package/YearCalendar/YearCalendar.js +0 -1
  37. package/index.js +1 -1
  38. package/internals/components/PickersTextField/Outline.d.ts +8 -0
  39. package/internals/components/PickersTextField/Outline.js +97 -0
  40. package/internals/components/PickersTextField/PickersInput.d.ts +3 -0
  41. package/internals/components/PickersTextField/PickersInput.js +269 -0
  42. package/internals/components/PickersTextField/PickersInput.types.d.ts +45 -0
  43. package/internals/components/PickersTextField/PickersInput.types.js +1 -0
  44. package/internals/components/PickersTextField/PickersTextField.d.ts +3 -0
  45. package/internals/components/PickersTextField/PickersTextField.js +129 -0
  46. package/internals/components/PickersTextField/PickersTextField.types.d.ts +21 -0
  47. package/internals/components/PickersTextField/PickersTextField.types.js +1 -0
  48. package/internals/components/PickersTextField/index.d.ts +1 -0
  49. package/internals/components/PickersTextField/index.js +1 -0
  50. package/internals/components/PickersTextField/pickersTextFieldClasses.d.ts +46 -0
  51. package/internals/components/PickersTextField/pickersTextFieldClasses.js +9 -0
  52. package/internals/constants/dimensions.d.ts +1 -1
  53. package/internals/constants/dimensions.js +1 -1
  54. package/internals/demo/DemoContainer.d.ts +4 -0
  55. package/internals/demo/DemoContainer.js +47 -19
  56. package/internals/hooks/useClockReferenceDate.js +0 -1
  57. package/internals/hooks/useField/useField.utils.js +23 -12
  58. package/internals/hooks/usePicker/usePickerValue.js +2 -6
  59. package/internals/hooks/usePicker/usePickerValue.types.d.ts +2 -2
  60. package/internals/hooks/useViews.js +0 -1
  61. package/legacy/AdapterDateFns/AdapterDateFns.js +10 -14
  62. package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
  63. package/legacy/AdapterDayjs/AdapterDayjs.js +11 -8
  64. package/legacy/AdapterLuxon/AdapterLuxon.js +30 -18
  65. package/legacy/AdapterMoment/AdapterMoment.js +326 -320
  66. package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +4 -25
  67. package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -30
  68. package/legacy/DateCalendar/DateCalendar.js +2 -2
  69. package/legacy/DateCalendar/useCalendarState.js +0 -1
  70. package/legacy/DatePicker/DatePicker.js +2 -2
  71. package/legacy/DateTimePicker/DateTimePicker.js +2 -2
  72. package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -2
  73. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  74. package/legacy/MobileDatePicker/MobileDatePicker.js +2 -2
  75. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  76. package/legacy/MonthCalendar/MonthCalendar.js +0 -1
  77. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
  78. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
  79. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  80. package/legacy/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  81. package/legacy/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  82. package/legacy/PickersShortcuts/PickersShortcuts.js +2 -1
  83. package/legacy/StaticDatePicker/StaticDatePicker.js +2 -2
  84. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  85. package/legacy/TimeClock/Clock.js +0 -1
  86. package/legacy/TimeClock/ClockPointer.js +0 -1
  87. package/legacy/YearCalendar/YearCalendar.js +0 -1
  88. package/legacy/index.js +1 -1
  89. package/legacy/internals/components/PickersTextField/Outline.js +97 -0
  90. package/legacy/internals/components/PickersTextField/PickersInput.js +277 -0
  91. package/legacy/internals/components/PickersTextField/PickersInput.types.js +1 -0
  92. package/legacy/internals/components/PickersTextField/PickersTextField.js +129 -0
  93. package/legacy/internals/components/PickersTextField/PickersTextField.types.js +1 -0
  94. package/legacy/internals/components/PickersTextField/index.js +1 -0
  95. package/legacy/internals/components/PickersTextField/pickersTextFieldClasses.js +9 -0
  96. package/legacy/internals/constants/dimensions.js +1 -1
  97. package/legacy/internals/demo/DemoContainer.js +45 -19
  98. package/legacy/internals/hooks/useClockReferenceDate.js +0 -1
  99. package/legacy/internals/hooks/useField/useField.utils.js +23 -12
  100. package/legacy/internals/hooks/usePicker/usePickerValue.js +2 -6
  101. package/legacy/internals/hooks/useViews.js +0 -1
  102. package/legacy/locales/plPL.js +0 -1
  103. package/legacy/locales/svSE.js +0 -1
  104. package/legacy/locales/urPK.js +0 -1
  105. package/locales/beBY.d.ts +18 -5
  106. package/locales/caES.d.ts +18 -5
  107. package/locales/csCZ.d.ts +18 -5
  108. package/locales/daDK.d.ts +18 -5
  109. package/locales/deDE.d.ts +18 -5
  110. package/locales/elGR.d.ts +18 -5
  111. package/locales/enUS.d.ts +18 -5
  112. package/locales/esES.d.ts +18 -5
  113. package/locales/eu.d.ts +18 -5
  114. package/locales/faIR.d.ts +18 -5
  115. package/locales/fiFI.d.ts +18 -5
  116. package/locales/frFR.d.ts +18 -5
  117. package/locales/heIL.d.ts +18 -5
  118. package/locales/huHU.d.ts +18 -5
  119. package/locales/isIS.d.ts +18 -5
  120. package/locales/itIT.d.ts +18 -5
  121. package/locales/jaJP.d.ts +18 -5
  122. package/locales/koKR.d.ts +18 -5
  123. package/locales/kzKZ.d.ts +18 -5
  124. package/locales/mk.d.ts +18 -5
  125. package/locales/nbNO.d.ts +18 -5
  126. package/locales/nlNL.d.ts +18 -5
  127. package/locales/plPL.d.ts +18 -5
  128. package/locales/plPL.js +0 -1
  129. package/locales/ptBR.d.ts +18 -5
  130. package/locales/roRO.d.ts +18 -5
  131. package/locales/ruRU.d.ts +18 -5
  132. package/locales/skSK.d.ts +18 -5
  133. package/locales/svSE.d.ts +18 -5
  134. package/locales/svSE.js +0 -1
  135. package/locales/trTR.d.ts +18 -5
  136. package/locales/ukUA.d.ts +18 -5
  137. package/locales/urPK.d.ts +18 -5
  138. package/locales/urPK.js +0 -1
  139. package/locales/utils/getPickersLocalization.d.ts +18 -5
  140. package/locales/utils/pickersLocaleTextApi.d.ts +18 -5
  141. package/locales/viVN.d.ts +18 -5
  142. package/locales/zhCN.d.ts +18 -5
  143. package/locales/zhHK.d.ts +18 -5
  144. package/modern/AdapterDateFns/AdapterDateFns.js +10 -14
  145. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
  146. package/modern/AdapterDayjs/AdapterDayjs.js +11 -8
  147. package/modern/AdapterLuxon/AdapterLuxon.js +28 -17
  148. package/modern/AdapterMoment/AdapterMoment.js +14 -14
  149. package/modern/AdapterMomentHijri/AdapterMomentHijri.js +1 -24
  150. package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -26
  151. package/modern/DateCalendar/DateCalendar.js +2 -2
  152. package/modern/DateCalendar/useCalendarState.js +0 -1
  153. package/modern/DatePicker/DatePicker.js +2 -2
  154. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  155. package/modern/DesktopDatePicker/DesktopDatePicker.js +2 -2
  156. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  157. package/modern/MobileDatePicker/MobileDatePicker.js +2 -2
  158. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  159. package/modern/MonthCalendar/MonthCalendar.js +0 -1
  160. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
  161. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
  162. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  163. package/modern/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  164. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  165. package/modern/PickersShortcuts/PickersShortcuts.js +1 -1
  166. package/modern/StaticDatePicker/StaticDatePicker.js +2 -2
  167. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  168. package/modern/TimeClock/Clock.js +0 -1
  169. package/modern/TimeClock/ClockPointer.js +0 -1
  170. package/modern/YearCalendar/YearCalendar.js +0 -1
  171. package/modern/index.js +1 -1
  172. package/modern/internals/components/PickersTextField/Outline.js +97 -0
  173. package/modern/internals/components/PickersTextField/PickersInput.js +268 -0
  174. package/modern/internals/components/PickersTextField/PickersInput.types.js +1 -0
  175. package/modern/internals/components/PickersTextField/PickersTextField.js +129 -0
  176. package/modern/internals/components/PickersTextField/PickersTextField.types.js +1 -0
  177. package/modern/internals/components/PickersTextField/index.js +1 -0
  178. package/modern/internals/components/PickersTextField/pickersTextFieldClasses.js +9 -0
  179. package/modern/internals/constants/dimensions.js +1 -1
  180. package/modern/internals/demo/DemoContainer.js +47 -19
  181. package/modern/internals/hooks/useClockReferenceDate.js +0 -1
  182. package/modern/internals/hooks/useField/useField.utils.js +23 -12
  183. package/modern/internals/hooks/usePicker/usePickerValue.js +2 -6
  184. package/modern/internals/hooks/useViews.js +0 -1
  185. package/modern/locales/plPL.js +0 -1
  186. package/modern/locales/svSE.js +0 -1
  187. package/modern/locales/urPK.js +0 -1
  188. package/node/AdapterDateFns/AdapterDateFns.js +10 -14
  189. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
  190. package/node/AdapterDayjs/AdapterDayjs.js +10 -7
  191. package/node/AdapterLuxon/AdapterLuxon.js +28 -17
  192. package/node/AdapterMoment/AdapterMoment.js +14 -14
  193. package/node/AdapterMomentHijri/AdapterMomentHijri.js +1 -24
  194. package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -26
  195. package/node/DateCalendar/DateCalendar.js +2 -2
  196. package/node/DateCalendar/useCalendarState.js +0 -1
  197. package/node/DatePicker/DatePicker.js +2 -2
  198. package/node/DateTimePicker/DateTimePicker.js +2 -2
  199. package/node/DesktopDatePicker/DesktopDatePicker.js +2 -2
  200. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  201. package/node/MobileDatePicker/MobileDatePicker.js +2 -2
  202. package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  203. package/node/MonthCalendar/MonthCalendar.js +0 -1
  204. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
  205. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
  206. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  207. package/node/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  208. package/node/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  209. package/node/PickersShortcuts/PickersShortcuts.js +1 -1
  210. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  211. package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  212. package/node/TimeClock/Clock.js +0 -1
  213. package/node/TimeClock/ClockPointer.js +0 -1
  214. package/node/YearCalendar/YearCalendar.js +0 -1
  215. package/node/index.js +1 -1
  216. package/node/internals/components/PickersTextField/Outline.js +106 -0
  217. package/node/internals/components/PickersTextField/PickersInput.js +276 -0
  218. package/node/internals/components/PickersTextField/PickersInput.types.js +5 -0
  219. package/node/internals/components/PickersTextField/PickersTextField.js +137 -0
  220. package/node/internals/components/PickersTextField/PickersTextField.types.js +5 -0
  221. package/node/internals/components/PickersTextField/index.js +12 -0
  222. package/node/internals/components/PickersTextField/pickersTextFieldClasses.js +17 -0
  223. package/node/internals/constants/dimensions.js +1 -1
  224. package/node/internals/demo/DemoContainer.js +47 -19
  225. package/node/internals/hooks/useClockReferenceDate.js +0 -1
  226. package/node/internals/hooks/useField/useField.utils.js +23 -12
  227. package/node/internals/hooks/usePicker/usePickerValue.js +2 -6
  228. package/node/internals/hooks/useViews.js +0 -1
  229. package/node/locales/plPL.js +0 -1
  230. package/node/locales/svSE.js +0 -1
  231. package/node/locales/urPK.js +0 -1
  232. package/package.json +5 -5
  233. package/internals/components/FakeTextField/FakeTextField.d.ts +0 -22
  234. package/internals/components/FakeTextField/FakeTextField.js +0 -44
  235. package/internals/components/FakeTextField/index.d.ts +0 -1
  236. package/internals/components/FakeTextField/index.js +0 -1
  237. package/legacy/internals/components/FakeTextField/FakeTextField.js +0 -49
  238. package/legacy/internals/components/FakeTextField/index.js +0 -1
  239. package/modern/internals/components/FakeTextField/FakeTextField.js +0 -44
  240. package/modern/internals/components/FakeTextField/index.js +0 -1
  241. package/node/internals/components/FakeTextField/FakeTextField.js +0 -52
  242. package/node/internals/components/FakeTextField/index.js +0 -12
@@ -381,10 +381,10 @@ export class AdapterDateFns {
381
381
  return isBefore(value, comparing);
382
382
  };
383
383
  this.isBeforeYear = (value, comparing) => {
384
- return isBefore(value, startOfYear(comparing));
384
+ return isBefore(value, this.startOfYear(comparing));
385
385
  };
386
386
  this.isBeforeDay = (value, comparing) => {
387
- return isBefore(value, startOfDay(comparing));
387
+ return isBefore(value, this.startOfDay(comparing));
388
388
  };
389
389
  this.isWithinRange = (value, [start, end]) => {
390
390
  return isWithinInterval(value, {
@@ -487,20 +487,16 @@ export class AdapterDateFns {
487
487
  return getDaysInMonth(value);
488
488
  };
489
489
  this.getWeekArray = value => {
490
- const start = startOfWeek(startOfMonth(value), {
491
- locale: this.locale
492
- });
493
- const end = endOfWeek(endOfMonth(value), {
494
- locale: this.locale
495
- });
490
+ const start = this.startOfWeek(this.startOfMonth(value));
491
+ const end = this.endOfWeek(this.endOfMonth(value));
496
492
  let count = 0;
497
493
  let current = start;
498
494
  const nestedWeeks = [];
499
- while (isBefore(current, end)) {
495
+ while (this.isBefore(current, end)) {
500
496
  const weekNumber = Math.floor(count / 7);
501
497
  nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
502
498
  nestedWeeks[weekNumber].push(current);
503
- current = addDays(current, 1);
499
+ current = this.addDays(current, 1);
504
500
  count += 1;
505
501
  }
506
502
  return nestedWeeks;
@@ -511,13 +507,13 @@ export class AdapterDateFns {
511
507
  });
512
508
  };
513
509
  this.getYearRange = ([start, end]) => {
514
- const startDate = startOfYear(start);
515
- const endDate = endOfYear(end);
510
+ const startDate = this.startOfYear(start);
511
+ const endDate = this.endOfYear(end);
516
512
  const years = [];
517
513
  let current = startDate;
518
- while (isBefore(current, endDate)) {
514
+ while (this.isBefore(current, endDate)) {
519
515
  years.push(current);
520
- current = addYears(current, 1);
516
+ current = this.addYears(current, 1);
521
517
  }
522
518
  return years;
523
519
  };
@@ -384,19 +384,19 @@ export class AdapterDateFnsJalali {
384
384
  return isAfter(value, comparing);
385
385
  };
386
386
  this.isAfterYear = (value, comparing) => {
387
- return isAfter(value, endOfYear(comparing));
387
+ return isAfter(value, this.endOfYear(comparing));
388
388
  };
389
389
  this.isAfterDay = (value, comparing) => {
390
- return isAfter(value, endOfDay(comparing));
390
+ return isAfter(value, this.endOfDay(comparing));
391
391
  };
392
392
  this.isBefore = (value, comparing) => {
393
393
  return isBefore(value, comparing);
394
394
  };
395
395
  this.isBeforeYear = (value, comparing) => {
396
- return isBefore(value, startOfYear(comparing));
396
+ return isBefore(value, this.startOfYear(comparing));
397
397
  };
398
398
  this.isBeforeDay = (value, comparing) => {
399
- return isBefore(value, startOfDay(comparing));
399
+ return isBefore(value, this.startOfDay(comparing));
400
400
  };
401
401
  this.isWithinRange = (value, [start, end]) => {
402
402
  return isWithinInterval(value, {
@@ -499,20 +499,16 @@ export class AdapterDateFnsJalali {
499
499
  return getDaysInMonth(value);
500
500
  };
501
501
  this.getWeekArray = value => {
502
- const start = startOfWeek(startOfMonth(value), {
503
- locale: this.locale
504
- });
505
- const end = endOfWeek(endOfMonth(value), {
506
- locale: this.locale
507
- });
502
+ const start = this.startOfWeek(this.startOfMonth(value));
503
+ const end = this.endOfWeek(this.endOfMonth(value));
508
504
  let count = 0;
509
505
  let current = start;
510
506
  const nestedWeeks = [];
511
- while (isBefore(current, end)) {
507
+ while (this.isBefore(current, end)) {
512
508
  const weekNumber = Math.floor(count / 7);
513
509
  nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
514
510
  nestedWeeks[weekNumber].push(current);
515
- current = addDays(current, 1);
511
+ current = this.addDays(current, 1);
516
512
  count += 1;
517
513
  }
518
514
  return nestedWeeks;
@@ -523,13 +519,13 @@ export class AdapterDateFnsJalali {
523
519
  });
524
520
  };
525
521
  this.getYearRange = ([start, end]) => {
526
- const startDate = startOfYear(start);
527
- const endDate = endOfYear(end);
522
+ const startDate = this.startOfYear(start);
523
+ const endDate = this.endOfYear(end);
528
524
  const years = [];
529
525
  let current = startDate;
530
- while (isBefore(current, endDate)) {
526
+ while (this.isBefore(current, endDate)) {
531
527
  years.push(current);
532
- current = addYears(current, 1);
528
+ current = this.addYears(current, 1);
533
529
  }
534
530
  return years;
535
531
  };
@@ -1,13 +1,13 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  /* eslint-disable class-methods-use-this */
3
3
  import defaultDayjs from 'dayjs';
4
- import weekOfYear from 'dayjs/plugin/weekOfYear';
4
+ import weekOfYearPlugin from 'dayjs/plugin/weekOfYear';
5
5
  import customParseFormatPlugin from 'dayjs/plugin/customParseFormat';
6
6
  import localizedFormatPlugin from 'dayjs/plugin/localizedFormat';
7
7
  import isBetweenPlugin from 'dayjs/plugin/isBetween';
8
8
  import { buildWarning } from '../internals/utils/warning';
9
- defaultDayjs.extend(customParseFormatPlugin);
10
9
  defaultDayjs.extend(localizedFormatPlugin);
10
+ defaultDayjs.extend(weekOfYearPlugin);
11
11
  defaultDayjs.extend(isBetweenPlugin);
12
12
  const localeNotFoundWarning = buildWarning(['Your locale has not been found.', 'Either the locale key is not a supported one. Locales supported by dayjs are available here: https://github.com/iamkun/dayjs/tree/dev/src/locale', "Or you forget to import the locale from 'dayjs/locale/{localeUsed}'", 'fallback on English locale']);
13
13
  const formatTokenMap = {
@@ -506,8 +506,8 @@ export class AdapterDayjs {
506
506
  };
507
507
  this.getWeekArray = value => {
508
508
  const cleanValue = this.setLocaleToValue(value);
509
- const start = cleanValue.startOf('month').startOf('week');
510
- const end = cleanValue.endOf('month').endOf('week');
509
+ const start = this.startOfWeek(this.startOfMonth(cleanValue));
510
+ const end = this.endOfWeek(this.endOfMonth(cleanValue));
511
511
  let count = 0;
512
512
  let current = start;
513
513
  const nestedWeeks = [];
@@ -524,11 +524,11 @@ export class AdapterDayjs {
524
524
  return value.week();
525
525
  };
526
526
  this.getYearRange = ([start, end]) => {
527
- const startDate = start.startOf('year');
528
- const endDate = end.endOf('year');
527
+ const startDate = this.startOfYear(start);
528
+ const endDate = this.endOfYear(end);
529
529
  const years = [];
530
530
  let current = startDate;
531
- while (current < endDate) {
531
+ while (this.isBefore(current, endDate)) {
532
532
  years.push(current);
533
533
  current = this.addYears(current, 1);
534
534
  }
@@ -537,6 +537,9 @@ export class AdapterDayjs {
537
537
  this.dayjs = withLocale(defaultDayjs, _locale);
538
538
  this.locale = _locale;
539
539
  this.formats = _extends({}, defaultFormats, formats);
540
- defaultDayjs.extend(weekOfYear);
540
+
541
+ // Moved plugins to the constructor to allow for users to use options on the library
542
+ // for reference: https://github.com/mui/mui-x/pull/11151
543
+ defaultDayjs.extend(customParseFormatPlugin);
541
544
  }
542
545
  }
@@ -38,12 +38,12 @@ export declare class AdapterLuxon implements MuiPickersAdapter<DateTime, string>
38
38
  formatTokenMap: FieldFormatTokenMap;
39
39
  constructor({ locale, formats }?: AdapterOptions<string, never>);
40
40
  private setLocaleToValue;
41
- date: <T extends string | null | undefined>(value?: T | undefined, timezone?: PickersTimezone) => DateBuilderReturnType<T, DateTime>;
42
- getInvalidDate: () => DateTime;
41
+ date: <T extends string | null | undefined>(value?: T | undefined, timezone?: PickersTimezone) => DateBuilderReturnType<T, DateTime<boolean>>;
42
+ getInvalidDate: () => DateTime<true> | DateTime<false>;
43
43
  getTimezone: (value: DateTime) => string;
44
44
  setTimezone: (value: DateTime, timezone: PickersTimezone) => DateTime;
45
45
  toJsDate: (value: DateTime) => Date;
46
- parse: (value: string, formatString: string) => DateTime | null;
46
+ parse: (value: string, formatString: string) => DateTime<true> | DateTime<false> | null;
47
47
  getCurrentLocaleCode: () => string;
48
48
  is12HourCycleInCurrentLocale: () => boolean;
49
49
  expandFormat: (format: string) => string;
@@ -63,21 +63,21 @@ export declare class AdapterLuxon implements MuiPickersAdapter<DateTime, string>
63
63
  isBeforeYear: (value: DateTime, comparing: DateTime) => boolean;
64
64
  isBeforeDay: (value: DateTime, comparing: DateTime) => boolean;
65
65
  isWithinRange: (value: DateTime, [start, end]: [DateTime, DateTime]) => boolean;
66
- startOfYear: (value: DateTime) => DateTime;
67
- startOfMonth: (value: DateTime) => DateTime;
68
- startOfWeek: (value: DateTime) => DateTime;
69
- startOfDay: (value: DateTime) => DateTime;
70
- endOfYear: (value: DateTime) => DateTime;
71
- endOfMonth: (value: DateTime) => DateTime;
72
- endOfWeek: (value: DateTime) => DateTime;
73
- endOfDay: (value: DateTime) => DateTime;
74
- addYears: (value: DateTime, amount: number) => DateTime;
75
- addMonths: (value: DateTime, amount: number) => DateTime;
76
- addWeeks: (value: DateTime, amount: number) => DateTime;
77
- addDays: (value: DateTime, amount: number) => DateTime;
78
- addHours: (value: DateTime, amount: number) => DateTime;
79
- addMinutes: (value: DateTime, amount: number) => DateTime;
80
- addSeconds: (value: DateTime, amount: number) => DateTime;
66
+ startOfYear: (value: DateTime) => DateTime<boolean>;
67
+ startOfMonth: (value: DateTime) => DateTime<boolean>;
68
+ startOfWeek: (value: DateTime) => DateTime<boolean>;
69
+ startOfDay: (value: DateTime) => DateTime<boolean>;
70
+ endOfYear: (value: DateTime) => DateTime<boolean>;
71
+ endOfMonth: (value: DateTime) => DateTime<boolean>;
72
+ endOfWeek: (value: DateTime) => DateTime<boolean>;
73
+ endOfDay: (value: DateTime) => DateTime<boolean>;
74
+ addYears: (value: DateTime, amount: number) => DateTime<boolean>;
75
+ addMonths: (value: DateTime, amount: number) => DateTime<boolean>;
76
+ addWeeks: (value: DateTime, amount: number) => DateTime<boolean>;
77
+ addDays: (value: DateTime, amount: number) => DateTime<boolean>;
78
+ addHours: (value: DateTime, amount: number) => DateTime<boolean>;
79
+ addMinutes: (value: DateTime, amount: number) => DateTime<boolean>;
80
+ addSeconds: (value: DateTime, amount: number) => DateTime<boolean>;
81
81
  getYear: (value: DateTime) => number;
82
82
  getMonth: (value: DateTime) => number;
83
83
  getDate: (value: DateTime) => number;
@@ -85,15 +85,15 @@ export declare class AdapterLuxon implements MuiPickersAdapter<DateTime, string>
85
85
  getMinutes: (value: DateTime) => number;
86
86
  getSeconds: (value: DateTime) => number;
87
87
  getMilliseconds: (value: DateTime) => number;
88
- setYear: (value: DateTime, year: number) => DateTime;
89
- setMonth: (value: DateTime, month: number) => DateTime;
90
- setDate: (value: DateTime, date: number) => DateTime;
91
- setHours: (value: DateTime, hours: number) => DateTime;
92
- setMinutes: (value: DateTime, minutes: number) => DateTime;
93
- setSeconds: (value: DateTime, seconds: number) => DateTime;
94
- setMilliseconds: (value: DateTime, milliseconds: number) => DateTime;
88
+ setYear: (value: DateTime, year: number) => DateTime<boolean>;
89
+ setMonth: (value: DateTime, month: number) => DateTime<boolean>;
90
+ setDate: (value: DateTime, date: number) => DateTime<boolean>;
91
+ setHours: (value: DateTime, hours: number) => DateTime<boolean>;
92
+ setMinutes: (value: DateTime, minutes: number) => DateTime<boolean>;
93
+ setSeconds: (value: DateTime, seconds: number) => DateTime<boolean>;
94
+ setMilliseconds: (value: DateTime, milliseconds: number) => DateTime<boolean>;
95
95
  getDaysInMonth: (value: DateTime) => import("luxon").PossibleDaysInMonth;
96
- getWeekArray: (value: DateTime) => DateTime[][];
97
- getWeekNumber: (value: DateTime) => number;
98
- getYearRange: ([start, end]: [DateTime, DateTime]) => DateTime[];
96
+ getWeekArray: (value: DateTime) => DateTime<boolean>[][];
97
+ getWeekNumber: (value: DateTime) => any;
98
+ getYearRange: ([start, end]: [DateTime, DateTime]) => DateTime<boolean>[];
99
99
  }
@@ -231,7 +231,6 @@ export class AdapterLuxon {
231
231
  if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {
232
232
  return true; // Luxon defaults to en-US if Intl not found
233
233
  }
234
-
235
234
  return Boolean((_Intl$DateTimeFormat = new Intl.DateTimeFormat(this.locale, {
236
235
  hour: 'numeric'
237
236
  })) == null || (_Intl$DateTimeFormat = _Intl$DateTimeFormat.resolvedOptions()) == null ? void 0 : _Intl$DateTimeFormat.hour12);
@@ -308,12 +307,12 @@ export class AdapterLuxon {
308
307
  };
309
308
  this.isAfterYear = (value, comparing) => {
310
309
  const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
311
- const diff = value.diff(comparingInValueTimezone.endOf('year'), 'years').toObject();
310
+ const diff = value.diff(this.endOfYear(comparingInValueTimezone), 'years').toObject();
312
311
  return diff.years > 0;
313
312
  };
314
313
  this.isAfterDay = (value, comparing) => {
315
314
  const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
316
- const diff = value.diff(comparingInValueTimezone.endOf('day'), 'days').toObject();
315
+ const diff = value.diff(this.endOfDay(comparingInValueTimezone), 'days').toObject();
317
316
  return diff.days > 0;
318
317
  };
319
318
  this.isBefore = (value, comparing) => {
@@ -321,12 +320,12 @@ export class AdapterLuxon {
321
320
  };
322
321
  this.isBeforeYear = (value, comparing) => {
323
322
  const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
324
- const diff = value.diff(comparingInValueTimezone.startOf('year'), 'years').toObject();
323
+ const diff = value.diff(this.startOfYear(comparingInValueTimezone), 'years').toObject();
325
324
  return diff.years < 0;
326
325
  };
327
326
  this.isBeforeDay = (value, comparing) => {
328
327
  const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
329
- const diff = value.diff(comparingInValueTimezone.startOf('day'), 'days').toObject();
328
+ const diff = value.diff(this.startOfDay(comparingInValueTimezone), 'days').toObject();
330
329
  return diff.days < 0;
331
330
  };
332
331
  this.isWithinRange = (value, [start, end]) => {
@@ -339,7 +338,12 @@ export class AdapterLuxon {
339
338
  return value.startOf('month');
340
339
  };
341
340
  this.startOfWeek = value => {
342
- return value.startOf('week');
341
+ return value.startOf('week',
342
+ // TODO: remove when `@types/luxon` add support for the parameter.
343
+ // @ts-ignore
344
+ {
345
+ useLocaleWeeks: true
346
+ });
343
347
  };
344
348
  this.startOfDay = value => {
345
349
  return value.startOf('day');
@@ -351,7 +355,12 @@ export class AdapterLuxon {
351
355
  return value.endOf('month');
352
356
  };
353
357
  this.endOfWeek = value => {
354
- return value.endOf('week');
358
+ return value.endOf('week',
359
+ // TODO: remove when `@types/luxon` add support for the parameter.
360
+ // @ts-ignore
361
+ {
362
+ useLocaleWeeks: true
363
+ });
355
364
  };
356
365
  this.endOfDay = value => {
357
366
  return value.endOf('day');
@@ -453,11 +462,13 @@ export class AdapterLuxon {
453
462
  };
454
463
  this.getWeekArray = value => {
455
464
  const cleanValue = this.setLocaleToValue(value);
465
+ const firstDay = this.startOfWeek(this.startOfMonth(cleanValue));
466
+ const lastDay = this.endOfWeek(this.endOfMonth(cleanValue));
456
467
  const {
457
468
  days
458
- } = cleanValue.endOf('month').endOf('week').diff(cleanValue.startOf('month').startOf('week'), 'days').toObject();
469
+ } = lastDay.diff(firstDay, 'days').toObject();
459
470
  const weeks = [];
460
- new Array(Math.round(days)).fill(0).map((_, i) => i).map(day => cleanValue.startOf('month').startOf('week').plus({
471
+ new Array(Math.round(days)).fill(0).map((_, i) => i).map(day => firstDay.plus({
461
472
  days: day
462
473
  })).forEach((v, i) => {
463
474
  if (i === 0 || i % 7 === 0 && i > 6) {
@@ -469,18 +480,19 @@ export class AdapterLuxon {
469
480
  return weeks;
470
481
  };
471
482
  this.getWeekNumber = value => {
472
- return value.weekNumber;
483
+ var _value$localeWeekNumb;
484
+ // TODO: remove when `@types/luxon` add support for the parameter.
485
+ // @ts-ignore
486
+ return (_value$localeWeekNumb = value.localeWeekNumber) != null ? _value$localeWeekNumb : value.weekNumber;
473
487
  };
474
488
  this.getYearRange = ([start, end]) => {
475
- const startDate = start.startOf('year');
476
- const endDate = end.endOf('year');
477
- let current = startDate;
489
+ const startDate = this.startOfYear(start);
490
+ const endDate = this.endOfYear(end);
478
491
  const years = [];
479
- while (current < endDate) {
492
+ let current = startDate;
493
+ while (this.isBefore(current, endDate)) {
480
494
  years.push(current);
481
- current = current.plus({
482
- year: 1
483
- });
495
+ current = this.addYears(current, 1);
484
496
  }
485
497
  return years;
486
498
  };
@@ -100,5 +100,5 @@ export declare class AdapterMoment implements MuiPickersAdapter<Moment, string>
100
100
  getDaysInMonth: (value: Moment) => number;
101
101
  getWeekArray: (value: Moment) => defaultMoment.Moment[][];
102
102
  getWeekNumber: (value: Moment) => number;
103
- getYearRange: ([start, end]: [Moment, Moment]) => defaultMoment.Moment[];
103
+ getYearRange([start, end]: [Moment, Moment]): defaultMoment.Moment[];
104
104
  }
@@ -427,8 +427,8 @@ export class AdapterMoment {
427
427
  };
428
428
  this.getWeekArray = value => {
429
429
  const cleanValue = this.setLocaleToValue(value);
430
- const start = cleanValue.clone().startOf('month').startOf('week');
431
- const end = cleanValue.clone().endOf('month').endOf('week');
430
+ const start = this.startOfWeek(this.startOfMonth(cleanValue));
431
+ const end = this.endOfWeek(this.endOfMonth(cleanValue));
432
432
  let count = 0;
433
433
  let current = start;
434
434
  const nestedWeeks = [];
@@ -436,7 +436,7 @@ export class AdapterMoment {
436
436
  const weekNumber = Math.floor(count / 7);
437
437
  nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
438
438
  nestedWeeks[weekNumber].push(current);
439
- current = current.clone().add(1, 'day');
439
+ current = this.addDays(current, 1);
440
440
  count += 1;
441
441
  }
442
442
  return nestedWeeks;
@@ -444,19 +444,19 @@ export class AdapterMoment {
444
444
  this.getWeekNumber = value => {
445
445
  return value.week();
446
446
  };
447
- this.getYearRange = ([start, end]) => {
448
- const startDate = this.moment(start).startOf('year');
449
- const endDate = this.moment(end).endOf('year');
450
- const years = [];
451
- let current = startDate;
452
- while (current.isBefore(endDate)) {
453
- years.push(current);
454
- current = current.clone().add(1, 'year');
455
- }
456
- return years;
457
- };
458
447
  this.moment = instance || defaultMoment;
459
448
  this.locale = locale;
460
449
  this.formats = _extends({}, defaultFormats, formats);
461
450
  }
451
+ getYearRange([start, end]) {
452
+ const startDate = this.startOfYear(start);
453
+ const endDate = this.endOfYear(end);
454
+ const years = [];
455
+ let current = startDate;
456
+ while (this.isBefore(current, endDate)) {
457
+ years.push(current);
458
+ current = this.addYears(current, 1);
459
+ }
460
+ return years;
461
+ }
462
462
  }
@@ -49,7 +49,6 @@ export declare class AdapterMomentHijri extends AdapterMoment implements MuiPick
49
49
  setYear: (value: Moment, year: number) => defaultHMoment.Moment;
50
50
  setMonth: (value: Moment, month: number) => defaultHMoment.Moment;
51
51
  setDate: (value: Moment, date: number) => defaultHMoment.Moment;
52
- getWeekArray: (value: Moment) => defaultHMoment.Moment[][];
53
52
  getWeekNumber: (value: Moment) => number;
54
53
  getYearRange: ([start, end]: [Moment, Moment]) => defaultHMoment.Moment[];
55
54
  }
@@ -198,21 +198,6 @@ export class AdapterMomentHijri extends AdapterMoment {
198
198
  this.setDate = (value, date) => {
199
199
  return value.clone().iDate(date);
200
200
  };
201
- this.getWeekArray = value => {
202
- const start = value.clone().startOf('iMonth').startOf('week');
203
- const end = value.clone().endOf('iMonth').endOf('week');
204
- let count = 0;
205
- let current = start;
206
- const nestedWeeks = [];
207
- while (current.isBefore(end)) {
208
- const weekNumber = Math.floor(count / 7);
209
- nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
210
- nestedWeeks[weekNumber].push(current);
211
- current = current.clone().add(1, 'day');
212
- count += 1;
213
- }
214
- return nestedWeeks;
215
- };
216
201
  this.getWeekNumber = value => {
217
202
  return value.iWeek();
218
203
  };
@@ -225,15 +210,7 @@ export class AdapterMomentHijri extends AdapterMoment {
225
210
  if (end.isAfter('2076-11-26')) {
226
211
  throw new Error('max date must be on or before 1499-12-29 H (2076-11-26)');
227
212
  }
228
- const startDate = this.moment(start).startOf('iYear');
229
- const endDate = this.moment(end).endOf('iYear');
230
- const years = [];
231
- let current = startDate;
232
- while (current.isBefore(endDate)) {
233
- years.push(current);
234
- current = current.clone().add(1, 'iYear');
235
- }
236
- return years;
213
+ return super.getYearRange([start, end]);
237
214
  };
238
215
  this.moment = instance || defaultHMoment;
239
216
  this.locale = 'ar-SA';
@@ -53,7 +53,5 @@ export declare class AdapterMomentJalaali extends AdapterMoment implements MuiPi
53
53
  setYear: (value: Moment, year: number) => defaultJMoment.Moment;
54
54
  setMonth: (value: Moment, month: number) => defaultJMoment.Moment;
55
55
  setDate: (value: Moment, date: number) => defaultJMoment.Moment;
56
- getWeekArray: (value: Moment) => defaultJMoment.Moment[][];
57
56
  getWeekNumber: (value: Moment) => number;
58
- getYearRange: ([start, end]: [Moment, Moment]) => defaultJMoment.Moment[];
59
57
  }
@@ -212,35 +212,9 @@ export class AdapterMomentJalaali extends AdapterMoment {
212
212
  this.setDate = (value, date) => {
213
213
  return value.clone().jDate(date);
214
214
  };
215
- this.getWeekArray = value => {
216
- const start = value.clone().startOf('jMonth').startOf('week');
217
- const end = value.clone().endOf('jMonth').endOf('week');
218
- let count = 0;
219
- let current = start;
220
- const nestedWeeks = [];
221
- while (current.isBefore(end)) {
222
- const weekNumber = Math.floor(count / 7);
223
- nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
224
- nestedWeeks[weekNumber].push(current);
225
- current = current.clone().add(1, 'day');
226
- count += 1;
227
- }
228
- return nestedWeeks;
229
- };
230
215
  this.getWeekNumber = value => {
231
216
  return value.jWeek();
232
217
  };
233
- this.getYearRange = ([start, end]) => {
234
- const startDate = this.moment(start).startOf('jYear');
235
- const endDate = this.moment(end).endOf('jYear');
236
- const years = [];
237
- let current = startDate;
238
- while (current.isBefore(endDate)) {
239
- years.push(current);
240
- current = current.clone().add(1, 'jYear');
241
- }
242
- return years;
243
- };
244
218
  this.moment = instance || defaultJMoment;
245
219
  this.locale = 'fa';
246
220
  this.formats = _extends({}, defaultFormats, formats);