@mui/x-date-pickers 6.2.0 → 6.3.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.
Files changed (637) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +109 -0
  2. package/AdapterDateFns/AdapterDateFns.js +598 -0
  3. package/AdapterDateFns/index.d.ts +1 -13
  4. package/AdapterDateFns/index.js +1 -149
  5. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +109 -0
  6. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +610 -0
  7. package/AdapterDateFnsJalali/index.d.ts +1 -13
  8. package/AdapterDateFnsJalali/index.js +1 -149
  9. package/AdapterDayjs/AdapterDayjs.d.ts +53 -53
  10. package/AdapterDayjs/AdapterDayjs.js +146 -111
  11. package/AdapterLuxon/AdapterLuxon.d.ts +108 -0
  12. package/AdapterLuxon/AdapterLuxon.js +513 -0
  13. package/AdapterLuxon/index.d.ts +1 -14
  14. package/AdapterLuxon/index.js +1 -111
  15. package/AdapterMoment/AdapterMoment.d.ts +110 -0
  16. package/AdapterMoment/AdapterMoment.js +416 -0
  17. package/AdapterMoment/index.d.ts +1 -21
  18. package/AdapterMoment/index.js +1 -99
  19. package/AdapterMomentHijri/AdapterMomentHijri.d.ts +67 -0
  20. package/AdapterMomentHijri/AdapterMomentHijri.js +269 -0
  21. package/AdapterMomentHijri/index.d.ts +1 -18
  22. package/AdapterMomentHijri/index.js +1 -74
  23. package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +74 -0
  24. package/AdapterMomentJalaali/AdapterMomentJalaali.js +276 -0
  25. package/AdapterMomentJalaali/index.d.ts +1 -22
  26. package/AdapterMomentJalaali/index.js +1 -87
  27. package/CHANGELOG.md +118 -1
  28. package/DateCalendar/DateCalendar.types.d.ts +1 -1
  29. package/DateCalendar/DayCalendar.d.ts +1 -1
  30. package/DateCalendar/DayCalendar.js +1 -1
  31. package/DateCalendar/PickersCalendarHeader.d.ts +1 -1
  32. package/DateCalendar/useCalendarState.js +1 -1
  33. package/DateCalendar/useIsDateDisabled.d.ts +2 -0
  34. package/DateCalendar/useIsDateDisabled.js +27 -0
  35. package/DateField/DateField.js +20 -3
  36. package/DateField/DateField.types.d.ts +2 -2
  37. package/DateField/useDateField.js +4 -2
  38. package/DatePicker/DatePickerToolbar.js +1 -1
  39. package/DateTimeField/DateTimeField.js +21 -3
  40. package/DateTimeField/DateTimeField.types.d.ts +3 -2
  41. package/DateTimeField/useDateTimeField.js +4 -2
  42. package/DateTimePicker/DateTimePicker.js +1 -0
  43. package/DateTimePicker/shared.d.ts +6 -5
  44. package/DesktopDatePicker/DesktopDatePicker.js +2 -1
  45. package/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -1
  46. package/DesktopTimePicker/DesktopTimePicker.js +51 -8
  47. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +12 -4
  48. package/DigitalClock/DigitalClock.d.ts +7 -0
  49. package/DigitalClock/DigitalClock.js +397 -0
  50. package/DigitalClock/DigitalClock.types.d.ts +47 -0
  51. package/DigitalClock/digitalClockClasses.d.ts +11 -0
  52. package/DigitalClock/digitalClockClasses.js +6 -0
  53. package/DigitalClock/index.d.ts +4 -0
  54. package/DigitalClock/index.js +2 -0
  55. package/DigitalClock/package.json +6 -0
  56. package/LocalizationProvider/LocalizationProvider.d.ts +1 -1
  57. package/LocalizationProvider/LocalizationProvider.js +1 -1
  58. package/MobileDatePicker/MobileDatePicker.js +2 -1
  59. package/MobileDateTimePicker/MobileDateTimePicker.js +3 -1
  60. package/MobileTimePicker/MobileTimePicker.js +3 -1
  61. package/MobileTimePicker/MobileTimePicker.types.d.ts +8 -7
  62. package/MonthCalendar/MonthCalendar.types.d.ts +1 -1
  63. package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.ts +7 -0
  64. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +479 -0
  65. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +57 -0
  66. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +22 -0
  67. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +65 -0
  68. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +28 -0
  69. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +151 -0
  70. package/MultiSectionDigitalClock/index.d.ts +7 -0
  71. package/MultiSectionDigitalClock/index.js +3 -0
  72. package/MultiSectionDigitalClock/multiSectionDigitalClockClasses.d.ts +7 -0
  73. package/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +6 -0
  74. package/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.d.ts +9 -0
  75. package/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +6 -0
  76. package/MultiSectionDigitalClock/package.json +6 -0
  77. package/PickersDay/PickersDay.js +4 -1
  78. package/PickersLayout/PickersLayout.d.ts +2 -2
  79. package/PickersLayout/PickersLayout.js +2 -2
  80. package/PickersLayout/PickersLayout.types.d.ts +7 -8
  81. package/PickersLayout/usePickerLayout.d.ts +2 -2
  82. package/README.md +0 -9
  83. package/StaticDatePicker/StaticDatePicker.js +1 -0
  84. package/StaticDateTimePicker/StaticDateTimePicker.js +5 -3
  85. package/StaticTimePicker/StaticTimePicker.js +5 -3
  86. package/StaticTimePicker/StaticTimePicker.types.d.ts +1 -1
  87. package/TimeClock/TimeClock.js +35 -12
  88. package/TimeClock/TimeClock.types.d.ts +4 -67
  89. package/TimeField/TimeField.js +21 -3
  90. package/TimeField/TimeField.types.d.ts +3 -2
  91. package/TimeField/useTimeField.js +4 -2
  92. package/TimePicker/TimePicker.js +25 -2
  93. package/TimePicker/TimePicker.types.d.ts +4 -3
  94. package/TimePicker/TimePickerToolbar.d.ts +2 -2
  95. package/TimePicker/TimePickerToolbar.js +2 -2
  96. package/TimePicker/shared.d.ts +9 -7
  97. package/YearCalendar/YearCalendar.types.d.ts +1 -1
  98. package/dateViewRenderers/dateViewRenderers.d.ts +2 -2
  99. package/index.d.ts +2 -0
  100. package/index.js +4 -1
  101. package/internals/components/PickersToolbar.d.ts +3 -3
  102. package/internals/constants/dimensions.d.ts +1 -0
  103. package/internals/constants/dimensions.js +2 -1
  104. package/internals/demo/DemoContainer.js +4 -1
  105. package/internals/hooks/date-helpers-hooks.d.ts +3 -2
  106. package/internals/hooks/date-helpers-hooks.js +3 -3
  107. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
  108. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +15 -15
  109. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +7 -6
  110. package/internals/hooks/useField/useField.js +12 -11
  111. package/internals/hooks/useField/useField.types.d.ts +19 -5
  112. package/internals/hooks/useField/useField.utils.d.ts +9 -6
  113. package/internals/hooks/useField/useField.utils.js +60 -34
  114. package/internals/hooks/useField/useFieldCharacterEditing.js +18 -10
  115. package/internals/hooks/useField/useFieldState.js +5 -4
  116. package/internals/hooks/useIsLandscape.d.ts +2 -2
  117. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
  118. package/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
  119. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +7 -6
  120. package/internals/hooks/usePicker/usePicker.d.ts +4 -3
  121. package/internals/hooks/usePicker/usePicker.js +2 -0
  122. package/internals/hooks/usePicker/usePicker.types.d.ts +6 -5
  123. package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +5 -6
  124. package/internals/hooks/usePicker/usePickerValue.d.ts +2 -2
  125. package/internals/hooks/usePicker/usePickerValue.js +10 -12
  126. package/internals/hooks/usePicker/usePickerValue.types.d.ts +5 -3
  127. package/internals/hooks/usePicker/usePickerViews.d.ts +11 -11
  128. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +2 -2
  129. package/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
  130. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +6 -5
  131. package/internals/hooks/{validation/useValidation.d.ts → useValidation.d.ts} +1 -1
  132. package/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
  133. package/internals/hooks/useViews.d.ts +8 -6
  134. package/internals/hooks/useViews.js +29 -13
  135. package/internals/index.d.ts +7 -7
  136. package/internals/index.js +5 -5
  137. package/internals/models/common.d.ts +3 -0
  138. package/internals/models/index.d.ts +1 -0
  139. package/internals/models/index.js +2 -1
  140. package/internals/models/props/basePickerProps.d.ts +3 -3
  141. package/internals/models/props/clock.d.ts +88 -0
  142. package/internals/models/props/tabs.d.ts +2 -2
  143. package/internals/models/props/toolbar.d.ts +3 -3
  144. package/internals/{hooks/validation/models.d.ts → models/validation.d.ts} +2 -5
  145. package/internals/models/validation.js +1 -0
  146. package/internals/utils/time-utils.d.ts +7 -7
  147. package/internals/utils/time-utils.js +2 -1
  148. package/internals/{hooks/validation/useDateValidation.d.ts → utils/validation/validateDate.d.ts} +2 -3
  149. package/internals/{hooks/validation/useDateValidation.js → utils/validation/validateDate.js} +1 -27
  150. package/internals/{hooks/validation/useDateTimeValidation.d.ts → utils/validation/validateDateTime.d.ts} +3 -3
  151. package/{modern/internals/hooks/validation/useDateTimeValidation.js → internals/utils/validation/validateDateTime.js} +2 -2
  152. package/internals/{hooks/validation/useTimeValidation.d.ts → utils/validation/validateTime.d.ts} +2 -2
  153. package/{modern/internals/hooks/validation/useTimeValidation.js → internals/utils/validation/validateTime.js} +1 -1
  154. package/internals/utils/valueManagers.js +1 -1
  155. package/internals/utils/views.d.ts +3 -2
  156. package/legacy/AdapterDateFns/AdapterDateFns.js +606 -0
  157. package/legacy/AdapterDateFns/index.js +1 -165
  158. package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +620 -0
  159. package/legacy/AdapterDateFnsJalali/index.js +1 -165
  160. package/legacy/AdapterDayjs/AdapterDayjs.js +146 -111
  161. package/legacy/AdapterLuxon/AdapterLuxon.js +524 -0
  162. package/legacy/AdapterLuxon/index.js +1 -127
  163. package/legacy/AdapterMoment/AdapterMoment.js +422 -0
  164. package/legacy/AdapterMoment/index.js +1 -115
  165. package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +284 -0
  166. package/legacy/AdapterMomentHijri/index.js +1 -90
  167. package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +291 -0
  168. package/legacy/AdapterMomentJalaali/index.js +1 -103
  169. package/legacy/DateCalendar/DayCalendar.js +1 -1
  170. package/legacy/DateCalendar/useCalendarState.js +1 -1
  171. package/legacy/DateCalendar/useIsDateDisabled.js +28 -0
  172. package/legacy/DateField/DateField.js +20 -3
  173. package/legacy/DateField/useDateField.js +4 -2
  174. package/legacy/DatePicker/DatePickerToolbar.js +1 -1
  175. package/legacy/DateTimeField/DateTimeField.js +21 -3
  176. package/legacy/DateTimeField/useDateTimeField.js +4 -2
  177. package/legacy/DateTimePicker/DateTimePicker.js +1 -0
  178. package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -1
  179. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -1
  180. package/legacy/DesktopTimePicker/DesktopTimePicker.js +52 -8
  181. package/legacy/DigitalClock/DigitalClock.js +419 -0
  182. package/legacy/DigitalClock/DigitalClock.types.js +1 -0
  183. package/legacy/DigitalClock/digitalClockClasses.js +6 -0
  184. package/legacy/DigitalClock/index.js +2 -0
  185. package/legacy/LocalizationProvider/LocalizationProvider.js +1 -1
  186. package/legacy/MobileDatePicker/MobileDatePicker.js +2 -1
  187. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +3 -1
  188. package/legacy/MobileTimePicker/MobileTimePicker.js +3 -1
  189. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +508 -0
  190. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.types.js +1 -0
  191. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +65 -0
  192. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +157 -0
  193. package/legacy/MultiSectionDigitalClock/index.js +3 -0
  194. package/legacy/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +6 -0
  195. package/legacy/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +6 -0
  196. package/legacy/PickersDay/PickersDay.js +3 -1
  197. package/legacy/PickersLayout/PickersLayout.js +2 -2
  198. package/legacy/StaticDatePicker/StaticDatePicker.js +1 -0
  199. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +5 -3
  200. package/legacy/StaticTimePicker/StaticTimePicker.js +5 -3
  201. package/legacy/TimeClock/TimeClock.js +35 -12
  202. package/legacy/TimeField/TimeField.js +21 -3
  203. package/legacy/TimeField/useTimeField.js +4 -2
  204. package/legacy/TimePicker/TimePicker.js +25 -2
  205. package/legacy/TimePicker/TimePickerToolbar.js +2 -2
  206. package/legacy/index.js +4 -1
  207. package/legacy/internals/constants/dimensions.js +2 -1
  208. package/legacy/internals/demo/DemoContainer.js +4 -1
  209. package/legacy/internals/hooks/date-helpers-hooks.js +3 -3
  210. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +10 -11
  211. package/legacy/internals/hooks/useField/useField.js +11 -10
  212. package/legacy/internals/hooks/useField/useField.utils.js +58 -34
  213. package/legacy/internals/hooks/useField/useFieldCharacterEditing.js +18 -10
  214. package/legacy/internals/hooks/useField/useFieldState.js +7 -5
  215. package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +5 -6
  216. package/legacy/internals/hooks/usePicker/usePicker.js +2 -0
  217. package/legacy/internals/hooks/usePicker/usePickerValue.js +10 -14
  218. package/legacy/internals/hooks/useStaticPicker/useStaticPicker.js +7 -8
  219. package/legacy/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
  220. package/legacy/internals/hooks/useViews.js +30 -14
  221. package/legacy/internals/index.js +5 -5
  222. package/legacy/internals/models/index.js +2 -1
  223. package/legacy/internals/models/props/clock.js +1 -0
  224. package/legacy/internals/models/validation.js +1 -0
  225. package/legacy/internals/utils/time-utils.js +2 -1
  226. package/legacy/internals/{hooks/validation/useDateValidation.js → utils/validation/validateDate.js} +1 -28
  227. package/legacy/internals/{hooks/validation/useDateTimeValidation.js → utils/validation/validateDateTime.js} +2 -2
  228. package/legacy/internals/{hooks/validation/useTimeValidation.js → utils/validation/validateTime.js} +1 -1
  229. package/legacy/internals/utils/valueManagers.js +2 -2
  230. package/legacy/locales/beBY.js +5 -3
  231. package/legacy/locales/caES.js +6 -1
  232. package/legacy/locales/csCZ.js +6 -4
  233. package/legacy/locales/daDK.js +6 -2
  234. package/legacy/locales/deDE.js +6 -2
  235. package/legacy/locales/enUS.js +4 -0
  236. package/legacy/locales/esES.js +6 -1
  237. package/legacy/locales/faIR.js +11 -1
  238. package/legacy/locales/fiFI.js +6 -1
  239. package/legacy/locales/frFR.js +6 -1
  240. package/legacy/locales/heIL.js +6 -1
  241. package/legacy/locales/huHU.js +6 -2
  242. package/legacy/locales/index.js +1 -0
  243. package/legacy/locales/isIS.js +11 -1
  244. package/legacy/locales/itIT.js +6 -1
  245. package/legacy/locales/jaJP.js +6 -2
  246. package/legacy/locales/koKR.js +6 -1
  247. package/legacy/locales/kzKZ.js +6 -2
  248. package/legacy/locales/nbNO.js +11 -1
  249. package/legacy/locales/nlNL.js +11 -1
  250. package/legacy/locales/plPL.js +11 -1
  251. package/legacy/locales/ptBR.js +11 -1
  252. package/legacy/locales/ruRU.js +6 -2
  253. package/legacy/locales/svSE.js +11 -1
  254. package/legacy/locales/trTR.js +22 -7
  255. package/legacy/locales/ukUA.js +11 -1
  256. package/legacy/locales/urPK.js +11 -1
  257. package/legacy/locales/zhCN.js +44 -23
  258. package/legacy/models/common.js +1 -0
  259. package/legacy/models/index.js +2 -1
  260. package/legacy/tests/describeAdapters/describeAdapters.js +1 -3
  261. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
  262. package/legacy/tests/describeGregorianAdapter/testCalculations.js +29 -26
  263. package/legacy/tests/describeGregorianAdapter/testLocalization.js +2 -2
  264. package/legacy/tests/describeHijriAdapter/describeHijriAdapter.js +23 -0
  265. package/legacy/tests/describeHijriAdapter/describeHijriAdapter.types.js +1 -0
  266. package/legacy/tests/describeHijriAdapter/index.js +1 -0
  267. package/legacy/tests/describeHijriAdapter/testCalculations.js +94 -0
  268. package/legacy/tests/describeHijriAdapter/testLocalization.js +12 -0
  269. package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.js +25 -0
  270. package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +1 -0
  271. package/legacy/tests/describeJalaliAdapter/index.js +1 -0
  272. package/legacy/tests/describeJalaliAdapter/testCalculations.js +82 -0
  273. package/legacy/tests/describeJalaliAdapter/testLocalization.js +12 -0
  274. package/legacy/tests/describePicker/describePicker.js +159 -0
  275. package/legacy/tests/describePicker/describePicker.types.js +1 -0
  276. package/legacy/tests/describePicker/index.js +1 -0
  277. package/legacy/tests/describeValue/describeValue.js +1 -1
  278. package/legacy/tests/describeValue/testControlledUnControlled.js +8 -9
  279. package/legacy/tests/describeValue/testPickerActionBar.js +46 -13
  280. package/legacy/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
  281. package/legacy/timeViewRenderers/index.js +1 -1
  282. package/legacy/timeViewRenderers/timeViewRenderers.js +132 -4
  283. package/locales/beBY.d.ts +4 -2
  284. package/locales/beBY.js +3 -3
  285. package/locales/caES.d.ts +4 -2
  286. package/locales/caES.js +4 -1
  287. package/locales/csCZ.d.ts +4 -2
  288. package/locales/csCZ.js +4 -4
  289. package/locales/daDK.d.ts +4 -2
  290. package/locales/daDK.js +4 -2
  291. package/locales/deDE.d.ts +4 -2
  292. package/locales/deDE.js +4 -2
  293. package/locales/enUS.d.ts +3 -2
  294. package/locales/enUS.js +2 -0
  295. package/locales/esES.d.ts +4 -2
  296. package/locales/esES.js +4 -1
  297. package/locales/faIR.d.ts +4 -2
  298. package/locales/faIR.js +9 -1
  299. package/locales/fiFI.d.ts +4 -2
  300. package/locales/fiFI.js +4 -1
  301. package/locales/frFR.d.ts +4 -2
  302. package/locales/frFR.js +4 -1
  303. package/locales/heIL.d.ts +4 -2
  304. package/locales/heIL.js +4 -1
  305. package/locales/huHU.d.ts +4 -2
  306. package/locales/huHU.js +4 -2
  307. package/locales/index.d.ts +1 -0
  308. package/locales/index.js +1 -0
  309. package/locales/isIS.d.ts +4 -2
  310. package/locales/isIS.js +9 -1
  311. package/locales/itIT.d.ts +4 -2
  312. package/locales/itIT.js +4 -1
  313. package/locales/jaJP.d.ts +4 -2
  314. package/locales/jaJP.js +4 -2
  315. package/locales/koKR.d.ts +4 -2
  316. package/locales/koKR.js +4 -1
  317. package/locales/kzKZ.d.ts +4 -2
  318. package/locales/kzKZ.js +4 -2
  319. package/locales/nbNO.d.ts +4 -2
  320. package/locales/nbNO.js +9 -1
  321. package/locales/nlNL.d.ts +8 -7
  322. package/locales/nlNL.js +9 -1
  323. package/locales/plPL.d.ts +4 -2
  324. package/locales/plPL.js +9 -1
  325. package/locales/ptBR.d.ts +4 -2
  326. package/locales/ptBR.js +9 -1
  327. package/locales/ruRU.d.ts +4 -2
  328. package/locales/ruRU.js +4 -2
  329. package/locales/svSE.d.ts +4 -2
  330. package/locales/svSE.js +9 -1
  331. package/locales/trTR.d.ts +4 -2
  332. package/locales/trTR.js +14 -7
  333. package/locales/ukUA.d.ts +4 -2
  334. package/locales/ukUA.js +9 -1
  335. package/locales/urPK.d.ts +4 -2
  336. package/locales/urPK.js +9 -1
  337. package/locales/utils/getPickersLocalization.d.ts +3 -2
  338. package/locales/utils/pickersLocaleTextApi.d.ts +5 -3
  339. package/locales/zhCN.d.ts +4 -2
  340. package/locales/zhCN.js +22 -23
  341. package/models/adapters.d.ts +7 -6
  342. package/models/common.d.ts +5 -0
  343. package/models/common.js +1 -0
  344. package/models/fields.d.ts +20 -2
  345. package/models/index.d.ts +1 -0
  346. package/models/index.js +2 -1
  347. package/modern/AdapterDateFns/AdapterDateFns.js +597 -0
  348. package/modern/AdapterDateFns/index.js +1 -149
  349. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +608 -0
  350. package/modern/AdapterDateFnsJalali/index.js +1 -148
  351. package/modern/AdapterDayjs/AdapterDayjs.js +146 -111
  352. package/modern/AdapterLuxon/AdapterLuxon.js +512 -0
  353. package/modern/AdapterLuxon/index.js +1 -111
  354. package/modern/AdapterMoment/AdapterMoment.js +416 -0
  355. package/modern/AdapterMoment/index.js +1 -99
  356. package/modern/AdapterMomentHijri/AdapterMomentHijri.js +269 -0
  357. package/modern/AdapterMomentHijri/index.js +1 -74
  358. package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +276 -0
  359. package/modern/AdapterMomentJalaali/index.js +1 -87
  360. package/modern/DateCalendar/DayCalendar.js +1 -1
  361. package/modern/DateCalendar/useCalendarState.js +1 -1
  362. package/modern/DateCalendar/useIsDateDisabled.js +27 -0
  363. package/modern/DateField/DateField.js +20 -3
  364. package/modern/DateField/useDateField.js +4 -2
  365. package/modern/DatePicker/DatePickerToolbar.js +1 -1
  366. package/modern/DateTimeField/DateTimeField.js +21 -3
  367. package/modern/DateTimeField/useDateTimeField.js +4 -2
  368. package/modern/DateTimePicker/DateTimePicker.js +1 -0
  369. package/modern/DesktopDatePicker/DesktopDatePicker.js +2 -1
  370. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -1
  371. package/modern/DesktopTimePicker/DesktopTimePicker.js +50 -7
  372. package/modern/DigitalClock/DigitalClock.js +396 -0
  373. package/modern/DigitalClock/DigitalClock.types.js +1 -0
  374. package/modern/DigitalClock/digitalClockClasses.js +6 -0
  375. package/modern/DigitalClock/index.js +2 -0
  376. package/modern/LocalizationProvider/LocalizationProvider.js +1 -1
  377. package/modern/MobileDatePicker/MobileDatePicker.js +2 -1
  378. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +3 -1
  379. package/modern/MobileTimePicker/MobileTimePicker.js +3 -1
  380. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +479 -0
  381. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.types.js +1 -0
  382. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +65 -0
  383. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +149 -0
  384. package/modern/MultiSectionDigitalClock/index.js +3 -0
  385. package/modern/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +6 -0
  386. package/modern/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +6 -0
  387. package/modern/PickersDay/PickersDay.js +4 -1
  388. package/modern/PickersLayout/PickersLayout.js +2 -2
  389. package/modern/StaticDatePicker/StaticDatePicker.js +1 -0
  390. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +5 -3
  391. package/modern/StaticTimePicker/StaticTimePicker.js +5 -3
  392. package/modern/TimeClock/TimeClock.js +35 -12
  393. package/modern/TimeField/TimeField.js +21 -3
  394. package/modern/TimeField/useTimeField.js +4 -2
  395. package/modern/TimePicker/TimePicker.js +25 -2
  396. package/modern/TimePicker/TimePickerToolbar.js +2 -2
  397. package/modern/index.js +4 -1
  398. package/modern/internals/constants/dimensions.js +2 -1
  399. package/modern/internals/demo/DemoContainer.js +4 -1
  400. package/modern/internals/hooks/date-helpers-hooks.js +3 -3
  401. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +15 -15
  402. package/modern/internals/hooks/useField/useField.js +12 -11
  403. package/modern/internals/hooks/useField/useField.utils.js +60 -34
  404. package/modern/internals/hooks/useField/useFieldCharacterEditing.js +18 -10
  405. package/modern/internals/hooks/useField/useFieldState.js +5 -4
  406. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
  407. package/modern/internals/hooks/usePicker/usePicker.js +2 -0
  408. package/modern/internals/hooks/usePicker/usePickerValue.js +10 -12
  409. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
  410. package/modern/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
  411. package/modern/internals/hooks/useViews.js +29 -13
  412. package/modern/internals/index.js +5 -5
  413. package/modern/internals/models/index.js +2 -1
  414. package/modern/internals/models/props/clock.js +1 -0
  415. package/modern/internals/models/validation.js +1 -0
  416. package/modern/internals/utils/time-utils.js +2 -1
  417. package/modern/internals/{hooks/validation/useDateValidation.js → utils/validation/validateDate.js} +1 -27
  418. package/{internals/hooks/validation/useDateTimeValidation.js → modern/internals/utils/validation/validateDateTime.js} +2 -2
  419. package/{internals/hooks/validation/useTimeValidation.js → modern/internals/utils/validation/validateTime.js} +1 -1
  420. package/modern/internals/utils/valueManagers.js +1 -1
  421. package/modern/locales/beBY.js +3 -3
  422. package/modern/locales/caES.js +4 -1
  423. package/modern/locales/csCZ.js +4 -4
  424. package/modern/locales/daDK.js +4 -2
  425. package/modern/locales/deDE.js +4 -2
  426. package/modern/locales/enUS.js +2 -0
  427. package/modern/locales/esES.js +4 -1
  428. package/modern/locales/faIR.js +9 -1
  429. package/modern/locales/fiFI.js +4 -1
  430. package/modern/locales/frFR.js +4 -1
  431. package/modern/locales/heIL.js +4 -1
  432. package/modern/locales/huHU.js +4 -2
  433. package/modern/locales/index.js +1 -0
  434. package/modern/locales/isIS.js +9 -1
  435. package/modern/locales/itIT.js +4 -1
  436. package/modern/locales/jaJP.js +4 -2
  437. package/modern/locales/koKR.js +4 -1
  438. package/modern/locales/kzKZ.js +4 -2
  439. package/modern/locales/nbNO.js +9 -1
  440. package/modern/locales/nlNL.js +9 -1
  441. package/modern/locales/plPL.js +9 -1
  442. package/modern/locales/ptBR.js +9 -1
  443. package/modern/locales/ruRU.js +4 -2
  444. package/modern/locales/svSE.js +9 -1
  445. package/modern/locales/trTR.js +14 -7
  446. package/modern/locales/ukUA.js +9 -1
  447. package/modern/locales/urPK.js +9 -1
  448. package/modern/locales/zhCN.js +22 -23
  449. package/modern/models/common.js +1 -0
  450. package/modern/models/index.js +2 -1
  451. package/modern/tests/describeAdapters/describeAdapters.js +1 -3
  452. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
  453. package/modern/tests/describeGregorianAdapter/testCalculations.js +29 -26
  454. package/modern/tests/describeGregorianAdapter/testLocalization.js +2 -2
  455. package/modern/tests/describeHijriAdapter/describeHijriAdapter.js +23 -0
  456. package/modern/tests/describeHijriAdapter/describeHijriAdapter.types.js +1 -0
  457. package/modern/tests/describeHijriAdapter/index.js +1 -0
  458. package/modern/tests/describeHijriAdapter/testCalculations.js +91 -0
  459. package/modern/tests/describeHijriAdapter/testLocalization.js +13 -0
  460. package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.js +25 -0
  461. package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +1 -0
  462. package/modern/tests/describeJalaliAdapter/index.js +1 -0
  463. package/modern/tests/describeJalaliAdapter/testCalculations.js +83 -0
  464. package/modern/tests/describeJalaliAdapter/testLocalization.js +13 -0
  465. package/modern/tests/describePicker/describePicker.js +162 -0
  466. package/modern/tests/describePicker/describePicker.types.js +1 -0
  467. package/modern/tests/describePicker/index.js +1 -0
  468. package/modern/tests/describeValue/describeValue.js +1 -1
  469. package/modern/tests/describeValue/testControlledUnControlled.js +8 -9
  470. package/modern/tests/describeValue/testPickerActionBar.js +46 -13
  471. package/modern/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
  472. package/modern/timeViewRenderers/index.js +1 -1
  473. package/modern/timeViewRenderers/timeViewRenderers.js +130 -2
  474. package/node/AdapterDateFns/AdapterDateFns.js +607 -0
  475. package/node/AdapterDateFns/index.js +6 -152
  476. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +618 -0
  477. package/node/AdapterDateFnsJalali/index.js +6 -151
  478. package/node/AdapterDayjs/AdapterDayjs.js +146 -111
  479. package/node/AdapterLuxon/AdapterLuxon.js +521 -0
  480. package/node/AdapterLuxon/index.js +6 -114
  481. package/node/AdapterMoment/AdapterMoment.js +425 -0
  482. package/node/AdapterMoment/index.js +6 -102
  483. package/node/AdapterMomentHijri/AdapterMomentHijri.js +278 -0
  484. package/node/AdapterMomentHijri/index.js +6 -77
  485. package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +285 -0
  486. package/node/AdapterMomentJalaali/index.js +6 -90
  487. package/node/DateCalendar/DayCalendar.js +2 -2
  488. package/node/DateCalendar/useCalendarState.js +2 -2
  489. package/node/{internals/hooks/validation/useDateValidation.js → DateCalendar/useIsDateDisabled.js} +4 -37
  490. package/node/DateField/DateField.js +20 -3
  491. package/node/DateField/useDateField.js +5 -3
  492. package/node/DatePicker/DatePickerToolbar.js +1 -1
  493. package/node/DateTimeField/DateTimeField.js +21 -3
  494. package/node/DateTimeField/useDateTimeField.js +5 -3
  495. package/node/DateTimePicker/DateTimePicker.js +1 -0
  496. package/node/DesktopDatePicker/DesktopDatePicker.js +3 -2
  497. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +4 -2
  498. package/node/DesktopTimePicker/DesktopTimePicker.js +51 -8
  499. package/node/DigitalClock/DigitalClock.js +406 -0
  500. package/node/DigitalClock/digitalClockClasses.js +15 -0
  501. package/node/DigitalClock/index.js +25 -0
  502. package/node/LocalizationProvider/LocalizationProvider.js +1 -1
  503. package/node/MobileDatePicker/MobileDatePicker.js +3 -2
  504. package/node/MobileDateTimePicker/MobileDateTimePicker.js +4 -2
  505. package/node/MobileTimePicker/MobileTimePicker.js +4 -2
  506. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +489 -0
  507. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.types.js +5 -0
  508. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +73 -0
  509. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +159 -0
  510. package/node/MultiSectionDigitalClock/index.js +32 -0
  511. package/node/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +15 -0
  512. package/node/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +15 -0
  513. package/node/PickersDay/PickersDay.js +4 -1
  514. package/node/PickersLayout/PickersLayout.js +2 -2
  515. package/node/StaticDatePicker/StaticDatePicker.js +1 -0
  516. package/node/StaticDateTimePicker/StaticDateTimePicker.js +5 -3
  517. package/node/StaticTimePicker/StaticTimePicker.js +5 -3
  518. package/node/TimeClock/TimeClock.js +35 -12
  519. package/node/TimeField/TimeField.js +21 -3
  520. package/node/TimeField/useTimeField.js +5 -3
  521. package/node/TimePicker/TimePicker.js +25 -2
  522. package/node/TimePicker/TimePickerToolbar.js +2 -2
  523. package/node/index.js +25 -1
  524. package/node/internals/constants/dimensions.js +4 -2
  525. package/node/internals/demo/DemoContainer.js +4 -1
  526. package/node/internals/hooks/date-helpers-hooks.js +3 -3
  527. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +15 -15
  528. package/node/internals/hooks/useField/useField.js +12 -11
  529. package/node/internals/hooks/useField/useField.utils.js +63 -36
  530. package/node/internals/hooks/useField/useFieldCharacterEditing.js +17 -9
  531. package/node/internals/hooks/useField/useFieldState.js +5 -4
  532. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
  533. package/node/internals/hooks/usePicker/usePicker.js +2 -0
  534. package/node/internals/hooks/usePicker/usePickerValue.js +10 -12
  535. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
  536. package/node/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
  537. package/node/internals/hooks/useViews.js +29 -13
  538. package/node/internals/index.js +9 -9
  539. package/node/internals/models/index.js +11 -0
  540. package/node/internals/models/props/clock.js +5 -0
  541. package/node/internals/models/validation.js +5 -0
  542. package/node/internals/utils/time-utils.js +2 -1
  543. package/node/internals/utils/validation/validateDate.js +40 -0
  544. package/node/internals/{hooks/validation/useDateTimeValidation.js → utils/validation/validateDateTime.js} +4 -4
  545. package/node/internals/{hooks/validation/useTimeValidation.js → utils/validation/validateTime.js} +1 -1
  546. package/node/internals/utils/valueManagers.js +1 -1
  547. package/node/locales/beBY.js +3 -3
  548. package/node/locales/caES.js +4 -1
  549. package/node/locales/csCZ.js +4 -2
  550. package/node/locales/daDK.js +4 -1
  551. package/node/locales/deDE.js +4 -1
  552. package/node/locales/enUS.js +2 -0
  553. package/node/locales/esES.js +4 -1
  554. package/node/locales/faIR.js +9 -1
  555. package/node/locales/fiFI.js +4 -1
  556. package/node/locales/frFR.js +4 -1
  557. package/node/locales/heIL.js +4 -1
  558. package/node/locales/huHU.js +4 -1
  559. package/node/locales/index.js +11 -0
  560. package/node/locales/isIS.js +9 -1
  561. package/node/locales/itIT.js +4 -1
  562. package/node/locales/jaJP.js +4 -1
  563. package/node/locales/koKR.js +4 -1
  564. package/node/locales/kzKZ.js +4 -1
  565. package/node/locales/nbNO.js +9 -1
  566. package/node/locales/nlNL.js +9 -1
  567. package/node/locales/plPL.js +9 -1
  568. package/node/locales/ptBR.js +9 -1
  569. package/node/locales/ruRU.js +4 -1
  570. package/node/locales/svSE.js +9 -1
  571. package/node/locales/trTR.js +14 -7
  572. package/node/locales/ukUA.js +9 -1
  573. package/node/locales/urPK.js +9 -1
  574. package/node/locales/zhCN.js +22 -23
  575. package/node/models/common.js +5 -0
  576. package/node/models/index.js +11 -0
  577. package/node/tests/describeAdapters/describeAdapters.js +1 -3
  578. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
  579. package/node/tests/describeGregorianAdapter/testCalculations.js +29 -26
  580. package/node/tests/describeGregorianAdapter/testLocalization.js +2 -2
  581. package/node/tests/describeHijriAdapter/describeHijriAdapter.js +31 -0
  582. package/node/tests/describeHijriAdapter/describeHijriAdapter.types.js +5 -0
  583. package/node/tests/describeHijriAdapter/index.js +12 -0
  584. package/node/tests/describeHijriAdapter/testCalculations.js +98 -0
  585. package/node/tests/describeHijriAdapter/testLocalization.js +20 -0
  586. package/node/tests/describeJalaliAdapter/describeJalaliAdapter.js +33 -0
  587. package/node/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +5 -0
  588. package/node/tests/describeJalaliAdapter/index.js +12 -0
  589. package/node/tests/describeJalaliAdapter/testCalculations.js +90 -0
  590. package/node/tests/describeJalaliAdapter/testLocalization.js +20 -0
  591. package/node/tests/describePicker/describePicker.js +173 -0
  592. package/node/tests/describePicker/describePicker.types.js +5 -0
  593. package/node/tests/describePicker/index.js +12 -0
  594. package/node/tests/describeValue/describeValue.js +1 -1
  595. package/node/tests/describeValue/testControlledUnControlled.js +8 -9
  596. package/node/tests/describeValue/testPickerActionBar.js +46 -13
  597. package/node/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
  598. package/node/timeViewRenderers/index.js +12 -0
  599. package/node/timeViewRenderers/timeViewRenderers.js +134 -4
  600. package/package.json +3 -10
  601. package/tests/describeAdapters/describeAdapters.js +1 -3
  602. package/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
  603. package/tests/describeGregorianAdapter/testCalculations.js +29 -26
  604. package/tests/describeGregorianAdapter/testLocalization.js +2 -2
  605. package/tests/describeHijriAdapter/describeHijriAdapter.js +23 -0
  606. package/tests/describeHijriAdapter/describeHijriAdapter.types.js +1 -0
  607. package/tests/describeHijriAdapter/index.js +1 -0
  608. package/tests/describeHijriAdapter/testCalculations.js +91 -0
  609. package/tests/describeHijriAdapter/testLocalization.js +13 -0
  610. package/tests/describeJalaliAdapter/describeJalaliAdapter.js +25 -0
  611. package/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +1 -0
  612. package/tests/describeJalaliAdapter/index.js +1 -0
  613. package/tests/describeJalaliAdapter/testCalculations.js +83 -0
  614. package/tests/describeJalaliAdapter/testLocalization.js +13 -0
  615. package/tests/describePicker/describePicker.js +162 -0
  616. package/tests/describePicker/describePicker.types.js +1 -0
  617. package/tests/describePicker/index.js +1 -0
  618. package/tests/describeValue/describeValue.js +1 -1
  619. package/tests/describeValue/testControlledUnControlled.js +8 -9
  620. package/tests/describeValue/testPickerActionBar.js +46 -13
  621. package/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
  622. package/themeAugmentation/components.d.ts +12 -0
  623. package/themeAugmentation/overrides.d.ts +8 -0
  624. package/themeAugmentation/props.d.ts +8 -0
  625. package/timeViewRenderers/index.d.ts +1 -1
  626. package/timeViewRenderers/index.js +1 -1
  627. package/timeViewRenderers/timeViewRenderers.d.ts +11 -4
  628. package/timeViewRenderers/timeViewRenderers.js +130 -2
  629. /package/{internals/hooks/validation/models.js → DigitalClock/DigitalClock.types.js} +0 -0
  630. /package/{legacy/internals/hooks/validation/models.js → MultiSectionDigitalClock/MultiSectionDigitalClock.types.js} +0 -0
  631. /package/{modern/internals/hooks/validation/models.js → internals/models/props/clock.js} +0 -0
  632. /package/internals/utils/{validation.d.ts → validation/extractValidationProps.d.ts} +0 -0
  633. /package/internals/utils/{validation.js → validation/extractValidationProps.js} +0 -0
  634. /package/legacy/internals/utils/{validation.js → validation/extractValidationProps.js} +0 -0
  635. /package/modern/internals/utils/{validation.js → validation/extractValidationProps.js} +0 -0
  636. /package/node/{internals/hooks/validation/models.js → DigitalClock/DigitalClock.types.js} +0 -0
  637. /package/node/internals/utils/{validation.js → validation/extractValidationProps.js} +0 -0
