@mui/x-date-pickers 6.18.1 → 7.0.0-alpha.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.
Files changed (269) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +4 -15
  2. package/AdapterDateFns/AdapterDateFns.js +8 -90
  3. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +4 -15
  4. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +8 -90
  5. package/AdapterDayjs/AdapterDayjs.d.ts +5 -17
  6. package/AdapterDayjs/AdapterDayjs.js +11 -60
  7. package/AdapterLuxon/AdapterLuxon.d.ts +4 -15
  8. package/AdapterLuxon/AdapterLuxon.js +16 -76
  9. package/AdapterMoment/AdapterMoment.d.ts +4 -20
  10. package/AdapterMoment/AdapterMoment.js +9 -66
  11. package/AdapterMomentHijri/AdapterMomentHijri.d.ts +1 -7
  12. package/AdapterMomentHijri/AdapterMomentHijri.js +1 -30
  13. package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +1 -9
  14. package/AdapterMomentJalaali/AdapterMomentJalaali.js +1 -40
  15. package/CHANGELOG.md +558 -1
  16. package/DateCalendar/DateCalendar.js +4 -21
  17. package/DateCalendar/DateCalendar.types.d.ts +12 -3
  18. package/DateCalendar/DayCalendar.d.ts +13 -5
  19. package/DateCalendar/DayCalendar.js +12 -21
  20. package/DateCalendar/index.d.ts +0 -1
  21. package/DateCalendar/index.js +1 -3
  22. package/DateCalendar/useCalendarState.js +2 -3
  23. package/DateField/DateField.js +5 -21
  24. package/DateField/DateField.types.d.ts +12 -3
  25. package/DatePicker/DatePicker.js +0 -13
  26. package/DatePicker/DatePicker.types.d.ts +1 -14
  27. package/DatePicker/shared.d.ts +4 -16
  28. package/DatePicker/shared.js +2 -5
  29. package/DateTimeField/DateTimeField.js +5 -21
  30. package/DateTimeField/DateTimeField.types.d.ts +2 -15
  31. package/DateTimePicker/DateTimePicker.js +0 -13
  32. package/DateTimePicker/DateTimePicker.types.d.ts +1 -14
  33. package/DateTimePicker/shared.d.ts +4 -17
  34. package/DateTimePicker/shared.js +4 -7
  35. package/DesktopDatePicker/DesktopDatePicker.js +0 -13
  36. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +2 -15
  37. package/DesktopDateTimePicker/DesktopDateTimePicker.js +0 -13
  38. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -15
  39. package/DesktopTimePicker/DesktopTimePicker.js +0 -12
  40. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -15
  41. package/DigitalClock/DigitalClock.js +18 -26
  42. package/DigitalClock/DigitalClock.types.d.ts +2 -15
  43. package/LocalizationProvider/LocalizationProvider.js +0 -6
  44. package/MobileDatePicker/MobileDatePicker.js +0 -13
  45. package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -15
  46. package/MobileDateTimePicker/MobileDateTimePicker.js +0 -13
  47. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +2 -15
  48. package/MobileTimePicker/MobileTimePicker.js +0 -12
  49. package/MobileTimePicker/MobileTimePicker.types.d.ts +2 -15
  50. package/MonthCalendar/MonthCalendar.js +3 -7
  51. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +7 -18
  52. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +3 -15
  53. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +2 -1
  54. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +16 -6
  55. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +1 -2
  56. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
  57. package/PickersCalendarHeader/PickersCalendarHeader.js +14 -20
  58. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +3 -16
  59. package/PickersLayout/PickersLayout.js +0 -12
  60. package/PickersLayout/PickersLayout.types.d.ts +6 -19
  61. package/PickersLayout/usePickerLayout.js +2 -7
  62. package/StaticDatePicker/StaticDatePicker.js +0 -13
  63. package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -14
  64. package/StaticDateTimePicker/StaticDateTimePicker.js +0 -13
  65. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -14
  66. package/StaticTimePicker/StaticTimePicker.js +0 -12
  67. package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -14
  68. package/TimeClock/TimeClock.js +3 -20
  69. package/TimeClock/TimeClock.types.d.ts +1 -14
  70. package/TimeField/TimeField.js +5 -21
  71. package/TimeField/TimeField.types.d.ts +2 -15
  72. package/TimePicker/TimePicker.js +0 -12
  73. package/TimePicker/TimePicker.types.d.ts +1 -14
  74. package/TimePicker/shared.d.ts +3 -16
  75. package/TimePicker/shared.js +4 -7
  76. package/YearCalendar/YearCalendar.js +4 -8
  77. package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +2 -2
  78. package/dateTimeViewRenderers/dateTimeViewRenderers.js +2 -8
  79. package/dateViewRenderers/dateViewRenderers.d.ts +1 -1
  80. package/dateViewRenderers/dateViewRenderers.js +0 -4
  81. package/hooks/useClearableField.d.ts +1 -3
  82. package/hooks/useClearableField.js +6 -8
  83. package/index.d.ts +1 -0
  84. package/index.js +4 -1
  85. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +10 -6
  86. package/internals/components/PickersModalDialog.d.ts +4 -5
  87. package/internals/components/PickersPopper.d.ts +5 -6
  88. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +7 -8
  89. package/internals/hooks/useField/useField.types.d.ts +2 -2
  90. package/internals/hooks/useField/useField.utils.js +0 -1
  91. package/internals/hooks/useField/useFieldState.js +1 -1
  92. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +3 -4
  93. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +1 -14
  94. package/internals/index.d.ts +0 -2
  95. package/internals/index.js +0 -1
  96. package/internals/utils/getDefaultReferenceDate.d.ts +1 -2
  97. package/internals/utils/getDefaultReferenceDate.js +0 -4
  98. package/legacy/AdapterDateFns/AdapterDateFns.js +11 -92
  99. package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +11 -92
  100. package/legacy/AdapterDayjs/AdapterDayjs.js +15 -63
  101. package/legacy/AdapterLuxon/AdapterLuxon.js +19 -78
  102. package/legacy/AdapterMoment/AdapterMoment.js +12 -70
  103. package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +5 -30
  104. package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +5 -40
  105. package/legacy/DateCalendar/DateCalendar.js +4 -21
  106. package/legacy/DateCalendar/DayCalendar.js +10 -16
  107. package/legacy/DateCalendar/index.js +1 -3
  108. package/legacy/DateCalendar/useCalendarState.js +2 -3
  109. package/legacy/DateField/DateField.js +6 -22
  110. package/legacy/DatePicker/DatePicker.js +0 -13
  111. package/legacy/DatePicker/shared.js +2 -5
  112. package/legacy/DateTimeField/DateTimeField.js +6 -22
  113. package/legacy/DateTimePicker/DateTimePicker.js +0 -13
  114. package/legacy/DateTimePicker/shared.js +4 -7
  115. package/legacy/DesktopDatePicker/DesktopDatePicker.js +0 -13
  116. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +0 -13
  117. package/legacy/DesktopTimePicker/DesktopTimePicker.js +0 -12
  118. package/legacy/DigitalClock/DigitalClock.js +20 -26
  119. package/legacy/LocalizationProvider/LocalizationProvider.js +0 -6
  120. package/legacy/MobileDatePicker/MobileDatePicker.js +0 -13
  121. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +0 -13
  122. package/legacy/MobileTimePicker/MobileTimePicker.js +0 -12
  123. package/legacy/MonthCalendar/MonthCalendar.js +3 -6
  124. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -18
  125. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +16 -6
  126. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +15 -10
  127. package/legacy/PickersCalendarHeader/PickersCalendarHeader.js +14 -20
  128. package/legacy/PickersLayout/PickersLayout.js +0 -12
  129. package/legacy/PickersLayout/usePickerLayout.js +2 -7
  130. package/legacy/StaticDatePicker/StaticDatePicker.js +0 -13
  131. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +0 -13
  132. package/legacy/StaticTimePicker/StaticTimePicker.js +0 -12
  133. package/legacy/TimeClock/TimeClock.js +3 -20
  134. package/legacy/TimeField/TimeField.js +5 -21
  135. package/legacy/TimePicker/TimePicker.js +0 -12
  136. package/legacy/TimePicker/shared.js +4 -7
  137. package/legacy/YearCalendar/YearCalendar.js +4 -7
  138. package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +2 -8
  139. package/legacy/dateViewRenderers/dateViewRenderers.js +0 -4
  140. package/legacy/hooks/useClearableField.js +6 -8
  141. package/legacy/index.js +4 -1
  142. package/legacy/internals/hooks/useField/useField.utils.js +0 -1
  143. package/legacy/internals/hooks/useField/useFieldState.js +1 -1
  144. package/legacy/internals/index.js +0 -1
  145. package/legacy/internals/utils/getDefaultReferenceDate.js +0 -6
  146. package/legacy/locales/esES.js +6 -7
  147. package/legacy/locales/eu.js +94 -0
  148. package/legacy/locales/index.js +1 -0
  149. package/legacy/timeViewRenderers/timeViewRenderers.js +0 -12
  150. package/locales/esES.js +6 -7
  151. package/locales/eu.d.ts +54 -0
  152. package/locales/eu.js +58 -0
  153. package/locales/index.d.ts +1 -0
  154. package/locales/index.js +1 -0
  155. package/models/adapters.d.ts +10 -135
  156. package/models/fields.d.ts +0 -6
  157. package/modern/AdapterDateFns/AdapterDateFns.js +8 -90
  158. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +8 -90
  159. package/modern/AdapterDayjs/AdapterDayjs.js +11 -59
  160. package/modern/AdapterLuxon/AdapterLuxon.js +16 -76
  161. package/modern/AdapterMoment/AdapterMoment.js +9 -65
  162. package/modern/AdapterMomentHijri/AdapterMomentHijri.js +1 -30
  163. package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +1 -40
  164. package/modern/DateCalendar/DateCalendar.js +3 -20
  165. package/modern/DateCalendar/DayCalendar.js +11 -19
  166. package/modern/DateCalendar/index.js +1 -3
  167. package/modern/DateCalendar/useCalendarState.js +2 -3
  168. package/modern/DateField/DateField.js +4 -20
  169. package/modern/DatePicker/DatePicker.js +0 -13
  170. package/modern/DatePicker/shared.js +1 -4
  171. package/modern/DateTimeField/DateTimeField.js +4 -20
  172. package/modern/DateTimePicker/DateTimePicker.js +0 -13
  173. package/modern/DateTimePicker/shared.js +3 -6
  174. package/modern/DesktopDatePicker/DesktopDatePicker.js +0 -13
  175. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +0 -13
  176. package/modern/DesktopTimePicker/DesktopTimePicker.js +0 -12
  177. package/modern/DigitalClock/DigitalClock.js +17 -25
  178. package/modern/LocalizationProvider/LocalizationProvider.js +0 -6
  179. package/modern/MobileDatePicker/MobileDatePicker.js +0 -13
  180. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +0 -13
  181. package/modern/MobileTimePicker/MobileTimePicker.js +0 -12
  182. package/modern/MonthCalendar/MonthCalendar.js +3 -7
  183. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +7 -18
  184. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +16 -6
  185. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
  186. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +13 -19
  187. package/modern/PickersLayout/PickersLayout.js +0 -12
  188. package/modern/PickersLayout/usePickerLayout.js +2 -7
  189. package/modern/StaticDatePicker/StaticDatePicker.js +0 -13
  190. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +0 -13
  191. package/modern/StaticTimePicker/StaticTimePicker.js +0 -12
  192. package/modern/TimeClock/TimeClock.js +3 -20
  193. package/modern/TimeField/TimeField.js +4 -20
  194. package/modern/TimePicker/TimePicker.js +0 -12
  195. package/modern/TimePicker/shared.js +3 -6
  196. package/modern/YearCalendar/YearCalendar.js +4 -8
  197. package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +1 -7
  198. package/modern/dateViewRenderers/dateViewRenderers.js +0 -4
  199. package/modern/hooks/useClearableField.js +5 -7
  200. package/modern/index.js +4 -1
  201. package/modern/internals/hooks/useField/useField.utils.js +0 -1
  202. package/modern/internals/hooks/useField/useFieldState.js +1 -1
  203. package/modern/internals/index.js +0 -1
  204. package/modern/internals/utils/getDefaultReferenceDate.js +0 -1
  205. package/modern/locales/esES.js +6 -7
  206. package/modern/locales/eu.js +58 -0
  207. package/modern/locales/index.js +1 -0
  208. package/modern/timeViewRenderers/timeViewRenderers.js +0 -12
  209. package/node/AdapterDateFns/AdapterDateFns.js +8 -90
  210. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +8 -90
  211. package/node/AdapterDayjs/AdapterDayjs.js +11 -59
  212. package/node/AdapterLuxon/AdapterLuxon.js +16 -76
  213. package/node/AdapterMoment/AdapterMoment.js +9 -65
  214. package/node/AdapterMomentHijri/AdapterMomentHijri.js +1 -30
  215. package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +1 -40
  216. package/node/DateCalendar/DateCalendar.js +3 -20
  217. package/node/DateCalendar/DayCalendar.js +11 -19
  218. package/node/DateCalendar/index.js +1 -21
  219. package/node/DateCalendar/useCalendarState.js +1 -2
  220. package/node/DateField/DateField.js +4 -20
  221. package/node/DatePicker/DatePicker.js +0 -13
  222. package/node/DatePicker/shared.js +1 -4
  223. package/node/DateTimeField/DateTimeField.js +4 -20
  224. package/node/DateTimePicker/DateTimePicker.js +0 -13
  225. package/node/DateTimePicker/shared.js +3 -6
  226. package/node/DesktopDatePicker/DesktopDatePicker.js +0 -13
  227. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +0 -13
  228. package/node/DesktopTimePicker/DesktopTimePicker.js +0 -12
  229. package/node/DigitalClock/DigitalClock.js +17 -25
  230. package/node/LocalizationProvider/LocalizationProvider.js +0 -6
  231. package/node/MobileDatePicker/MobileDatePicker.js +0 -13
  232. package/node/MobileDateTimePicker/MobileDateTimePicker.js +0 -13
  233. package/node/MobileTimePicker/MobileTimePicker.js +0 -12
  234. package/node/MonthCalendar/MonthCalendar.js +3 -7
  235. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +7 -18
  236. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +16 -6
  237. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
  238. package/node/PickersCalendarHeader/PickersCalendarHeader.js +13 -19
  239. package/node/PickersLayout/PickersLayout.js +0 -12
  240. package/node/PickersLayout/usePickerLayout.js +2 -7
  241. package/node/StaticDatePicker/StaticDatePicker.js +0 -13
  242. package/node/StaticDateTimePicker/StaticDateTimePicker.js +0 -13
  243. package/node/StaticTimePicker/StaticTimePicker.js +0 -12
  244. package/node/TimeClock/TimeClock.js +3 -20
  245. package/node/TimeField/TimeField.js +4 -20
  246. package/node/TimePicker/TimePicker.js +0 -12
  247. package/node/TimePicker/shared.js +3 -6
  248. package/node/YearCalendar/YearCalendar.js +4 -8
  249. package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +1 -7
  250. package/node/dateViewRenderers/dateViewRenderers.js +0 -4
  251. package/node/hooks/useClearableField.js +5 -7
  252. package/node/index.js +13 -1
  253. package/node/internals/hooks/useField/useField.utils.js +0 -1
  254. package/node/internals/hooks/useField/useFieldState.js +1 -1
  255. package/node/internals/index.js +0 -7
  256. package/node/internals/utils/getDefaultReferenceDate.js +1 -3
  257. package/node/locales/esES.js +6 -7
  258. package/node/locales/eu.js +64 -0
  259. package/node/locales/index.js +11 -0
  260. package/node/timeViewRenderers/timeViewRenderers.js +0 -12
  261. package/package.json +1 -1
  262. package/themeAugmentation/overrides.d.ts +1 -1
  263. package/timeViewRenderers/timeViewRenderers.d.ts +3 -3
  264. package/timeViewRenderers/timeViewRenderers.js +0 -12
  265. package/internals/utils/slots-migration.d.ts +0 -36
  266. package/internals/utils/slots-migration.js +0 -13
  267. package/legacy/internals/utils/slots-migration.js +0 -14
  268. package/modern/internals/utils/slots-migration.js +0 -13
  269. package/node/internals/utils/slots-migration.js +0 -21