@@ -8,6 +8,7 @@ var React = _interopRequireWildcard(require("react"));
8
8
  var _chai = require("chai");
9
9
  var _sinon = require("sinon");
10
10
  var _utils = require("@mui/monorepo/test/utils");
11
+ var _pickersUtils = require("test/utils/pickers-utils");
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -18,17 +19,11 @@ const testPickerActionBar = (ElementToTest, getOptions) => {
18
19
  values,
19
20
  emptyValue,
20
21
  setNewValue,
21
- variant,
22
22
  type
23
23
  } = getOptions();
24
24
  if (componentFamily !== 'picker') {
25
25
  return;
26
26
  }
27
-
28
- // No view to test
29
- if (variant === 'desktop' && type === 'time') {
30
- return;
31
- }
32
27
  describe('Picker action bar', () => {
33
28
  describe('clear action', () => {
34
29
  it('should call onClose, onChange with empty value and onAccept with empty value', () => {
@@ -41,7 +36,7 @@ const testPickerActionBar = (ElementToTest, getOptions) => {
41
36
  onClose: onClose,
42
37
  defaultValue: values[0],
43
38
  open: true,
44
- componentsProps: {
39
+ slotProps: {
45
40
  actionBar: {
46
41
  actions: ['clear']
47
42
  }
@@ -77,7 +72,7 @@ const testPickerActionBar = (ElementToTest, getOptions) => {
77
72
  onAccept: onAccept,
78
73
  onClose: onClose,
79
74
  open: true,
80
- componentsProps: {
75
+ slotProps: {
81
76
  actionBar: {
82
77
  actions: ['clear']
83
78
  }
@@ -103,7 +98,7 @@ const testPickerActionBar = (ElementToTest, getOptions) => {
103
98
  onClose: onClose,
104
99
  open: true,
105
100
  value: values[0],
106
- componentsProps: {
101
+ slotProps: {
107
102
  actionBar: {
108
103
  actions: ['cancel']
109
104
  }
@@ -139,7 +134,7 @@ const testPickerActionBar = (ElementToTest, getOptions) => {
139
134
  onClose: onClose,
140
135
  open: true,
141
136
  value: values[0],
142
- componentsProps: {
137
+ slotProps: {
143
138
  actionBar: {
144
139
  actions: ['cancel']
145
140
  }
@@ -165,7 +160,7 @@ const testPickerActionBar = (ElementToTest, getOptions) => {
165
160
  onClose: onClose,
166
161
  open: true,
167
162
  defaultValue: values[0],
168
- componentsProps: {
163
+ slotProps: {
169
164
  actionBar: {
170
165
  actions: ['accept']
171
166
  }
@@ -194,7 +189,7 @@ const testPickerActionBar = (ElementToTest, getOptions) => {
194
189
  onClose: onClose,
195
190
  open: true,
196
191
  defaultValue: values[0],
197
- componentsProps: {
192
+ slotProps: {
198
193
  actionBar: {
199
194
  actions: ['accept']
200
195
  }
@@ -218,7 +213,7 @@ const testPickerActionBar = (ElementToTest, getOptions) => {
218
213
  onClose: onClose,
219
214
  open: true,
220
215
  value: values[0],
221
- componentsProps: {
216
+ slotProps: {
222
217
  actionBar: {
223
218
  actions: ['accept']
224
219
  }
@@ -233,6 +228,44 @@ const testPickerActionBar = (ElementToTest, getOptions) => {
233
228
  (0, _chai.expect)(onClose.callCount).to.equal(1);
234
229
  });
235
230
  });
231
+ describe('today action', () => {
232
+ it("should call onClose, onChange with today's value and onAccept with today's value", () => {
233
+ const onChange = (0, _sinon.spy)();
234
+ const onAccept = (0, _sinon.spy)();
235
+ const onClose = (0, _sinon.spy)();
236
+ render( /*#__PURE__*/(0, _jsxRuntime.jsx)(ElementToTest, {
237
+ onChange: onChange,
238
+ onAccept: onAccept,
239
+ onClose: onClose,
240
+ defaultValue: values[0],
241
+ open: true,
242
+ slotProps: {
243
+ actionBar: {
244
+ actions: ['today']
245
+ }
246
+ }
247
+ }));
248
+ _utils.userEvent.mousePress(_utils.screen.getByText(/today/i));
249
+ const startOfToday = type === 'date' ? _pickersUtils.adapterToUse.startOfDay(_pickersUtils.adapterToUse.date()) : _pickersUtils.adapterToUse.date();
250
+ (0, _chai.expect)(onChange.callCount).to.equal(1);
251
+ if (type === 'date-range') {
252
+ onChange.lastCall.args[0].forEach(value => {
253
+ (0, _chai.expect)(value).toEqualDateTime(startOfToday);
254
+ });
255
+ } else {
256
+ (0, _chai.expect)(onChange.lastCall.args[0]).toEqualDateTime(startOfToday);
257
+ }
258
+ (0, _chai.expect)(onAccept.callCount).to.equal(1);
259
+ if (type === 'date-range') {
260
+ onAccept.lastCall.args[0].forEach(value => {
261
+ (0, _chai.expect)(value).toEqualDateTime(startOfToday);
262
+ });
263
+ } else {
264
+ (0, _chai.expect)(onAccept.lastCall.args[0]).toEqualDateTime(startOfToday);
265
+ }
266
+ (0, _chai.expect)(onClose.callCount).to.equal(1);
267
+ });
268
+ });
236
269
  });
237
270
  };
238
271
  exports.testPickerActionBar = testPickerActionBar;
@@ -27,11 +27,6 @@ const testPickerOpenCloseLifeCycle = (ElementToTest, getOptions) => {
27
27
  if (componentFamily !== 'picker') {
28
28
  return;
29
29
  }
30
-
31
- // No view to test
32
- if (pickerParams.variant === 'desktop' && pickerParams.type === 'time') {
33
- return;
34
- }
35
30
  const viewWrapperRole = pickerParams.type === 'date-range' && pickerParams.variant === 'desktop' ? 'tooltip' : 'dialog';
36
31
  describe('Picker open / close lifecycle', () => {
37
32
  it('should not open on mount if `props.open` is false', () => {
@@ -3,6 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "renderDigitalClockTimeView", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _timeViewRenderers.renderDigitalClockTimeView;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "renderMultiSectionDigitalClockTimeView", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _timeViewRenderers.renderMultiSectionDigitalClockTimeView;
16
+ }
17
+ });
6
18
  Object.defineProperty(exports, "renderTimeViewClock", {
7
19
  enumerable: true,
8
20
  get: function () {
@@ -3,16 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.renderTimeViewClock = void 0;
6
+ exports.renderTimeViewClock = exports.renderMultiSectionDigitalClockTimeView = exports.renderDigitalClockTimeView = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _TimeClock = require("../TimeClock");
9
+ var _DigitalClock = require("../DigitalClock");
10
+ var _MultiSectionDigitalClock = require("../MultiSectionDigitalClock");
11
+ var _timeUtils = require("../internals/utils/time-utils");
9
12
  var _jsxRuntime = require("react/jsx-runtime");
10
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
- const isTimePickerView = view => view === 'hours' || view === 'minutes' || view === 'seconds';
13
15
  const renderTimeViewClock = ({
14
16
  view,
15
17
  onViewChange,
18
+ focusedView,
19
+ onFocusedViewChange,
16
20
  views,
17
21
  value,
18
22
  defaultValue,
@@ -41,7 +45,9 @@ const renderTimeViewClock = ({
41
45
  }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TimeClock.TimeClock, {
42
46
  view: view,
43
47
  onViewChange: onViewChange,
44
- views: views.filter(isTimePickerView),
48
+ focusedView: focusedView,
49
+ onFocusedViewChange: onFocusedViewChange,
50
+ views: views.filter(_timeUtils.isTimeView),
45
51
  value: value,
46
52
  defaultValue: defaultValue,
47
53
  onChange: onChange,
@@ -67,4 +73,128 @@ const renderTimeViewClock = ({
67
73
  showViewSwitcher: showViewSwitcher,
68
74
  disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation
69
75
  });
70
- exports.renderTimeViewClock = renderTimeViewClock;
76
+ exports.renderTimeViewClock = renderTimeViewClock;
77
+ const renderDigitalClockTimeView = ({
78
+ view,
79
+ onViewChange,
80
+ focusedView,
81
+ onFocusedViewChange,
82
+ views,
83
+ value,
84
+ defaultValue,
85
+ onChange,
86
+ className,
87
+ classes,
88
+ disableFuture,
89
+ disablePast,
90
+ minTime,
91
+ maxTime,
92
+ shouldDisableTime,
93
+ shouldDisableClock,
94
+ minutesStep,
95
+ ampm,
96
+ components,
97
+ componentsProps,
98
+ slots,
99
+ slotProps,
100
+ readOnly,
101
+ disabled,
102
+ sx,
103
+ autoFocus,
104
+ disableIgnoringDatePartForTimeValidation,
105
+ timeSteps,
106
+ skipDisabled
107
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_DigitalClock.DigitalClock, {
108
+ view: view,
109
+ onViewChange: onViewChange,
110
+ focusedView: focusedView,
111
+ onFocusedViewChange: onFocusedViewChange,
112
+ views: views.filter(_timeUtils.isTimeView),
113
+ value: value,
114
+ defaultValue: defaultValue,
115
+ onChange: onChange,
116
+ className: className,
117
+ classes: classes,
118
+ disableFuture: disableFuture,
119
+ disablePast: disablePast,
120
+ minTime: minTime,
121
+ maxTime: maxTime,
122
+ shouldDisableTime: shouldDisableTime,
123
+ shouldDisableClock: shouldDisableClock,
124
+ minutesStep: minutesStep,
125
+ ampm: ampm,
126
+ components: components,
127
+ componentsProps: componentsProps,
128
+ slots: slots,
129
+ slotProps: slotProps,
130
+ readOnly: readOnly,
131
+ disabled: disabled,
132
+ sx: sx,
133
+ autoFocus: autoFocus,
134
+ disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
135
+ timeStep: timeSteps?.minutes,
136
+ skipDisabled: skipDisabled
137
+ });
138
+ exports.renderDigitalClockTimeView = renderDigitalClockTimeView;
139
+ const renderMultiSectionDigitalClockTimeView = ({
140
+ view,
141
+ onViewChange,
142
+ focusedView,
143
+ onFocusedViewChange,
144
+ views,
145
+ value,
146
+ defaultValue,
147
+ onChange,
148
+ className,
149
+ classes,
150
+ disableFuture,
151
+ disablePast,
152
+ minTime,
153
+ maxTime,
154
+ shouldDisableTime,
155
+ shouldDisableClock,
156
+ minutesStep,
157
+ ampm,
158
+ components,
159
+ componentsProps,
160
+ slots,
161
+ slotProps,
162
+ readOnly,
163
+ disabled,
164
+ sx,
165
+ autoFocus,
166
+ disableIgnoringDatePartForTimeValidation,
167
+ timeSteps,
168
+ skipDisabled
169
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_MultiSectionDigitalClock.MultiSectionDigitalClock, {
170
+ view: view,
171
+ onViewChange: onViewChange,
172
+ focusedView: focusedView,
173
+ onFocusedViewChange: onFocusedViewChange,
174
+ views: views.filter(_timeUtils.isTimeView),
175
+ value: value,
176
+ defaultValue: defaultValue,
177
+ onChange: onChange,
178
+ className: className,
179
+ classes: classes,
180
+ disableFuture: disableFuture,
181
+ disablePast: disablePast,
182
+ minTime: minTime,
183
+ maxTime: maxTime,
184
+ shouldDisableTime: shouldDisableTime,
185
+ shouldDisableClock: shouldDisableClock,
186
+ minutesStep: minutesStep,
187
+ ampm: ampm,
188
+ components: components,
189
+ componentsProps: componentsProps,
190
+ slots: slots,
191
+ slotProps: slotProps,
192
+ readOnly: readOnly,
193
+ disabled: disabled,
194
+ sx: sx,
195
+ autoFocus: autoFocus,
196
+ disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
197
+ timeSteps: timeSteps,
198
+ skipDisabled: skipDisabled
199
+ });
200
+ exports.renderMultiSectionDigitalClockTimeView = renderMultiSectionDigitalClockTimeView;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers",
3
- "version": "6.2.0",
3
+ "version": "6.3.0",
4
4
  "description": "The community edition of the date picker components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -34,14 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@babel/runtime": "^7.21.0",
37
- "@date-io/core": "^2.16.0",
38
- "@date-io/date-fns": "^2.16.0",
39
- "@date-io/date-fns-jalali": "^2.16.0",
40
- "@date-io/hijri": "^2.16.1",
41
- "@date-io/jalaali": "^2.16.1",
42
- "@date-io/luxon": "^2.16.1",
43
- "@date-io/moment": "^2.16.1",
44
- "@mui/utils": "^5.11.13",
37
+ "@mui/utils": "^5.12.0",
45
38
  "@types/react-transition-group": "^4.4.5",
46
39
  "clsx": "^1.2.1",
47
40
  "prop-types": "^15.8.1",
@@ -59,7 +52,7 @@
59
52
  "luxon": "^3.0.2",
60
53
  "moment": "^2.29.4",
61
54
  "moment-hijri": "^2.1.2",
62
- "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0",
55
+ "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0",
63
56
  "react": "^17.0.2 || ^18.0.0",
64
57
  "react-dom": "^17.0.2 || ^18.0.0"
65
58
  },
@@ -20,9 +20,7 @@ function innerDescribeAdapters(title, FieldComponent, testRunner) {
20
20
  render: pickerRendererResponse.render,
21
21
  Component: FieldComponent
22
22
  });
23
- testRunner(_extends({
24
- adapterName
25
- }, pickerRendererResponse, fieldInteractions));
23
+ testRunner(_extends({}, pickerRendererResponse, fieldInteractions));
26
24
  });
27
25
  });
28
26
  }
@@ -5,7 +5,9 @@ import { testLocalization } from './testLocalization';
5
5
  import { testFormat } from './testFormat';
6
6
  export const TEST_DATE_ISO = '2018-10-30T11:44:00.000Z';
7
7
  function innerGregorianDescribeAdapter(Adapter, params) {
8
- const adapter = new Adapter({});
8
+ const adapter = new Adapter({
9
+ locale: params.locale
10
+ });
9
11
  describe(adapter.lib, () => {
10
12
  const testSuitParams = _extends({}, params, {
11
13
  adapter,
@@ -87,100 +87,103 @@ export const testCalculations = ({
87
87
  it('Method: endOfDay', () => {
88
88
  expect(adapter.formatByString(adapter.endOfDay(testDate), formatDateTime)).to.equal('2018-10-30 23:59:59');
89
89
  });
90
- it('Method:getPreviousMonth', () => {
90
+ it('Method: getPreviousMonth', () => {
91
91
  expect(adapter.formatByString(adapter.getPreviousMonth(testDate), formatDateTime)).to.equal('2018-09-30 11:44:00');
92
92
  });
93
- it('Method:getMonthArray', () => {
93
+ it('Method: getMonthArray', () => {
94
94
  expect(adapter.getMonthArray(testDate).map(date => adapter.formatByString(date, formatDateTime))).to.deep.equal(['2018-01-01 00:00:00', '2018-02-01 00:00:00', '2018-03-01 00:00:00', '2018-04-01 00:00:00', '2018-05-01 00:00:00', '2018-06-01 00:00:00', '2018-07-01 00:00:00', '2018-08-01 00:00:00', '2018-09-01 00:00:00', '2018-10-01 00:00:00', '2018-11-01 00:00:00', '2018-12-01 00:00:00']);
95
95
  });
96
- it('Method:getNextMonth', () => {
96
+ it('Method: getNextMonth', () => {
97
97
  expect(adapter.formatByString(adapter.getNextMonth(testDate), formatDateTime)).to.equal('2018-11-30 11:44:00');
98
98
  });
99
- it('Method:getHours', () => {
99
+ it('Method: getHours', () => {
100
100
  expect(adapter.getHours(testDate)).to.equal(new Date(testDateISO).getHours());
101
101
  });
102
- it('Method:getMinutes', () => {
102
+ it('Method: getMinutes', () => {
103
103
  expect(adapter.getMinutes(testDate)).to.equal(44);
104
104
  });
105
- it('Method:getSeconds', () => {
105
+ it('Method: getSeconds', () => {
106
106
  expect(adapter.getSeconds(testDate)).to.equal(0);
107
107
  });
108
- it('Method:getDate', () => {
108
+ it('Method: getDate', () => {
109
109
  expect(adapter.getDate(testDate)).to.equal(30);
110
110
  });
111
- it('Method:getYear', () => {
111
+ it('Method: getYear', () => {
112
112
  expect(adapter.getYear(testDate)).to.equal(2018);
113
113
  });
114
- it('Method:getMonth', () => {
114
+ it('Method: getMonth', () => {
115
115
  expect(adapter.getMonth(testDate)).to.equal(9);
116
116
  });
117
- it('Method:getDaysInMonth', () => {
117
+ it('Method: getDaysInMonth', () => {
118
118
  expect(adapter.getDaysInMonth(testDate)).to.equal(31);
119
119
  });
120
- it('Method:setMonth', () => {
120
+ it('Method: setMonth', () => {
121
121
  const updatedTime = adapter.formatByString(adapter.setMonth(testDate, 4), formatDateTime);
122
122
  expect(updatedTime).to.equal('2018-05-30 11:44:00');
123
123
  });
124
- it('Method:setHours', () => {
124
+ it('Method: setHours', () => {
125
125
  const updatedTime = adapter.formatByString(adapter.setHours(testDate, 0), formatDateTime);
126
126
  expect(updatedTime).to.equal('2018-10-30 00:44:00');
127
127
  });
128
- it('Method:setMinutes', () => {
128
+ it('Method: setMinutes', () => {
129
129
  const updatedTime = adapter.formatByString(adapter.setMinutes(testDate, 12), formatDateTime);
130
130
  expect(updatedTime).to.equal('2018-10-30 11:12:00');
131
131
  });
132
- it('Method:setMinutes', () => {
132
+ it('Method: setMinutes', () => {
133
133
  const updatedTime = adapter.formatByString(adapter.setMinutes(testDate, 12), formatDateTime);
134
134
  expect(updatedTime).to.equal('2018-10-30 11:12:00');
135
135
  });
136
- it('Method:setYear', () => {
136
+ it('Method: setYear', () => {
137
137
  const updatedTime = adapter.formatByString(adapter.setYear(testDate, 2011), formatDateTime);
138
138
  expect(updatedTime).to.equal('2011-10-30 11:44:00');
139
139
  });
140
- it('Method:setDate', () => {
140
+ it('Method: setDate', () => {
141
141
  const updatedTime = adapter.formatByString(adapter.setDate(testDate, 15), formatDateTime);
142
142
  expect(updatedTime).to.equal('2018-10-15 11:44:00');
143
143
  });
144
- it('Method:setSeconds', () => {
144
+ it('Method: setSeconds', () => {
145
145
  const updatedValue = adapter.formatByString(adapter.setSeconds(testDate, 11), formatDateTime);
146
146
  expect(updatedValue).to.equal('2018-10-30 11:44:11');
147
147
  });
148
- it('Method:isAfter', () => {
148
+ it('Method: isAfter', () => {
149
149
  expect(adapter.isAfter(adapter.date(), testDate)).to.equal(true);
150
150
  expect(adapter.isAfter(testDate, adapter.date())).to.equal(false);
151
151
  });
152
- it('Method:isBefore', () => {
152
+ it('Method: isBefore', () => {
153
153
  expect(adapter.isBefore(testDate, adapter.date())).to.equal(true);
154
154
  expect(adapter.isBefore(adapter.date(), testDate)).to.equal(false);
155
155
  });
156
- it('Method:isAfterDay', () => {
156
+ it('Method: isAfterDay', () => {
157
157
  const nextDay = adapter.addDays(testDate, 1);
158
158
  expect(adapter.isAfterDay(nextDay, testDate)).to.equal(true);
159
159
  expect(adapter.isAfterDay(testDate, nextDay)).to.equal(false);
160
160
  });
161
- it('Method:isBeforeDay', () => {
161
+ it('Method: isBeforeDay', () => {
162
162
  const previousDay = adapter.addDays(testDate, -1);
163
163
  expect(adapter.isBeforeDay(testDate, previousDay)).to.equal(false);
164
164
  expect(adapter.isBeforeDay(previousDay, testDate)).to.equal(true);
165
165
  });
166
- it('Method:isAfterYear', () => {
166
+ it('Method: isAfterYear', () => {
167
167
  const nextYear = adapter.setYear(testDate, 2019);
168
168
  expect(adapter.isAfterYear(nextYear, testDate)).to.equal(true);
169
169
  expect(adapter.isAfterYear(testDate, nextYear)).to.equal(false);
170
170
  });
171
- it('Method:isBeforeYear', () => {
171
+ it('Method: isBeforeYear', () => {
172
172
  const previousYear = adapter.setYear(testDate, 2017);
173
173
  expect(adapter.isBeforeYear(testDate, previousYear)).to.equal(false);
174
174
  expect(adapter.isBeforeYear(previousYear, testDate)).to.equal(true);
175
175
  });
176
- it('Method:getWeekArray', () => {
176
+ it('Method: getWeekArray', () => {
177
177
  const weekArray = adapter.getWeekArray(testDate);
178
178
  expect(weekArray).to.have.length(5);
179
179
  weekArray.forEach(week => {
180
180
  expect(week).to.have.length(7);
181
181
  });
182
182
  });
183
- it('Method:getYearRange', () => {
183
+ it('Method: getWeekNumber', () => {
184
+ expect(adapter.getWeekNumber(testDate)).to.equal(44);
185
+ });
186
+ it('Method: getYearRange', () => {
184
187
  const yearRange = adapter.getYearRange(testDate, adapter.setYear(testDate, 2124));
185
188
  expect(yearRange).to.have.length(107);
186
189
  expect(adapter.getYear(yearRange[yearRange.length - 1])).to.equal(2124);
@@ -190,7 +193,7 @@ export const testCalculations = ({
190
193
  it('Method: getDiff', () => {
191
194
  expect(adapter.getDiff(testDate, adapter.date('2018-10-29T11:44:00.000Z'))).to.equal(86400000);
192
195
  expect(adapter.getDiff(testDate, adapter.date('2018-10-31T11:44:00.000Z'))).to.equal(-86400000);
193
- expect(adapter.getDiff(testDate, '2018-10-31T11:44:00.000Z')).to.equal(-86400000);
196
+ expect(adapter.getDiff(testDate, adapter.date('2018-10-31T11:44:00.000Z'))).to.equal(-86400000);
194
197
 
195
198
  // With units
196
199
  expect(adapter.getDiff(testDate, adapter.date('2017-09-29T11:44:00.000Z'), 'years')).to.equal(1);
@@ -10,7 +10,7 @@ export const testLocalization = ({
10
10
  expect(adapter.getMeridiemText('pm')).to.equal('PM');
11
11
  });
12
12
  it('Method: getFormatHelperText', () => {
13
- expect(adapter.getFormatHelperText(adapter.formats.keyboardDate)).to.equal('mm/dd/yyyy');
14
- expect(adapter.getFormatHelperText(adapter.formats.keyboardDateTime12h)).to.equal('mm/dd/yyyy hh:mm (a|p)m');
13
+ expect(adapter.getFormatHelperText(adapter.formats.keyboardDate)).to.equal(adapter.lib === 'luxon' ? 'm/d/yyyy' : 'mm/dd/yyyy');
14
+ expect(adapter.getFormatHelperText(adapter.formats.keyboardDateTime12h)).to.equal(adapter.lib === 'luxon' ? 'm/d/yyyy hh:mm (a|p)m' : 'mm/dd/yyyy hh:mm (a|p)m');
15
15
  });
16
16
  };
@@ -0,0 +1,23 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import createDescribe from '@mui/monorepo/test/utils/createDescribe';
3
+ import { testCalculations } from './testCalculations';
4
+ import { testLocalization } from './testLocalization';
5
+ import { TEST_DATE_ISO } from '../describeGregorianAdapter';
6
+ function innerJalaliDescribeAdapter(Adapter, params) {
7
+ const adapter = new Adapter();
8
+ describe(adapter.lib, () => {
9
+ const testSuitParams = _extends({}, params, {
10
+ adapter,
11
+ testDate: adapter.date(TEST_DATE_ISO)
12
+ });
13
+ if (params.before) {
14
+ before(params.before);
15
+ }
16
+ if (params.after) {
17
+ after(params.after);
18
+ }
19
+ testCalculations(testSuitParams);
20
+ testLocalization(testSuitParams);
21
+ });
22
+ }
23
+ export const describeHijriAdapter = createDescribe('Adapter methods', innerJalaliDescribeAdapter);
@@ -0,0 +1 @@
1
+ export { describeHijriAdapter } from './describeHijriAdapter';
@@ -0,0 +1,91 @@
1
+ import { expect } from 'chai';
2
+ import { TEST_DATE_ISO } from '../describeGregorianAdapter';
3
+ export const testCalculations = ({
4
+ adapter,
5
+ testDate
6
+ }) => {
7
+ it('Method: date', () => {
8
+ expect(adapter.date(null)).to.equal(null);
9
+ });
10
+ it('Method: parse', () => {
11
+ expect(adapter.parse('', 'iYYYY/iM/iD')).to.equal(null);
12
+ expect(adapter.parse('01/01/1395', 'iYYYY/iM/iD')).not.to.equal(null);
13
+ });
14
+ it('Method: isEqual', () => {
15
+ const anotherDate = adapter.date(TEST_DATE_ISO);
16
+ expect(adapter.isEqual(testDate, anotherDate)).to.equal(true);
17
+ expect(adapter.isEqual(null, null)).to.equal(true);
18
+ });
19
+ it('Method: isAfterYear', () => {
20
+ const afterYear = adapter.addYears(testDate, 2);
21
+ expect(adapter.isAfterYear(afterYear, testDate)).to.equal(true);
22
+ });
23
+ it('Method: isBeforeYear', () => {
24
+ const afterYear = adapter.addYears(testDate, 2);
25
+ expect(adapter.isBeforeYear(testDate, afterYear)).to.equal(true);
26
+ });
27
+ it('Method: startOfYear', () => {
28
+ expect(adapter.startOfYear(testDate)).toEqualDateTime(new Date('2018-09-11T00:00:00.000Z'));
29
+ });
30
+ it('Method: startOfMonth', () => {
31
+ expect(adapter.startOfMonth(testDate)).toEqualDateTime(new Date('2018-10-10T00:00:00.000Z'));
32
+ });
33
+ it('Method: endOfYear', () => {
34
+ expect(adapter.endOfYear(testDate)).toEqualDateTime(new Date('2019-08-30T23:59:59.999Z'));
35
+ });
36
+ it('Method: endOfMonth', () => {
37
+ expect(adapter.endOfMonth(testDate)).toEqualDateTime(new Date('2018-11-08T23:59:59.999Z'));
38
+ });
39
+ it('Method: getYear', () => {
40
+ expect(adapter.getYear(testDate)).to.equal(1440);
41
+ });
42
+ it('Method: getMonth', () => {
43
+ expect(adapter.getMonth(testDate)).to.equal(1);
44
+ });
45
+ it('Method: getDate', () => {
46
+ expect(adapter.getDate(testDate)).to.equal(21);
47
+ });
48
+ it('Method: setYear', () => {
49
+ expect(adapter.setYear(testDate, 1441)).toEqualDateTime(new Date('2019-10-20T11:44:00.000Z'));
50
+ });
51
+ it('Method: setDate', () => {
52
+ expect(adapter.setDate(testDate, 22)).toEqualDateTime(new Date('2018-10-31T11:44:00.000Z'));
53
+ });
54
+ it('Method: getNextMonth', () => {
55
+ expect(adapter.getNextMonth(testDate)).toEqualDateTime(new Date('2018-11-29T11:44:00.000Z'));
56
+ });
57
+ it('Method: getPreviousMonth', () => {
58
+ expect(adapter.getPreviousMonth(testDate)).toEqualDateTime(new Date('2018-10-01T11:44:00.000Z'));
59
+ });
60
+ it('Method: getWeekdays', () => {
61
+ expect(adapter.getWeekdays()).to.deep.equal(['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س']);
62
+ });
63
+ it('Method: getWeekArray', () => {
64
+ const weekArray = adapter.getWeekArray(testDate);
65
+ const expectedDate = new Date('2018-10-07T00:00:00.000Z');
66
+ weekArray.forEach(week => {
67
+ week.forEach(day => {
68
+ expect(day).toEqualDateTime(expectedDate);
69
+ expectedDate.setDate(expectedDate.getDate() + 1);
70
+ });
71
+ });
72
+ });
73
+ it('Method: getWeekNumber', () => {
74
+ expect(adapter.getWeekNumber(testDate)).to.equal(8);
75
+ });
76
+ describe('Method: getYearRange', () => {
77
+ it('Minimum limit', () => {
78
+ const anotherYear = adapter.setYear(testDate, 1355);
79
+ expect(() => adapter.getYearRange(anotherYear, testDate)).to.throw('min date must be on or after 1356-01-01 H (1937-03-14)');
80
+ });
81
+ it('Maximum limit', () => {
82
+ const anotherYear = adapter.setYear(testDate, 1500);
83
+ expect(() => adapter.getYearRange(testDate, anotherYear)).to.throw('max date must be on or before 1499-12-29 H (2076-11-26)');
84
+ });
85
+ });
86
+ it('Method: getYearRange', () => {
87
+ const anotherDate = adapter.setYear(testDate, 1445);
88
+ const yearRange = adapter.getYearRange(testDate, anotherDate);
89
+ expect(yearRange).to.have.length(6);
90
+ });
91
+ };
@@ -0,0 +1,13 @@
1
+ import { expect } from 'chai';
2
+ export const testLocalization = ({
3
+ adapter
4
+ }) => {
5
+ it('Method: formatNumber', () => {
6
+ expect(adapter.formatNumber('1')).to.equal('١');
7
+ expect(adapter.formatNumber('2')).to.equal('٢');
8
+ });
9
+ it('Method: getMeridiemText', () => {
10
+ expect(adapter.getMeridiemText('am')).to.equal('ص');
11
+ expect(adapter.getMeridiemText('pm')).to.equal('م');
12
+ });
13
+ };