@@ -1,5 +1,5 @@
1
1
  import { DateTime } from 'luxon';
2
- import { AdapterFormats, AdapterOptions, AdapterUnits, DateBuilderReturnType, FieldFormatTokenMap, MuiPickersAdapter, PickersTimezone } from '../models';
2
+ import { AdapterFormats, AdapterOptions, DateBuilderReturnType, FieldFormatTokenMap, MuiPickersAdapter, PickersTimezone } from '../models';
3
3
  /**
4
4
  * Based on `@date-io/luxon`
5
5
  *
@@ -43,20 +43,15 @@ export declare class AdapterLuxon implements MuiPickersAdapter<DateTime, string>
43
43
  getTimezone: (value: DateTime) => string;
44
44
  setTimezone: (value: DateTime, timezone: PickersTimezone) => DateTime;
45
45
  toJsDate: (value: DateTime) => Date;
46
- parseISO: (isoString: string) => DateTime;
47
- toISO: (value: DateTime) => string;
48
46
  parse: (value: string, formatString: string) => DateTime | null;
49
47
  getCurrentLocaleCode: () => string;
50
48
  is12HourCycleInCurrentLocale: () => boolean;
51
49
  expandFormat: (format: string) => string;
52
- getFormatHelperText: (format: string) => string;
53
- isNull: (value: DateTime | null) => boolean;
54
- isValid: (value: any) => boolean;
50
+ isValid: (value: DateTime | null) => boolean;
55
51
  format: (value: DateTime, formatKey: keyof AdapterFormats) => string;
56
52
  formatByString: (value: DateTime, format: string) => string;
57
53
  formatNumber: (numberToFormat: string) => string;
58
- getDiff: (value: DateTime, comparing: DateTime | string, unit?: AdapterUnits) => number;
59
- isEqual: (value: any, comparing: any) => boolean;
54
+ isEqual: (value: DateTime | null, comparing: DateTime | null) => boolean;
60
55
  isSameYear: (value: DateTime, comparing: DateTime) => boolean;
61
56
  isSameMonth: (value: DateTime, comparing: DateTime) => boolean;
62
57
  isSameDay: (value: DateTime, comparing: DateTime) => boolean;
@@ -98,13 +93,7 @@ export declare class AdapterLuxon implements MuiPickersAdapter<DateTime, string>
98
93
  setSeconds: (value: DateTime, seconds: number) => DateTime;
99
94
  setMilliseconds: (value: DateTime, milliseconds: number) => DateTime;
100
95
  getDaysInMonth: (value: DateTime) => import("luxon").PossibleDaysInMonth;
101
- getNextMonth: (value: DateTime) => DateTime;
102
- getPreviousMonth: (value: DateTime) => DateTime;
103
- getMonthArray: (value: DateTime) => DateTime[];
104
- mergeDateAndTime: (dateParam: DateTime, timeParam: DateTime) => DateTime;
105
- getWeekdays: () => string[];
106
96
  getWeekArray: (value: DateTime) => DateTime[][];
107
97
  getWeekNumber: (value: DateTime) => number;
108
- getYearRange: (start: DateTime, end: DateTime) => DateTime[];
109
- getMeridiemText: (ampm: 'am' | 'pm') => string;
98
+ getYearRange: ([start, end]: [DateTime, DateTime]) => DateTime[];
110
99
  }
@@ -120,19 +120,13 @@ const defaultFormats = {
120
120
  minutes: 'mm',
121
121
  seconds: 'ss',
122
122
  fullDate: 'DD',
123
- fullDateWithWeekday: 'DDDD',
124
123
  keyboardDate: 'D',
125
124
  shortDate: 'MMM d',
126
125
  normalDate: 'd MMMM',
127
126
  normalDateWithWeekday: 'EEE, MMM d',
128
- monthAndYear: 'LLLL yyyy',
129
- monthAndDate: 'MMMM d',
130
127
  fullTime: 't',
131
128
  fullTime12h: 'hh:mm a',
132
129
  fullTime24h: 'HH:mm',
133
- fullDateTime: 'ff',
134
- fullDateTime12h: 'DD, hh:mm a',
135
- fullDateTime24h: 'DD, T',
136
130
  keyboardDateTime: 'D t',
137
131
  keyboardDateTime12h: 'D hh:mm a',
138
132
  keyboardDateTime24h: 'D T'
@@ -241,14 +235,6 @@ export class AdapterLuxon {
241
235
  this.toJsDate = value => {
242
236
  return value.toJSDate();
243
237
  };
244
- this.parseISO = isoString => {
245
- return DateTime.fromISO(isoString);
246
- };
247
- this.toISO = value => {
248
- return value.toUTC().toISO({
249
- format: 'extended'
250
- });
251
- };
252
238
  this.parse = (value, formatString) => {
253
239
  if (value === '') {
254
240
  return null;
@@ -273,35 +259,36 @@ export class AdapterLuxon {
273
259
  };
274
260
  this.expandFormat = format => {
275
261
  // Extract escaped section to avoid extending them
276
- const longFormatRegexp = /''|'(''|[^'])+('|$)|[^']*/g;
277
- return format.match(longFormatRegexp).map(token => {
262
+ const catchEscapedSectionsRegexp = /''|'(''|[^'])+('|$)|[^']*/g;
263
+
264
+ // Extract words to test if they are a token or a word to escape.
265
+ const catchWordsRegexp = /(?:^|[^a-z])([a-z]+)(?:[^a-z]|$)|([a-z]+)/gi;
266
+ return format.match(catchEscapedSectionsRegexp).map(token => {
278
267
  const firstCharacter = token[0];
279
268
  if (firstCharacter === "'") {
280
269
  return token;
281
270
  }
282
- return DateTime.expandFormat(token, {
271
+ const expandedToken = DateTime.expandFormat(token, {
283
272
  locale: this.locale
284
273
  });
274
+ return expandedToken.replace(catchWordsRegexp, (correspondance, g1, g2) => {
275
+ const word = g1 || g2; // words are either in group 1 or group 2
276
+ if (word === 'yyyyy' || formatTokenMap[word] !== undefined) {
277
+ return correspondance;
278
+ }
279
+ return `'${correspondance}'`;
280
+ });
285
281
  }).join('')
286
282
  // The returned format can contain `yyyyy` which means year between 4 and 6 digits.
287
283
  // This value is supported by luxon parser but not luxon formatter.
288
284
  // To avoid conflicts, we replace it by 4 digits which is enough for most use-cases.
289
285
  .replace('yyyyy', 'yyyy');
290
286
  };
291
- this.getFormatHelperText = format => {
292
- return this.expandFormat(format).replace(/(a)/g, '(a|p)m').toLocaleLowerCase();
293
- };
294
- this.isNull = value => {
295
- return value === null;
296
- };
297
287
  this.isValid = value => {
298
- if (DateTime.isDateTime(value)) {
299
- return value.isValid;
300
- }
301
288
  if (value === null) {
302
289
  return false;
303
290
  }
304
- return this.isValid(this.date(value));
291
+ return value.isValid;
305
292
  };
306
293
  this.format = (value, formatKey) => {
307
294
  return this.formatByString(value, this.formats[formatKey]);
@@ -312,25 +299,14 @@ export class AdapterLuxon {
312
299
  this.formatNumber = numberToFormat => {
313
300
  return numberToFormat;
314
301
  };
315
- this.getDiff = (value, comparing, unit) => {
316
- if (typeof comparing === 'string') {
317
- comparing = DateTime.fromJSDate(new Date(comparing));
318
- }
319
- if (unit) {
320
- return Math.floor(value.diff(comparing).as(unit));
321
- }
322
- return value.diff(comparing).as('millisecond');
323
- };
324
302
  this.isEqual = (value, comparing) => {
325
303
  if (value === null && comparing === null) {
326
304
  return true;
327
305
  }
328
-
329
- // Make sure that null will not be passed to this.date
330
306
  if (value === null || comparing === null) {
331
307
  return false;
332
308
  }
333
- return +this.date(value) === +this.date(comparing);
309
+ return +value === +comparing;
334
310
  };
335
311
  this.isSameYear = (value, comparing) => {
336
312
  const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
@@ -496,37 +472,6 @@ export class AdapterLuxon {
496
472
  this.getDaysInMonth = value => {
497
473
  return value.daysInMonth;
498
474
  };
499
- this.getNextMonth = value => {
500
- return value.plus({
501
- months: 1
502
- });
503
- };
504
- this.getPreviousMonth = value => {
505
- return value.minus({
506
- months: 1
507
- });
508
- };
509
- this.getMonthArray = value => {
510
- const firstMonth = value.startOf('year');
511
- const monthArray = [firstMonth];
512
- while (monthArray.length < 12) {
513
- const prevMonth = monthArray[monthArray.length - 1];
514
- monthArray.push(this.addMonths(prevMonth, 1));
515
- }
516
- return monthArray;
517
- };
518
- this.mergeDateAndTime = (dateParam, timeParam) => {
519
- return dateParam.set({
520
- second: timeParam.second,
521
- hour: timeParam.hour,
522
- minute: timeParam.minute
523
- });
524
- };
525
- this.getWeekdays = () => {
526
- return Info.weekdaysFormat('narrow', {
527
- locale: this.locale
528
- });
529
- };
530
475
  this.getWeekArray = value => {
531
476
  const cleanValue = this.setLocaleToValue(value);
532
477
  const {
@@ -547,7 +492,7 @@ export class AdapterLuxon {
547
492
  this.getWeekNumber = value => {
548
493
  return value.weekNumber;
549
494
  };
550
- this.getYearRange = (start, end) => {
495
+ this.getYearRange = ([start, end]) => {
551
496
  const startDate = start.startOf('year');
552
497
  const endDate = end.endOf('year');
553
498
  let current = startDate;
@@ -560,11 +505,6 @@ export class AdapterLuxon {
560
505
  }
561
506
  return years;
562
507
  };
563
- this.getMeridiemText = ampm => {
564
- return Info.meridiems({
565
- locale: this.locale
566
- }).find(v => v.toLowerCase() === ampm.toLowerCase());
567
- };
568
508
  this.locale = locale || 'en-US';
569
509
  this.formats = _extends({}, defaultFormats, formats);
570
510
  }
@@ -1,5 +1,5 @@
1
1
  import defaultMoment, { Moment } from 'moment';
2
- import { AdapterFormats, AdapterOptions, AdapterUnits, DateBuilderReturnType, FieldFormatTokenMap, MuiPickersAdapter, PickersTimezone } from '../models';
2
+ import { AdapterFormats, AdapterOptions, DateBuilderReturnType, FieldFormatTokenMap, MuiPickersAdapter, PickersTimezone } from '../models';
3
3
  /**
4
4
  * Based on `@date-io/moment`
5
5
  *
@@ -39,11 +39,6 @@ export declare class AdapterMoment implements MuiPickersAdapter<Moment, string>
39
39
  formatTokenMap: FieldFormatTokenMap;
40
40
  constructor({ locale, formats, instance }?: AdapterOptions<string, typeof defaultMoment>);
41
41
  private setLocaleToValue;
42
- /**
43
- * Some methods from moment can't take the locale as a parameter and always use the current locale.
44
- * To respect the adapter locale, we need to set it as the current locale and then reset the previous locale.
45
- */
46
- private syncMomentLocale;
47
42
  private hasTimezonePlugin;
48
43
  private createSystemDate;
49
44
  private createUTCDate;
@@ -53,20 +48,15 @@ export declare class AdapterMoment implements MuiPickersAdapter<Moment, string>
53
48
  getTimezone: (value: Moment) => string;
54
49
  setTimezone: (value: Moment, timezone: PickersTimezone) => Moment;
55
50
  toJsDate: (value: Moment) => Date;
56
- parseISO: (isoString: string) => defaultMoment.Moment;
57
- toISO: (value: Moment) => string;
58
51
  parse: (value: string, format: string) => defaultMoment.Moment | null;
59
52
  getCurrentLocaleCode: () => string;
60
53
  is12HourCycleInCurrentLocale: () => boolean;
61
54
  expandFormat: (format: string) => string;
62
- getFormatHelperText: (format: string) => string;
63
- isNull: (value: Moment | null) => boolean;
64
- isValid: (value: any) => boolean;
55
+ isValid: (value: Moment | null) => boolean;
65
56
  format: (value: Moment, formatKey: keyof AdapterFormats) => string;
66
57
  formatByString: (value: Moment, formatString: string) => string;
67
58
  formatNumber: (numberToFormat: string) => string;
68
- getDiff: (value: Moment, comparing: Moment | string, unit?: AdapterUnits) => number;
69
- isEqual: (value: any, comparing: any) => boolean;
59
+ isEqual: (value: Moment | null, comparing: Moment | null) => boolean;
70
60
  isSameYear: (value: Moment, comparing: Moment) => boolean;
71
61
  isSameMonth: (value: Moment, comparing: Moment) => boolean;
72
62
  isSameDay: (value: Moment, comparing: Moment) => boolean;
@@ -108,13 +98,7 @@ export declare class AdapterMoment implements MuiPickersAdapter<Moment, string>
108
98
  setSeconds: (value: Moment, seconds: number) => defaultMoment.Moment;
109
99
  setMilliseconds: (value: Moment, milliseconds: number) => defaultMoment.Moment;
110
100
  getDaysInMonth: (value: Moment) => number;
111
- getNextMonth: (value: Moment) => defaultMoment.Moment;
112
- getPreviousMonth: (value: Moment) => defaultMoment.Moment;
113
- getMonthArray: (value: Moment) => defaultMoment.Moment[];
114
- mergeDateAndTime: (dateParam: Moment, timeParam: Moment) => defaultMoment.Moment;
115
- getWeekdays: () => string[];
116
101
  getWeekArray: (value: Moment) => defaultMoment.Moment[][];
117
102
  getWeekNumber: (value: Moment) => number;
118
- getYearRange: (start: Moment, end: Moment) => defaultMoment.Moment[];
119
- getMeridiemText: (ampm: 'am' | 'pm') => string;
103
+ getYearRange: ([start, end]: [Moment, Moment]) => defaultMoment.Moment[];
120
104
  }
@@ -109,19 +109,13 @@ const defaultFormats = {
109
109
  minutes: 'mm',
110
110
  seconds: 'ss',
111
111
  fullDate: 'll',
112
- fullDateWithWeekday: 'dddd, LL',
113
112
  keyboardDate: 'L',
114
113
  shortDate: 'MMM D',
115
114
  normalDate: 'D MMMM',
116
115
  normalDateWithWeekday: 'ddd, MMM D',
117
- monthAndYear: 'MMMM YYYY',
118
- monthAndDate: 'MMMM D',
119
116
  fullTime: 'LT',
120
117
  fullTime12h: 'hh:mm A',
121
118
  fullTime24h: 'HH:mm',
122
- fullDateTime: 'lll',
123
- fullDateTime12h: 'll hh:mm A',
124
- fullDateTime24h: 'll HH:mm',
125
119
  keyboardDateTime: 'L LT',
126
120
  keyboardDateTime12h: 'L hh:mm A',
127
121
  keyboardDateTime24h: 'L HH:mm'
@@ -177,22 +171,6 @@ export class AdapterMoment {
177
171
  }
178
172
  return value.locale(expectedLocale);
179
173
  };
180
- /**
181
- * Some methods from moment can't take the locale as a parameter and always use the current locale.
182
- * To respect the adapter locale, we need to set it as the current locale and then reset the previous locale.
183
- */
184
- this.syncMomentLocale = runner => {
185
- var _this$locale;
186
- const momentLocale = defaultMoment.locale();
187
- const adapterLocale = (_this$locale = this.locale) != null ? _this$locale : 'en-us';
188
- if (momentLocale !== adapterLocale) {
189
- defaultMoment.locale(adapterLocale);
190
- const result = runner();
191
- defaultMoment.locale(momentLocale);
192
- return result;
193
- }
194
- return runner();
195
- };
196
174
  this.hasTimezonePlugin = () => typeof this.moment.tz !== 'undefined';
197
175
  this.createSystemDate = value => {
198
176
  const parsedValue = this.moment(value).local();
@@ -279,12 +257,6 @@ export class AdapterMoment {
279
257
  this.toJsDate = value => {
280
258
  return value.toDate();
281
259
  };
282
- this.parseISO = isoString => {
283
- return this.moment(isoString, true);
284
- };
285
- this.toISO = value => {
286
- return value.toISOString();
287
- };
288
260
  this.parse = (value, format) => {
289
261
  if (value === '') {
290
262
  return null;
@@ -311,14 +283,11 @@ export class AdapterMoment {
311
283
  return token;
312
284
  }).join('');
313
285
  };
314
- this.getFormatHelperText = format => {
315
- return this.expandFormat(format).replace(/a/gi, '(a|p)m').toLocaleLowerCase();
316
- };
317
- this.isNull = value => {
318
- return value === null;
319
- };
320
286
  this.isValid = value => {
321
- return this.moment(value).isValid();
287
+ if (value == null) {
288
+ return false;
289
+ }
290
+ return value.isValid();
322
291
  };
323
292
  this.format = (value, formatKey) => {
324
293
  return this.formatByString(value, this.formats[formatKey]);
@@ -331,14 +300,14 @@ export class AdapterMoment {
331
300
  this.formatNumber = numberToFormat => {
332
301
  return numberToFormat;
333
302
  };
334
- this.getDiff = (value, comparing, unit) => {
335
- return value.diff(comparing, unit);
336
- };
337
303
  this.isEqual = (value, comparing) => {
338
304
  if (value === null && comparing === null) {
339
305
  return true;
340
306
  }
341
- return this.moment(value).isSame(comparing);
307
+ if (value === null || comparing === null) {
308
+ return false;
309
+ }
310
+ return value.isSame(comparing);
342
311
  };
343
312
  this.isSameYear = (value, comparing) => {
344
313
  return value.isSame(comparing, 'year');
@@ -463,25 +432,6 @@ export class AdapterMoment {
463
432
  this.getDaysInMonth = value => {
464
433
  return value.daysInMonth();
465
434
  };
466
- this.getNextMonth = value => {
467
- return value.clone().add(1, 'month');
468
- };
469
- this.getPreviousMonth = value => {
470
- return value.clone().subtract(1, 'month');
471
- };
472
- this.getMonthArray = value => {
473
- const firstMonth = this.startOfYear(value);
474
- const monthArray = [firstMonth];
475
- while (monthArray.length < 12) {
476
- const prevMonth = monthArray[monthArray.length - 1];
477
- monthArray.push(this.getNextMonth(prevMonth));
478
- }
479
- return monthArray;
480
- };
481
- this.mergeDateAndTime = (dateParam, timeParam) => {
482
- return dateParam.clone().hour(timeParam.hour()).minute(timeParam.minute()).second(timeParam.second());
483
- };
484
- this.getWeekdays = () => this.syncMomentLocale(() => defaultMoment.weekdaysShort(true));
485
435
  this.getWeekArray = value => {
486
436
  const cleanValue = this.setLocaleToValue(value);
487
437
  const start = cleanValue.clone().startOf('month').startOf('week');
@@ -501,7 +451,7 @@ export class AdapterMoment {
501
451
  this.getWeekNumber = value => {
502
452
  return value.week();
503
453
  };
504
- this.getYearRange = (start, end) => {
454
+ this.getYearRange = ([start, end]) => {
505
455
  const startDate = this.moment(start).startOf('year');
506
456
  const endDate = this.moment(end).endOf('year');
507
457
  const years = [];
@@ -512,13 +462,6 @@ export class AdapterMoment {
512
462
  }
513
463
  return years;
514
464
  };
515
- this.getMeridiemText = ampm => {
516
- if (this.is12HourCycleInCurrentLocale()) {
517
- // AM/PM translation only possible in those who have 12 hour cycle in locale.
518
- return defaultMoment.localeData(this.getCurrentLocaleCode()).meridiem(ampm === 'am' ? 0 : 13, 0, false);
519
- }
520
- return ampm === 'am' ? 'AM' : 'PM'; // fallback for de, ru, ...etc
521
- };
522
465
  this.moment = instance || defaultMoment;
523
466
  this.locale = locale;
524
467
  this.formats = _extends({}, defaultFormats, formats);
@@ -37,9 +37,7 @@ export declare class AdapterMomentHijri extends AdapterMoment implements MuiPick
37
37
  getTimezone: () => string;
38
38
  setTimezone: (value: Moment) => Moment;
39
39
  parse: (value: string, format: string) => defaultHMoment.Moment | null;
40
- getFormatHelperText: (format: string) => string;
41
40
  formatNumber: (numberToFormat: string) => string;
42
- isEqual: (value: any, comparing: any) => boolean;
43
41
  startOfYear: (value: Moment) => defaultHMoment.Moment;
44
42
  startOfMonth: (value: Moment) => defaultHMoment.Moment;
45
43
  endOfYear: (value: Moment) => defaultHMoment.Moment;
@@ -52,11 +50,7 @@ export declare class AdapterMomentHijri extends AdapterMoment implements MuiPick
52
50
  setYear: (value: Moment, year: number) => defaultHMoment.Moment;
53
51
  setMonth: (value: Moment, month: number) => defaultHMoment.Moment;
54
52
  setDate: (value: Moment, date: number) => defaultHMoment.Moment;
55
- getNextMonth: (value: Moment) => defaultHMoment.Moment;
56
- getPreviousMonth: (value: Moment) => defaultHMoment.Moment;
57
- getWeekdays: () => string[];
58
53
  getWeekArray: (value: Moment) => defaultHMoment.Moment[][];
59
54
  getWeekNumber: (value: Moment) => number;
60
- getYearRange: (start: Moment, end: Moment) => defaultHMoment.Moment[];
61
- getMeridiemText: (ampm: 'am' | 'pm') => string;
55
+ getYearRange: ([start, end]: [Moment, Moment]) => defaultHMoment.Moment[];
62
56
  }
@@ -79,19 +79,13 @@ const defaultFormats = {
79
79
  minutes: 'mm',
80
80
  seconds: 'ss',
81
81
  fullDate: 'iYYYY, iMMMM Do',
82
- fullDateWithWeekday: 'iYYYY, iMMMM Do, dddd',
83
82
  keyboardDateTime: 'iYYYY/iMM/iDD LT',
84
83
  shortDate: 'iD iMMM',
85
84
  normalDate: 'dddd, iD iMMM',
86
85
  normalDateWithWeekday: 'DD iMMMM',
87
- monthAndYear: 'iMMMM iYYYY',
88
- monthAndDate: 'iD iMMMM',
89
86
  fullTime: 'LT',
90
87
  fullTime12h: 'hh:mm A',
91
88
  fullTime24h: 'HH:mm',
92
- fullDateTime: 'iYYYY, iMMMM Do, hh:mm A',
93
- fullDateTime12h: 'iD iMMMM hh:mm A',
94
- fullDateTime24h: 'iD iMMMM HH:mm',
95
89
  keyboardDate: 'iYYYY/iMM/iDD',
96
90
  keyboardDateTime12h: 'iYYYY/iMM/iDD hh:mm A',
97
91
  keyboardDateTime24h: 'iYYYY/iMM/iDD HH:mm'
@@ -168,18 +162,9 @@ export class AdapterMomentHijri extends AdapterMoment {
168
162
  }
169
163
  return this.moment(value, format, true).locale('ar-SA');
170
164
  };
171
- this.getFormatHelperText = format => {
172
- return this.expandFormat(format).replace(/a/gi, '(a|p)m').replace('iY', 'Y').replace('iM', 'M').replace('iD', 'D').toLocaleLowerCase();
173
- };
174
165
  this.formatNumber = numberToFormat => {
175
166
  return numberToFormat.replace(/\d/g, match => NUMBER_SYMBOL_MAP[match]).replace(/,/g, '،');
176
167
  };
177
- this.isEqual = (value, comparing) => {
178
- if (value === null && comparing === null) {
179
- return true;
180
- }
181
- return this.moment(value).isSame(comparing);
182
- };
183
168
  this.startOfYear = value => {
184
169
  return value.clone().startOf('iYear');
185
170
  };
@@ -216,17 +201,6 @@ export class AdapterMomentHijri extends AdapterMoment {
216
201
  this.setDate = (value, date) => {
217
202
  return value.clone().iDate(date);
218
203
  };
219
- this.getNextMonth = value => {
220
- return value.clone().add(1, 'iMonth');
221
- };
222
- this.getPreviousMonth = value => {
223
- return value.clone().subtract(1, 'iMonth');
224
- };
225
- this.getWeekdays = () => {
226
- return [0, 1, 2, 3, 4, 5, 6].map(dayOfWeek => {
227
- return this.date().weekday(dayOfWeek).format('dd');
228
- });
229
- };
230
204
  this.getWeekArray = value => {
231
205
  const start = value.clone().startOf('iMonth').startOf('week');
232
206
  const end = value.clone().endOf('iMonth').endOf('week');
@@ -245,7 +219,7 @@ export class AdapterMomentHijri extends AdapterMoment {
245
219
  this.getWeekNumber = value => {
246
220
  return value.iWeek();
247
221
  };
248
- this.getYearRange = (start, end) => {
222
+ this.getYearRange = ([start, end]) => {
249
223
  // moment-hijri only supports dates between 1356-01-01 H and 1499-12-29 H
250
224
  // We need to throw if outside min/max bounds, otherwise the while loop below will be infinite.
251
225
  if (start.isBefore('1937-03-14')) {
@@ -264,9 +238,6 @@ export class AdapterMomentHijri extends AdapterMoment {
264
238
  }
265
239
  return years;
266
240
  };
267
- this.getMeridiemText = ampm => {
268
- return ampm === 'am' ? this.date().hours(2).format('A') : this.date().hours(14).format('A');
269
- };
270
241
  this.moment = instance || defaultHMoment;
271
242
  this.locale = 'ar-SA';
272
243
  this.formats = _extends({}, defaultFormats, formats);
@@ -36,12 +36,8 @@ export declare class AdapterMomentJalaali extends AdapterMoment implements MuiPi
36
36
  dateWithTimezone: <T extends string | null | undefined>(value: T) => DateBuilderReturnType<T, defaultJMoment.Moment>;
37
37
  getTimezone: () => string;
38
38
  setTimezone: (value: Moment) => Moment;
39
- parseISO: (isoString: string) => defaultJMoment.Moment;
40
39
  parse: (value: string, format: string) => defaultJMoment.Moment | null;
41
- getFormatHelperText: (format: string) => string;
42
- isValid: (value: any) => boolean;
43
40
  formatNumber: (numberToFormat: string) => string;
44
- isEqual: (value: any, comparing: any) => boolean;
45
41
  isSameYear: (value: Moment, comparing: Moment) => boolean;
46
42
  isSameMonth: (value: Moment, comparing: Moment) => boolean;
47
43
  isAfterYear: (value: Moment, comparing: Moment) => boolean;
@@ -58,11 +54,7 @@ export declare class AdapterMomentJalaali extends AdapterMoment implements MuiPi
58
54
  setYear: (value: Moment, year: number) => defaultJMoment.Moment;
59
55
  setMonth: (value: Moment, month: number) => defaultJMoment.Moment;
60
56
  setDate: (value: Moment, date: number) => defaultJMoment.Moment;
61
- getNextMonth: (value: Moment) => defaultJMoment.Moment;
62
- getPreviousMonth: (value: Moment) => defaultJMoment.Moment;
63
- getWeekdays: () => string[];
64
57
  getWeekArray: (value: Moment) => defaultJMoment.Moment[][];
65
58
  getWeekNumber: (value: Moment) => number;
66
- getYearRange: (start: Moment, end: Moment) => defaultJMoment.Moment[];
67
- getMeridiemText: (ampm: 'am' | 'pm') => string;
59
+ getYearRange: ([start, end]: [Moment, Moment]) => defaultJMoment.Moment[];
68
60
  }
@@ -77,19 +77,13 @@ const defaultFormats = {
77
77
  minutes: 'mm',
78
78
  seconds: 'ss',
79
79
  fullDate: 'jYYYY, jMMMM Do',
80
- fullDateWithWeekday: 'dddd Do jMMMM jYYYY',
81
80
  keyboardDate: 'jYYYY/jMM/jDD',
82
81
  shortDate: 'jD jMMM',
83
82
  normalDate: 'dddd, jD jMMM',
84
83
  normalDateWithWeekday: 'DD MMMM',
85
- monthAndYear: 'jMMMM jYYYY',
86
- monthAndDate: 'jD jMMMM',
87
84
  fullTime: 'LT',
88
85
  fullTime12h: 'hh:mm A',
89
86
  fullTime24h: 'HH:mm',
90
- fullDateTime: 'jYYYY, jMMMM Do, hh:mm A',
91
- fullDateTime12h: 'jD jMMMM hh:mm A',
92
- fullDateTime24h: 'jD jMMMM HH:mm',
93
87
  keyboardDateTime: 'jYYYY/jMM/jDD LT',
94
88
  keyboardDateTime12h: 'jYYYY/jMM/jDD hh:mm A',
95
89
  keyboardDateTime24h: 'jYYYY/jMM/jDD HH:mm'
@@ -160,34 +154,15 @@ export class AdapterMomentJalaali extends AdapterMoment {
160
154
  this.setTimezone = value => {
161
155
  return value;
162
156
  };
163
- this.parseISO = isoString => {
164
- return this.moment(isoString).locale('fa');
165
- };
166
157
  this.parse = (value, format) => {
167
158
  if (value === '') {
168
159
  return null;
169
160
  }
170
161
  return this.moment(value, format, true).locale('fa');
171
162
  };
172
- this.getFormatHelperText = format => {
173
- return this.expandFormat(format).replace(/a/gi, '(a|p)m').replace('jY', 'Y').replace('jM', 'M').replace('jD', 'D').toLocaleLowerCase();
174
- };
175
- this.isValid = value => {
176
- // We can't to `this.moment(value)` because moment-jalaali looses the invalidity information when creating a new moment object from an existing one
177
- if (!this.moment.isMoment(value)) {
178
- return false;
179
- }
180
- return value.isValid();
181
- };
182
163
  this.formatNumber = numberToFormat => {
183
164
  return numberToFormat.replace(/\d/g, match => NUMBER_SYMBOL_MAP[match]).replace(/,/g, '،');
184
165
  };
185
- this.isEqual = (value, comparing) => {
186
- if (value === null && comparing === null) {
187
- return true;
188
- }
189
- return this.moment(value).isSame(comparing);
190
- };
191
166
  this.isSameYear = (value, comparing) => {
192
167
  // `isSame` seems to mutate the date on `moment-jalaali`
193
168
  // @ts-ignore
@@ -240,17 +215,6 @@ export class AdapterMomentJalaali extends AdapterMoment {
240
215
  this.setDate = (value, date) => {
241
216
  return value.clone().jDate(date);
242
217
  };
243
- this.getNextMonth = value => {
244
- return value.clone().add(1, 'jMonth');
245
- };
246
- this.getPreviousMonth = value => {
247
- return value.clone().subtract(1, 'jMonth');
248
- };
249
- this.getWeekdays = () => {
250
- return [0, 1, 2, 3, 4, 5, 6].map(dayOfWeek => {
251
- return this.date().weekday(dayOfWeek).format('dd');
252
- });
253
- };
254
218
  this.getWeekArray = value => {
255
219
  const start = value.clone().startOf('jMonth').startOf('week');
256
220
  const end = value.clone().endOf('jMonth').endOf('week');
@@ -269,7 +233,7 @@ export class AdapterMomentJalaali extends AdapterMoment {
269
233
  this.getWeekNumber = value => {
270
234
  return value.jWeek();
271
235
  };
272
- this.getYearRange = (start, end) => {
236
+ this.getYearRange = ([start, end]) => {
273
237
  const startDate = this.moment(start).startOf('jYear');
274
238
  const endDate = this.moment(end).endOf('jYear');
275
239
  const years = [];
@@ -280,9 +244,6 @@ export class AdapterMomentJalaali extends AdapterMoment {
280
244
  }
281
245
  return years;
282
246
  };
283
- this.getMeridiemText = ampm => {
284
- return ampm === 'am' ? this.date().hours(2).format('A') : this.date().hours(14).format('A');
285
- };
286
247
  this.moment = instance || defaultJMoment;
287
248
  this.locale = 'fa';
288
249
  this.formats = _extends({}, defaultFormats, formats);