@mui/x-date-pickers 6.14.0 → 6.16.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 (432) hide show
  1. package/CHANGELOG.md +167 -0
  2. package/DateCalendar/DateCalendar.js +6 -2
  3. package/DateCalendar/DateCalendar.types.d.ts +1 -1
  4. package/DateCalendar/DayCalendar.d.ts +6 -5
  5. package/DateCalendar/DayCalendar.js +18 -6
  6. package/DateCalendar/dayCalendarClasses.d.ts +2 -0
  7. package/DateCalendar/dayCalendarClasses.js +1 -1
  8. package/DateField/DateField.js +32 -4
  9. package/DateField/DateField.types.d.ts +3 -2
  10. package/DatePicker/DatePicker.js +6 -2
  11. package/DateTimeField/DateTimeField.js +32 -4
  12. package/DateTimeField/DateTimeField.types.d.ts +3 -2
  13. package/DateTimePicker/DateTimePicker.js +6 -2
  14. package/DateTimePicker/DateTimePickerToolbar.js +1 -0
  15. package/DesktopDatePicker/DesktopDatePicker.js +6 -2
  16. package/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -2
  17. package/MobileDatePicker/MobileDatePicker.js +6 -2
  18. package/MobileDateTimePicker/MobileDateTimePicker.js +6 -2
  19. package/StaticDatePicker/StaticDatePicker.js +6 -2
  20. package/StaticDateTimePicker/StaticDateTimePicker.js +6 -2
  21. package/TimeField/TimeField.js +29 -4
  22. package/TimeField/TimeField.types.d.ts +3 -2
  23. package/TimePicker/TimePickerToolbar.js +1 -0
  24. package/hooks/index.d.ts +1 -0
  25. package/hooks/index.js +1 -0
  26. package/hooks/package.json +6 -0
  27. package/hooks/useClearableField.d.ts +25 -0
  28. package/hooks/useClearableField.js +79 -0
  29. package/icons/index.d.ts +6 -0
  30. package/icons/index.js +8 -1
  31. package/index.d.ts +1 -0
  32. package/index.js +3 -2
  33. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +3 -1
  34. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +3 -2
  35. package/internals/hooks/useField/index.d.ts +1 -1
  36. package/internals/hooks/useField/useField.js +24 -6
  37. package/internals/hooks/useField/useField.types.d.ts +31 -1
  38. package/internals/hooks/useField/useField.utils.js +8 -3
  39. package/internals/index.d.ts +1 -1
  40. package/internals/models/props/toolbar.d.ts +3 -0
  41. package/internals/models/validation.d.ts +3 -0
  42. package/internals/utils/date-utils.d.ts +1 -0
  43. package/internals/utils/date-utils.js +4 -0
  44. package/legacy/DateCalendar/DateCalendar.js +6 -2
  45. package/legacy/DateCalendar/DayCalendar.js +22 -9
  46. package/legacy/DateCalendar/dayCalendarClasses.js +1 -1
  47. package/legacy/DateField/DateField.js +30 -3
  48. package/legacy/DatePicker/DatePicker.js +6 -2
  49. package/legacy/DateTimeField/DateTimeField.js +30 -3
  50. package/legacy/DateTimePicker/DateTimePicker.js +6 -2
  51. package/legacy/DateTimePicker/DateTimePickerToolbar.js +1 -0
  52. package/legacy/DesktopDatePicker/DesktopDatePicker.js +6 -2
  53. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -2
  54. package/legacy/MobileDatePicker/MobileDatePicker.js +6 -2
  55. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +6 -2
  56. package/legacy/StaticDatePicker/StaticDatePicker.js +6 -2
  57. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +6 -2
  58. package/legacy/TimeField/TimeField.js +27 -3
  59. package/legacy/TimePicker/TimePickerToolbar.js +1 -0
  60. package/legacy/hooks/index.js +1 -0
  61. package/legacy/hooks/useClearableField.js +80 -0
  62. package/legacy/icons/index.js +8 -1
  63. package/legacy/index.js +3 -2
  64. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +3 -1
  65. package/legacy/internals/hooks/useField/useField.js +28 -7
  66. package/legacy/internals/hooks/useField/useField.utils.js +16 -8
  67. package/legacy/internals/utils/date-utils.js +6 -0
  68. package/legacy/locales/beBY.js +2 -0
  69. package/legacy/locales/caES.js +2 -0
  70. package/legacy/locales/csCZ.js +2 -0
  71. package/legacy/locales/daDK.js +2 -0
  72. package/legacy/locales/deDE.js +2 -0
  73. package/legacy/locales/elGR.js +2 -0
  74. package/legacy/locales/enUS.js +1 -0
  75. package/legacy/locales/esES.js +2 -0
  76. package/legacy/locales/faIR.js +2 -0
  77. package/legacy/locales/fiFI.js +27 -11
  78. package/legacy/locales/frFR.js +2 -0
  79. package/legacy/locales/heIL.js +2 -0
  80. package/legacy/locales/huHU.js +1 -0
  81. package/legacy/locales/isIS.js +2 -0
  82. package/legacy/locales/itIT.js +2 -0
  83. package/legacy/locales/jaJP.js +2 -0
  84. package/legacy/locales/koKR.js +2 -0
  85. package/legacy/locales/kzKZ.js +2 -0
  86. package/legacy/locales/nbNO.js +2 -0
  87. package/legacy/locales/nlNL.js +2 -0
  88. package/legacy/locales/plPL.js +2 -0
  89. package/legacy/locales/ptBR.js +2 -0
  90. package/legacy/locales/roRO.js +1 -0
  91. package/legacy/locales/ruRU.js +2 -0
  92. package/legacy/locales/skSK.js +2 -0
  93. package/legacy/locales/svSE.js +2 -0
  94. package/legacy/locales/trTR.js +2 -0
  95. package/legacy/locales/ukUA.js +2 -0
  96. package/legacy/locales/urPK.js +2 -0
  97. package/legacy/locales/viVN.js +2 -0
  98. package/legacy/locales/zhCN.js +2 -0
  99. package/legacy/locales/zhHK.js +2 -0
  100. package/locales/beBY.d.ts +1 -0
  101. package/locales/beBY.js +2 -0
  102. package/locales/caES.d.ts +1 -0
  103. package/locales/caES.js +2 -0
  104. package/locales/csCZ.d.ts +1 -0
  105. package/locales/csCZ.js +2 -0
  106. package/locales/daDK.d.ts +1 -0
  107. package/locales/daDK.js +2 -0
  108. package/locales/deDE.d.ts +1 -0
  109. package/locales/deDE.js +2 -0
  110. package/locales/elGR.d.ts +1 -0
  111. package/locales/elGR.js +2 -0
  112. package/locales/enUS.d.ts +1 -0
  113. package/locales/enUS.js +1 -0
  114. package/locales/esES.d.ts +1 -0
  115. package/locales/esES.js +2 -0
  116. package/locales/faIR.d.ts +1 -0
  117. package/locales/faIR.js +2 -0
  118. package/locales/fiFI.d.ts +1 -0
  119. package/locales/fiFI.js +11 -11
  120. package/locales/frFR.d.ts +1 -0
  121. package/locales/frFR.js +2 -0
  122. package/locales/heIL.d.ts +1 -0
  123. package/locales/heIL.js +2 -0
  124. package/locales/huHU.d.ts +1 -0
  125. package/locales/huHU.js +1 -0
  126. package/locales/isIS.d.ts +1 -0
  127. package/locales/isIS.js +2 -0
  128. package/locales/itIT.d.ts +1 -0
  129. package/locales/itIT.js +2 -0
  130. package/locales/jaJP.d.ts +1 -0
  131. package/locales/jaJP.js +2 -0
  132. package/locales/koKR.d.ts +1 -0
  133. package/locales/koKR.js +2 -0
  134. package/locales/kzKZ.d.ts +1 -0
  135. package/locales/kzKZ.js +2 -0
  136. package/locales/nbNO.d.ts +1 -0
  137. package/locales/nbNO.js +2 -0
  138. package/locales/nlNL.d.ts +1 -0
  139. package/locales/nlNL.js +2 -0
  140. package/locales/plPL.d.ts +1 -0
  141. package/locales/plPL.js +2 -0
  142. package/locales/ptBR.d.ts +1 -0
  143. package/locales/ptBR.js +2 -0
  144. package/locales/roRO.d.ts +1 -0
  145. package/locales/roRO.js +1 -0
  146. package/locales/ruRU.d.ts +1 -0
  147. package/locales/ruRU.js +2 -0
  148. package/locales/skSK.d.ts +1 -0
  149. package/locales/skSK.js +2 -0
  150. package/locales/svSE.d.ts +1 -0
  151. package/locales/svSE.js +2 -0
  152. package/locales/trTR.d.ts +1 -0
  153. package/locales/trTR.js +2 -0
  154. package/locales/ukUA.d.ts +1 -0
  155. package/locales/ukUA.js +2 -0
  156. package/locales/urPK.d.ts +1 -0
  157. package/locales/urPK.js +2 -0
  158. package/locales/utils/getPickersLocalization.d.ts +1 -0
  159. package/locales/utils/pickersLocaleTextApi.d.ts +1 -0
  160. package/locales/viVN.d.ts +1 -0
  161. package/locales/viVN.js +2 -0
  162. package/locales/zhCN.d.ts +1 -0
  163. package/locales/zhCN.js +2 -0
  164. package/locales/zhHK.d.ts +1 -0
  165. package/locales/zhHK.js +2 -0
  166. package/models/adapters.d.ts +1 -0
  167. package/models/fields.d.ts +2 -0
  168. package/modern/DateCalendar/DateCalendar.js +6 -2
  169. package/modern/DateCalendar/DayCalendar.js +25 -11
  170. package/modern/DateCalendar/dayCalendarClasses.js +1 -1
  171. package/modern/DateField/DateField.js +32 -4
  172. package/modern/DatePicker/DatePicker.js +6 -2
  173. package/modern/DateTimeField/DateTimeField.js +32 -4
  174. package/modern/DateTimePicker/DateTimePicker.js +6 -2
  175. package/modern/DateTimePicker/DateTimePickerToolbar.js +1 -0
  176. package/modern/DesktopDatePicker/DesktopDatePicker.js +6 -2
  177. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -2
  178. package/modern/MobileDatePicker/MobileDatePicker.js +6 -2
  179. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +6 -2
  180. package/modern/StaticDatePicker/StaticDatePicker.js +6 -2
  181. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +6 -2
  182. package/modern/TimeField/TimeField.js +29 -4
  183. package/modern/TimePicker/TimePickerToolbar.js +1 -0
  184. package/modern/hooks/index.js +1 -0
  185. package/modern/hooks/useClearableField.js +78 -0
  186. package/modern/icons/index.js +8 -1
  187. package/modern/index.js +3 -2
  188. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +3 -1
  189. package/modern/internals/hooks/useField/useField.js +23 -6
  190. package/modern/internals/hooks/useField/useField.utils.js +8 -3
  191. package/modern/internals/utils/date-utils.js +4 -0
  192. package/modern/locales/beBY.js +2 -0
  193. package/modern/locales/caES.js +2 -0
  194. package/modern/locales/csCZ.js +2 -0
  195. package/modern/locales/daDK.js +2 -0
  196. package/modern/locales/deDE.js +2 -0
  197. package/modern/locales/elGR.js +2 -0
  198. package/modern/locales/enUS.js +1 -0
  199. package/modern/locales/esES.js +2 -0
  200. package/modern/locales/faIR.js +2 -0
  201. package/modern/locales/fiFI.js +11 -11
  202. package/modern/locales/frFR.js +2 -0
  203. package/modern/locales/heIL.js +2 -0
  204. package/modern/locales/huHU.js +1 -0
  205. package/modern/locales/isIS.js +2 -0
  206. package/modern/locales/itIT.js +2 -0
  207. package/modern/locales/jaJP.js +2 -0
  208. package/modern/locales/koKR.js +2 -0
  209. package/modern/locales/kzKZ.js +2 -0
  210. package/modern/locales/nbNO.js +2 -0
  211. package/modern/locales/nlNL.js +2 -0
  212. package/modern/locales/plPL.js +2 -0
  213. package/modern/locales/ptBR.js +2 -0
  214. package/modern/locales/roRO.js +1 -0
  215. package/modern/locales/ruRU.js +2 -0
  216. package/modern/locales/skSK.js +2 -0
  217. package/modern/locales/svSE.js +2 -0
  218. package/modern/locales/trTR.js +2 -0
  219. package/modern/locales/ukUA.js +2 -0
  220. package/modern/locales/urPK.js +2 -0
  221. package/modern/locales/viVN.js +2 -0
  222. package/modern/locales/zhCN.js +2 -0
  223. package/modern/locales/zhHK.js +2 -0
  224. package/node/DateCalendar/DateCalendar.js +6 -2
  225. package/node/DateCalendar/DayCalendar.js +24 -10
  226. package/node/DateCalendar/dayCalendarClasses.js +1 -1
  227. package/node/DateField/DateField.js +32 -4
  228. package/node/DatePicker/DatePicker.js +6 -2
  229. package/node/DateTimeField/DateTimeField.js +32 -4
  230. package/node/DateTimePicker/DateTimePicker.js +6 -2
  231. package/node/DateTimePicker/DateTimePickerToolbar.js +1 -0
  232. package/node/DesktopDatePicker/DesktopDatePicker.js +6 -2
  233. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -2
  234. package/node/MobileDatePicker/MobileDatePicker.js +6 -2
  235. package/node/MobileDateTimePicker/MobileDateTimePicker.js +6 -2
  236. package/node/StaticDatePicker/StaticDatePicker.js +6 -2
  237. package/node/StaticDateTimePicker/StaticDateTimePicker.js +6 -2
  238. package/node/TimeField/TimeField.js +29 -4
  239. package/node/TimePicker/TimePickerToolbar.js +1 -0
  240. package/node/hooks/index.js +12 -0
  241. package/node/hooks/useClearableField.js +87 -0
  242. package/node/icons/index.js +10 -2
  243. package/node/index.js +13 -1
  244. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +3 -1
  245. package/node/internals/hooks/useField/useField.js +23 -6
  246. package/node/internals/hooks/useField/useField.utils.js +8 -3
  247. package/node/internals/utils/date-utils.js +7 -2
  248. package/node/locales/beBY.js +2 -0
  249. package/node/locales/caES.js +2 -0
  250. package/node/locales/csCZ.js +2 -0
  251. package/node/locales/daDK.js +2 -0
  252. package/node/locales/deDE.js +2 -0
  253. package/node/locales/elGR.js +2 -0
  254. package/node/locales/enUS.js +1 -0
  255. package/node/locales/esES.js +2 -0
  256. package/node/locales/faIR.js +2 -0
  257. package/node/locales/fiFI.js +11 -11
  258. package/node/locales/frFR.js +2 -0
  259. package/node/locales/heIL.js +2 -0
  260. package/node/locales/huHU.js +1 -0
  261. package/node/locales/isIS.js +2 -0
  262. package/node/locales/itIT.js +2 -0
  263. package/node/locales/jaJP.js +2 -0
  264. package/node/locales/koKR.js +2 -0
  265. package/node/locales/kzKZ.js +2 -0
  266. package/node/locales/nbNO.js +2 -0
  267. package/node/locales/nlNL.js +2 -0
  268. package/node/locales/plPL.js +2 -0
  269. package/node/locales/ptBR.js +2 -0
  270. package/node/locales/roRO.js +1 -0
  271. package/node/locales/ruRU.js +2 -0
  272. package/node/locales/skSK.js +2 -0
  273. package/node/locales/svSE.js +2 -0
  274. package/node/locales/trTR.js +2 -0
  275. package/node/locales/ukUA.js +2 -0
  276. package/node/locales/urPK.js +2 -0
  277. package/node/locales/viVN.js +2 -0
  278. package/node/locales/zhCN.js +2 -0
  279. package/node/locales/zhHK.js +2 -0
  280. package/package.json +1 -1
  281. package/legacy/tests/describe.types.js +0 -1
  282. package/legacy/tests/describeAdapters/describeAdapters.js +0 -29
  283. package/legacy/tests/describeAdapters/index.js +0 -1
  284. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +0 -32
  285. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.types.js +0 -1
  286. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +0 -2
  287. package/legacy/tests/describeGregorianAdapter/index.js +0 -2
  288. package/legacy/tests/describeGregorianAdapter/testCalculations.js +0 -707
  289. package/legacy/tests/describeGregorianAdapter/testFormat.js +0 -26
  290. package/legacy/tests/describeGregorianAdapter/testLocalization.js +0 -49
  291. package/legacy/tests/describeHijriAdapter/describeHijriAdapter.js +0 -21
  292. package/legacy/tests/describeHijriAdapter/describeHijriAdapter.types.js +0 -1
  293. package/legacy/tests/describeHijriAdapter/index.js +0 -1
  294. package/legacy/tests/describeHijriAdapter/testCalculations.js +0 -167
  295. package/legacy/tests/describeHijriAdapter/testLocalization.js +0 -20
  296. package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.js +0 -21
  297. package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +0 -1
  298. package/legacy/tests/describeJalaliAdapter/index.js +0 -1
  299. package/legacy/tests/describeJalaliAdapter/testCalculations.js +0 -236
  300. package/legacy/tests/describeJalaliAdapter/testLocalization.js +0 -20
  301. package/legacy/tests/describePicker/describePicker.js +0 -159
  302. package/legacy/tests/describePicker/describePicker.types.js +0 -1
  303. package/legacy/tests/describePicker/index.js +0 -1
  304. package/legacy/tests/describeValidation/describeValidation.js +0 -31
  305. package/legacy/tests/describeValidation/describeValidation.types.js +0 -1
  306. package/legacy/tests/describeValidation/index.js +0 -1
  307. package/legacy/tests/describeValidation/testDayViewValidation.js +0 -281
  308. package/legacy/tests/describeValidation/testMinutesViewValidation.js +0 -194
  309. package/legacy/tests/describeValidation/testMonthViewValidation.js +0 -136
  310. package/legacy/tests/describeValidation/testTextFieldValidation.js +0 -463
  311. package/legacy/tests/describeValidation/testYearViewValidation.js +0 -95
  312. package/legacy/tests/describeValue/describeValue.js +0 -57
  313. package/legacy/tests/describeValue/describeValue.types.js +0 -1
  314. package/legacy/tests/describeValue/index.js +0 -1
  315. package/legacy/tests/describeValue/testControlledUnControlled.js +0 -237
  316. package/legacy/tests/describeValue/testPickerActionBar.js +0 -250
  317. package/legacy/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -362
  318. package/legacy/tests/describeValue/testShortcuts.js +0 -119
  319. package/modern/tests/describe.types.js +0 -1
  320. package/modern/tests/describeAdapters/describeAdapters.js +0 -29
  321. package/modern/tests/describeAdapters/index.js +0 -1
  322. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +0 -29
  323. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.types.js +0 -1
  324. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +0 -2
  325. package/modern/tests/describeGregorianAdapter/index.js +0 -2
  326. package/modern/tests/describeGregorianAdapter/testCalculations.js +0 -706
  327. package/modern/tests/describeGregorianAdapter/testFormat.js +0 -27
  328. package/modern/tests/describeGregorianAdapter/testLocalization.js +0 -50
  329. package/modern/tests/describeHijriAdapter/describeHijriAdapter.js +0 -21
  330. package/modern/tests/describeHijriAdapter/describeHijriAdapter.types.js +0 -1
  331. package/modern/tests/describeHijriAdapter/index.js +0 -1
  332. package/modern/tests/describeHijriAdapter/testCalculations.js +0 -164
  333. package/modern/tests/describeHijriAdapter/testLocalization.js +0 -21
  334. package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.js +0 -21
  335. package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +0 -1
  336. package/modern/tests/describeJalaliAdapter/index.js +0 -1
  337. package/modern/tests/describeJalaliAdapter/testCalculations.js +0 -237
  338. package/modern/tests/describeJalaliAdapter/testLocalization.js +0 -21
  339. package/modern/tests/describePicker/describePicker.js +0 -162
  340. package/modern/tests/describePicker/describePicker.types.js +0 -1
  341. package/modern/tests/describePicker/index.js +0 -1
  342. package/modern/tests/describeValidation/describeValidation.js +0 -31
  343. package/modern/tests/describeValidation/describeValidation.types.js +0 -1
  344. package/modern/tests/describeValidation/index.js +0 -1
  345. package/modern/tests/describeValidation/testDayViewValidation.js +0 -280
  346. package/modern/tests/describeValidation/testMinutesViewValidation.js +0 -193
  347. package/modern/tests/describeValidation/testMonthViewValidation.js +0 -137
  348. package/modern/tests/describeValidation/testTextFieldValidation.js +0 -470
  349. package/modern/tests/describeValidation/testYearViewValidation.js +0 -94
  350. package/modern/tests/describeValue/describeValue.js +0 -59
  351. package/modern/tests/describeValue/describeValue.types.js +0 -1
  352. package/modern/tests/describeValue/index.js +0 -1
  353. package/modern/tests/describeValue/testControlledUnControlled.js +0 -239
  354. package/modern/tests/describeValue/testPickerActionBar.js +0 -254
  355. package/modern/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -371
  356. package/modern/tests/describeValue/testShortcuts.js +0 -112
  357. package/node/tests/describe.types.js +0 -5
  358. package/node/tests/describeAdapters/describeAdapters.js +0 -37
  359. package/node/tests/describeAdapters/index.js +0 -12
  360. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +0 -37
  361. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.types.js +0 -5
  362. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +0 -10
  363. package/node/tests/describeGregorianAdapter/index.js +0 -19
  364. package/node/tests/describeGregorianAdapter/testCalculations.js +0 -711
  365. package/node/tests/describeGregorianAdapter/testFormat.js +0 -34
  366. package/node/tests/describeGregorianAdapter/testLocalization.js +0 -57
  367. package/node/tests/describeHijriAdapter/describeHijriAdapter.js +0 -29
  368. package/node/tests/describeHijriAdapter/describeHijriAdapter.types.js +0 -5
  369. package/node/tests/describeHijriAdapter/index.js +0 -12
  370. package/node/tests/describeHijriAdapter/testCalculations.js +0 -171
  371. package/node/tests/describeHijriAdapter/testLocalization.js +0 -28
  372. package/node/tests/describeJalaliAdapter/describeJalaliAdapter.js +0 -29
  373. package/node/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +0 -5
  374. package/node/tests/describeJalaliAdapter/index.js +0 -12
  375. package/node/tests/describeJalaliAdapter/testCalculations.js +0 -244
  376. package/node/tests/describeJalaliAdapter/testLocalization.js +0 -28
  377. package/node/tests/describePicker/describePicker.js +0 -173
  378. package/node/tests/describePicker/describePicker.types.js +0 -5
  379. package/node/tests/describePicker/index.js +0 -12
  380. package/node/tests/describeValidation/describeValidation.js +0 -39
  381. package/node/tests/describeValidation/describeValidation.types.js +0 -5
  382. package/node/tests/describeValidation/index.js +0 -12
  383. package/node/tests/describeValidation/testDayViewValidation.js +0 -290
  384. package/node/tests/describeValidation/testMinutesViewValidation.js +0 -203
  385. package/node/tests/describeValidation/testMonthViewValidation.js +0 -147
  386. package/node/tests/describeValidation/testTextFieldValidation.js +0 -480
  387. package/node/tests/describeValidation/testYearViewValidation.js +0 -104
  388. package/node/tests/describeValue/describeValue.js +0 -69
  389. package/node/tests/describeValue/describeValue.types.js +0 -5
  390. package/node/tests/describeValue/index.js +0 -12
  391. package/node/tests/describeValue/testControlledUnControlled.js +0 -248
  392. package/node/tests/describeValue/testPickerActionBar.js +0 -264
  393. package/node/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -381
  394. package/node/tests/describeValue/testShortcuts.js +0 -122
  395. package/tests/describe.types.js +0 -1
  396. package/tests/describeAdapters/describeAdapters.js +0 -29
  397. package/tests/describeAdapters/index.js +0 -1
  398. package/tests/describeGregorianAdapter/describeGregorianAdapter.js +0 -30
  399. package/tests/describeGregorianAdapter/describeGregorianAdapter.types.js +0 -1
  400. package/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +0 -2
  401. package/tests/describeGregorianAdapter/index.js +0 -2
  402. package/tests/describeGregorianAdapter/testCalculations.js +0 -706
  403. package/tests/describeGregorianAdapter/testFormat.js +0 -27
  404. package/tests/describeGregorianAdapter/testLocalization.js +0 -50
  405. package/tests/describeHijriAdapter/describeHijriAdapter.js +0 -21
  406. package/tests/describeHijriAdapter/describeHijriAdapter.types.js +0 -1
  407. package/tests/describeHijriAdapter/index.js +0 -1
  408. package/tests/describeHijriAdapter/testCalculations.js +0 -164
  409. package/tests/describeHijriAdapter/testLocalization.js +0 -21
  410. package/tests/describeJalaliAdapter/describeJalaliAdapter.js +0 -21
  411. package/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +0 -1
  412. package/tests/describeJalaliAdapter/index.js +0 -1
  413. package/tests/describeJalaliAdapter/testCalculations.js +0 -237
  414. package/tests/describeJalaliAdapter/testLocalization.js +0 -21
  415. package/tests/describePicker/describePicker.js +0 -162
  416. package/tests/describePicker/describePicker.types.js +0 -1
  417. package/tests/describePicker/index.js +0 -1
  418. package/tests/describeValidation/describeValidation.js +0 -31
  419. package/tests/describeValidation/describeValidation.types.js +0 -1
  420. package/tests/describeValidation/index.js +0 -1
  421. package/tests/describeValidation/testDayViewValidation.js +0 -280
  422. package/tests/describeValidation/testMinutesViewValidation.js +0 -193
  423. package/tests/describeValidation/testMonthViewValidation.js +0 -137
  424. package/tests/describeValidation/testTextFieldValidation.js +0 -470
  425. package/tests/describeValidation/testYearViewValidation.js +0 -94
  426. package/tests/describeValue/describeValue.js +0 -59
  427. package/tests/describeValue/describeValue.types.js +0 -1
  428. package/tests/describeValue/index.js +0 -1
  429. package/tests/describeValue/testControlledUnControlled.js +0 -239
  430. package/tests/describeValue/testPickerActionBar.js +0 -254
  431. package/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -371
  432. package/tests/describeValue/testShortcuts.js +0 -112
@@ -1,94 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import * as React from 'react';
3
- import { expect } from 'chai';
4
- import { screen } from '@mui/monorepo/test/utils';
5
- import { adapterToUse } from 'test/utils/pickers';
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- export const testYearViewValidation = (ElementToTest, getOptions) => {
8
- const {
9
- views,
10
- componentFamily,
11
- render
12
- } = getOptions();
13
- if (componentFamily === 'field' || !views.includes('year')) {
14
- return;
15
- }
16
- describe('year view:', () => {
17
- const defaultProps = _extends({
18
- onChange: () => {}
19
- }, views.length > 1 && {
20
- views: ['year'],
21
- view: 'year',
22
- openTo: 'year'
23
- }, componentFamily !== 'calendar' && {
24
- open: true,
25
- reduceAnimations: true,
26
- slotProps: {
27
- toolbar: {
28
- hidden: true
29
- }
30
- }
31
- });
32
- it('should apply shouldDisableYear', function test() {
33
- render( /*#__PURE__*/_jsx(ElementToTest, _extends({}, defaultProps, {
34
- value: null,
35
- shouldDisableYear: date => adapterToUse.getYear(date) === 2018
36
- })));
37
- expect(screen.queryByText('2018')).to.have.attribute('disabled');
38
- expect(screen.queryByText('2019')).not.to.have.attribute('disabled');
39
- expect(screen.queryByText('2017')).not.to.have.attribute('disabled');
40
- });
41
- it('should apply disablePast', function test() {
42
- let now;
43
- function WithFakeTimer(props) {
44
- now = adapterToUse.date(new Date());
45
- return /*#__PURE__*/_jsx(ElementToTest, _extends({
46
- value: now
47
- }, props));
48
- }
49
- render( /*#__PURE__*/_jsx(WithFakeTimer, _extends({}, defaultProps, {
50
- disablePast: true
51
- })));
52
- const nextYear = adapterToUse.addYears(now, 1);
53
- const prevYear = adapterToUse.addYears(now, -1);
54
- expect(screen.queryByText(adapterToUse.format(now, 'year'))).not.to.have.attribute('disabled');
55
- expect(screen.queryByText(adapterToUse.format(nextYear, 'year'))).not.to.have.attribute('disabled');
56
- expect(screen.queryByText(adapterToUse.format(prevYear, 'year'))).to.have.attribute('disabled');
57
- });
58
- it('should apply disableFuture', function test() {
59
- let now;
60
- function WithFakeTimer(props) {
61
- now = adapterToUse.date(new Date());
62
- return /*#__PURE__*/_jsx(ElementToTest, _extends({
63
- value: now
64
- }, props));
65
- }
66
- render( /*#__PURE__*/_jsx(WithFakeTimer, _extends({}, defaultProps, {
67
- disableFuture: true
68
- })));
69
- const nextYear = adapterToUse.addYears(now, 1);
70
- const prevYear = adapterToUse.addYears(now, -1);
71
- expect(screen.queryByText(adapterToUse.format(now, 'year'))).not.to.have.attribute('disabled');
72
- expect(screen.queryByText(adapterToUse.format(nextYear, 'year'))).to.have.attribute('disabled');
73
- expect(screen.queryByText(adapterToUse.format(prevYear, 'year'))).not.to.have.attribute('disabled');
74
- });
75
- it('should apply minDate', function test() {
76
- render( /*#__PURE__*/_jsx(ElementToTest, _extends({}, defaultProps, {
77
- value: adapterToUse.date(new Date(2019, 5, 15)),
78
- minDate: adapterToUse.date(new Date(2019, 5, 4))
79
- })));
80
- expect(screen.queryByText('2018')).to.equal(null);
81
- expect(screen.queryByText('2019')).not.to.equal(null);
82
- expect(screen.queryByText('2020')).not.to.equal(null);
83
- });
84
- it('should apply maxDate', function test() {
85
- render( /*#__PURE__*/_jsx(ElementToTest, _extends({}, defaultProps, {
86
- value: adapterToUse.date(new Date(2019, 5, 15)),
87
- maxDate: adapterToUse.date(new Date(2019, 5, 4))
88
- })));
89
- expect(screen.queryByText('2018')).not.to.equal(null);
90
- expect(screen.queryByText('2019')).not.to.equal(null);
91
- expect(screen.queryByText('2020')).to.equal(null);
92
- });
93
- });
94
- };
@@ -1,59 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["hook"];
4
- import * as React from 'react';
5
- import createDescribe from '@mui/monorepo/test/utils/createDescribe';
6
- import { buildFieldInteractions } from 'test/utils/pickers';
7
- import { testControlledUnControlled } from './testControlledUnControlled';
8
- import { testPickerOpenCloseLifeCycle } from './testPickerOpenCloseLifeCycle';
9
- import { testPickerActionBar } from './testPickerActionBar';
10
- import { testShortcuts } from './testShortcuts';
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- const TEST_SUITES = [testControlledUnControlled, testPickerOpenCloseLifeCycle, testPickerActionBar, testShortcuts];
13
- function innerDescribeValue(ElementToTest, getOptions) {
14
- const options = getOptions();
15
- const {
16
- defaultProps,
17
- render,
18
- clock,
19
- componentFamily
20
- } = options;
21
- function WrappedElementToTest(props) {
22
- const {
23
- hook
24
- } = props,
25
- other = _objectWithoutPropertiesLoose(props, _excluded);
26
- const hookResult = hook == null ? void 0 : hook(props);
27
- return /*#__PURE__*/_jsx(ElementToTest, _extends({}, defaultProps, other, hookResult));
28
- }
29
- let renderWithProps;
30
- if (componentFamily === 'field' || componentFamily === 'picker') {
31
- const interactions = buildFieldInteractions({
32
- clock,
33
- render,
34
- Component: ElementToTest
35
- });
36
- renderWithProps = (props, hook) => interactions.renderWithProps(_extends({}, defaultProps, props), hook, componentFamily);
37
- } else {
38
- renderWithProps = (props, hook) => {
39
- const response = render( /*#__PURE__*/_jsx(WrappedElementToTest, _extends({}, props, {
40
- hook: hook
41
- })));
42
- return _extends({}, response, {
43
- input: null,
44
- selectSection: () => {
45
- throw new Error('You can only select a section on components that render a field');
46
- }
47
- });
48
- };
49
- }
50
- TEST_SUITES.forEach(testSuite => {
51
- testSuite(WrappedElementToTest, _extends({}, options, {
52
- renderWithProps
53
- }));
54
- });
55
- }
56
- /**
57
- * Tests various aspects of component value.
58
- */
59
- export const describeValue = createDescribe('Value API', innerDescribeValue);
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export { describeValue } from './describeValue';
@@ -1,239 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["render", "renderWithProps", "values", "componentFamily", "emptyValue", "assertRenderedValue", "setNewValue", "clock"];
4
- import * as React from 'react';
5
- import { expect } from 'chai';
6
- import { spy } from 'sinon';
7
- import { screen, act, userEvent } from '@mui/monorepo/test/utils';
8
- import { inputBaseClasses } from '@mui/material/InputBase';
9
- import { getExpectedOnChangeCount } from 'test/utils/pickers';
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
- export const testControlledUnControlled = (ElementToTest, options) => {
13
- const {
14
- render,
15
- renderWithProps,
16
- values,
17
- componentFamily,
18
- emptyValue,
19
- assertRenderedValue,
20
- setNewValue,
21
- clock
22
- } = options,
23
- pickerParams = _objectWithoutPropertiesLoose(options, _excluded);
24
- const params = pickerParams;
25
- describe('Controlled / uncontrolled value', () => {
26
- it('should render `props.defaultValue` if no `props.value` is passed', () => {
27
- render( /*#__PURE__*/_jsx(ElementToTest, {
28
- defaultValue: values[0]
29
- }));
30
- assertRenderedValue(values[0]);
31
- });
32
- it('should render `props.value` if passed', () => {
33
- render( /*#__PURE__*/_jsx(ElementToTest, {
34
- value: values[0]
35
- }));
36
- assertRenderedValue(values[0]);
37
- });
38
- it('should render `props.value` if both `props.defaultValue` and `props.value` are passed', () => {
39
- render( /*#__PURE__*/_jsx(ElementToTest, {
40
- defaultValue: values[0],
41
- value: values[1]
42
- }));
43
- assertRenderedValue(values[1]);
44
- });
45
- it('should render nothing if neither `props.defaultValue` or `props.value` are passed', () => {
46
- render( /*#__PURE__*/_jsx(ElementToTest, {}));
47
- assertRenderedValue(emptyValue);
48
- });
49
- it('should call onChange when updating a value defined with `props.defaultValue` and update the rendered value', () => {
50
- const onChange = spy();
51
- const {
52
- selectSection
53
- } = renderWithProps({
54
- defaultValue: values[0],
55
- onChange
56
- });
57
- const newValue = setNewValue(values[0], {
58
- selectSection
59
- });
60
- assertRenderedValue(newValue);
61
- // TODO: Clean this exception or change the clock behavior
62
- expect(onChange.callCount).to.equal(getExpectedOnChangeCount(componentFamily, params));
63
- if (Array.isArray(newValue)) {
64
- newValue.forEach((value, index) => {
65
- expect(onChange.lastCall.args[0][index]).toEqualDateTime(value);
66
- });
67
- } else {
68
- expect(onChange.lastCall.args[0]).toEqualDateTime(newValue);
69
- }
70
- });
71
- it('should call onChange when updating a value defined with `props.value`', () => {
72
- const onChange = spy();
73
- const useControlledElement = props => {
74
- const [value, setValue] = React.useState((props == null ? void 0 : props.value) || null);
75
- const handleChange = React.useCallback(newValue => {
76
- setValue(newValue);
77
- props == null || props.onChange(newValue);
78
- }, [props]);
79
- return {
80
- value,
81
- onChange: handleChange
82
- };
83
- };
84
- const {
85
- selectSection
86
- } = renderWithProps({
87
- value: values[0],
88
- onChange
89
- }, useControlledElement);
90
- const newValue = setNewValue(values[0], {
91
- selectSection
92
- });
93
- expect(onChange.callCount).to.equal(getExpectedOnChangeCount(componentFamily, params));
94
- if (Array.isArray(newValue)) {
95
- newValue.forEach((value, index) => {
96
- expect(onChange.lastCall.args[0][index]).toEqualDateTime(value);
97
- });
98
- } else {
99
- expect(onChange.lastCall.args[0]).toEqualDateTime(newValue);
100
- }
101
- });
102
- it('should react to `props.value` update', () => {
103
- const {
104
- setProps
105
- } = render( /*#__PURE__*/_jsx(ElementToTest, {
106
- value: values[0]
107
- }));
108
- setProps({
109
- value: values[1]
110
- });
111
- assertRenderedValue(values[1]);
112
- });
113
- ['readOnly', 'disabled'].forEach(prop => {
114
- it(`should apply ${prop}="true" prop`, () => {
115
- if (!['field', 'picker'].includes(componentFamily)) {
116
- return;
117
- }
118
- const handleChange = spy();
119
- render( /*#__PURE__*/_jsx(ElementToTest, {
120
- value: values[0],
121
- onChange: handleChange,
122
- [prop]: true
123
- }));
124
- const textBoxes = screen.getAllByRole('textbox');
125
- textBoxes.forEach(textbox => {
126
- expect(textbox).to.have.attribute(prop.toLowerCase());
127
- });
128
- });
129
- });
130
- it('should not allow editing with keyboard in mobile pickers', () => {
131
- if (componentFamily !== 'picker' || params.variant !== 'mobile') {
132
- return;
133
- }
134
- const handleChange = spy();
135
- render( /*#__PURE__*/_jsx(ElementToTest, {
136
- defaultValue: values[0],
137
- onChange: handleChange
138
- }));
139
- const input = screen.getAllByRole('textbox')[0];
140
- act(() => {
141
- input.focus();
142
- });
143
- clock.runToLast();
144
- userEvent.keyPress(input, {
145
- key: 'ArrowUp'
146
- });
147
- clock.runToLast();
148
- expect(handleChange.callCount).to.equal(0);
149
- });
150
- it('should have correct labelledby relationship when toolbar is shown', () => {
151
- if (componentFamily !== 'picker' || params.variant === 'desktop' && params.type === 'date-range') {
152
- return;
153
- }
154
- render( /*#__PURE__*/_jsx(ElementToTest, {
155
- open: true,
156
- slotProps: {
157
- toolbar: {
158
- hidden: false
159
- }
160
- },
161
- localeText: {
162
- toolbarTitle: 'Test toolbar'
163
- }
164
- }));
165
- expect(screen.getByLabelText('Test toolbar')).to.have.attribute('role', 'dialog');
166
- });
167
- it('should have correct labelledby relationship with provided label when toolbar is hidden', () => {
168
- if (componentFamily !== 'picker' || params.variant === 'desktop' && params.type === 'date-range') {
169
- return;
170
- }
171
- render( /*#__PURE__*/_jsx(ElementToTest, _extends({
172
- open: true
173
- }, params.type === 'date-range' ? {
174
- localeText: {
175
- start: 'test',
176
- end: 'relationship'
177
- }
178
- } : {
179
- label: 'test relationship'
180
- }, {
181
- slotProps: {
182
- toolbar: {
183
- hidden: true
184
- }
185
- }
186
- })));
187
- expect(screen.getByLabelText('test relationship', {
188
- selector: 'div'
189
- })).to.have.attribute('role', 'dialog');
190
- });
191
- it('should have correct labelledby relationship without label and hidden toolbar but external props', () => {
192
- if (componentFamily !== 'picker' || params.variant === 'desktop' && params.type === 'date-range') {
193
- return;
194
- }
195
- render( /*#__PURE__*/_jsxs("div", {
196
- children: [/*#__PURE__*/_jsx("div", {
197
- id: "label-id",
198
- children: "external label"
199
- }), /*#__PURE__*/_jsx(ElementToTest, _extends({
200
- open: true
201
- }, params.type === 'date-range' && {
202
- localeText: {
203
- start: '',
204
- end: ''
205
- }
206
- }, {
207
- slotProps: {
208
- toolbar: {
209
- hidden: true
210
- },
211
- [params.variant === 'desktop' ? 'popper' : 'mobilePaper']: {
212
- 'aria-labelledby': 'label-id'
213
- }
214
- }
215
- }))]
216
- }));
217
- expect(screen.getByLabelText('external label')).to.have.attribute('role', 'dialog');
218
- });
219
- describe('slots: textField', () => {
220
- it('should respect provided `error="true"` prop', () => {
221
- if (!['field', 'picker'].includes(componentFamily)) {
222
- return;
223
- }
224
- render( /*#__PURE__*/_jsx(ElementToTest, {
225
- slotProps: {
226
- textField: {
227
- error: true
228
- }
229
- }
230
- }));
231
- const textBoxes = screen.getAllByRole('textbox');
232
- textBoxes.forEach(textbox => {
233
- expect(textbox.parentElement).to.have.class(inputBaseClasses.error);
234
- expect(textbox).to.have.attribute('aria-invalid', 'true');
235
- });
236
- });
237
- });
238
- });
239
- };
@@ -1,254 +0,0 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
- const _excluded = ["componentFamily", "render", "renderWithProps", "values", "emptyValue", "setNewValue"];
3
- import * as React from 'react';
4
- import { expect } from 'chai';
5
- import { spy } from 'sinon';
6
- import { screen, userEvent } from '@mui/monorepo/test/utils';
7
- import { adapterToUse, getExpectedOnChangeCount, expectPickerChangeHandlerValue } from 'test/utils/pickers';
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- export const testPickerActionBar = (ElementToTest, options) => {
10
- const {
11
- componentFamily,
12
- render,
13
- renderWithProps,
14
- values,
15
- emptyValue,
16
- setNewValue
17
- } = options,
18
- pickerParams = _objectWithoutPropertiesLoose(options, _excluded);
19
- if (componentFamily !== 'picker') {
20
- return;
21
- }
22
- describe('Picker action bar', () => {
23
- describe('clear action', () => {
24
- it('should call onClose, onChange with empty value and onAccept with empty value', () => {
25
- const onChange = spy();
26
- const onAccept = spy();
27
- const onClose = spy();
28
- render( /*#__PURE__*/_jsx(ElementToTest, {
29
- onChange: onChange,
30
- onAccept: onAccept,
31
- onClose: onClose,
32
- defaultValue: values[0],
33
- open: true,
34
- slotProps: {
35
- actionBar: {
36
- actions: ['clear']
37
- }
38
- }
39
- }));
40
-
41
- // Clear the date
42
- userEvent.mousePress(screen.getByText(/clear/i));
43
- expect(onChange.callCount).to.equal(1);
44
- expectPickerChangeHandlerValue(pickerParams.type, onChange, emptyValue);
45
- expect(onAccept.callCount).to.equal(1);
46
- expectPickerChangeHandlerValue(pickerParams.type, onAccept, emptyValue);
47
- expect(onClose.callCount).to.equal(1);
48
- });
49
- it('should not call onChange or onAccept if the value is already empty value', () => {
50
- const onChange = spy();
51
- const onAccept = spy();
52
- const onClose = spy();
53
- render( /*#__PURE__*/_jsx(ElementToTest, {
54
- onChange: onChange,
55
- onAccept: onAccept,
56
- onClose: onClose,
57
- open: true,
58
- slotProps: {
59
- actionBar: {
60
- actions: ['clear']
61
- }
62
- },
63
- value: emptyValue
64
- }));
65
-
66
- // Clear the date
67
- userEvent.mousePress(screen.getByText(/clear/i));
68
- expect(onChange.callCount).to.equal(0);
69
- expect(onAccept.callCount).to.equal(0);
70
- expect(onClose.callCount).to.equal(1);
71
- });
72
- });
73
- describe('cancel action', () => {
74
- it('should call onClose and onChange with the initial value', () => {
75
- const onChange = spy();
76
- const onAccept = spy();
77
- const onClose = spy();
78
- const {
79
- selectSection
80
- } = renderWithProps({
81
- onChange,
82
- onAccept,
83
- onClose,
84
- open: true,
85
- value: values[0],
86
- slotProps: {
87
- actionBar: {
88
- actions: ['cancel']
89
- }
90
- },
91
- closeOnSelect: false
92
- });
93
-
94
- // Change the value (already tested)
95
- setNewValue(values[0], {
96
- isOpened: true,
97
- selectSection
98
- });
99
-
100
- // Cancel the modifications
101
- userEvent.mousePress(screen.getByText(/cancel/i));
102
- expect(onChange.callCount).to.equal(getExpectedOnChangeCount(componentFamily, pickerParams) + 1);
103
- if (pickerParams.type === 'date-range') {
104
- values[0].forEach((value, index) => {
105
- expect(onChange.lastCall.args[0][index]).toEqualDateTime(value);
106
- });
107
- } else {
108
- expect(onChange.lastCall.args[0]).toEqualDateTime(values[0]);
109
- }
110
- expect(onAccept.callCount).to.equal(0);
111
- expect(onClose.callCount).to.equal(1);
112
- });
113
- it('should not call onChange if no prior value modification', () => {
114
- const onChange = spy();
115
- const onAccept = spy();
116
- const onClose = spy();
117
- render( /*#__PURE__*/_jsx(ElementToTest, {
118
- onChange: onChange,
119
- onAccept: onAccept,
120
- onClose: onClose,
121
- open: true,
122
- value: values[0],
123
- slotProps: {
124
- actionBar: {
125
- actions: ['cancel']
126
- }
127
- },
128
- closeOnSelect: false
129
- }));
130
-
131
- // Cancel the modifications
132
- userEvent.mousePress(screen.getByText(/cancel/i));
133
- expect(onChange.callCount).to.equal(0);
134
- expect(onAccept.callCount).to.equal(0);
135
- expect(onClose.callCount).to.equal(1);
136
- });
137
- });
138
- describe('confirm action', () => {
139
- it('should call onClose and onAccept with the live value', () => {
140
- const onChange = spy();
141
- const onAccept = spy();
142
- const onClose = spy();
143
- const {
144
- selectSection
145
- } = renderWithProps({
146
- onChange,
147
- onAccept,
148
- onClose,
149
- open: true,
150
- defaultValue: values[0],
151
- slotProps: {
152
- actionBar: {
153
- actions: ['accept']
154
- }
155
- },
156
- closeOnSelect: false
157
- });
158
-
159
- // Change the value (already tested)
160
- setNewValue(values[0], {
161
- isOpened: true,
162
- selectSection
163
- });
164
-
165
- // Accept the modifications
166
- userEvent.mousePress(screen.getByText(/ok/i));
167
- expect(onChange.callCount).to.equal(getExpectedOnChangeCount(componentFamily, pickerParams)); // The accepted value as already been committed, don't call onChange again
168
- expect(onAccept.callCount).to.equal(1);
169
- expect(onClose.callCount).to.equal(1);
170
- });
171
- it('should call onChange, onClose and onAccept when validating the default value', () => {
172
- const onChange = spy();
173
- const onAccept = spy();
174
- const onClose = spy();
175
- render( /*#__PURE__*/_jsx(ElementToTest, {
176
- onChange: onChange,
177
- onAccept: onAccept,
178
- onClose: onClose,
179
- open: true,
180
- defaultValue: values[0],
181
- slotProps: {
182
- actionBar: {
183
- actions: ['accept']
184
- }
185
- },
186
- closeOnSelect: false
187
- }));
188
-
189
- // Accept the modifications
190
- userEvent.mousePress(screen.getByText(/ok/i));
191
- expect(onChange.callCount).to.equal(1);
192
- expect(onAccept.callCount).to.equal(1);
193
- expect(onClose.callCount).to.equal(1);
194
- });
195
- it('should call onClose but not onAccept when validating an already validated value', () => {
196
- const onChange = spy();
197
- const onAccept = spy();
198
- const onClose = spy();
199
- render( /*#__PURE__*/_jsx(ElementToTest, {
200
- onChange: onChange,
201
- onAccept: onAccept,
202
- onClose: onClose,
203
- open: true,
204
- value: values[0],
205
- slotProps: {
206
- actionBar: {
207
- actions: ['accept']
208
- }
209
- },
210
- closeOnSelect: false
211
- }));
212
-
213
- // Accept the modifications
214
- userEvent.mousePress(screen.getByText(/ok/i));
215
- expect(onChange.callCount).to.equal(0);
216
- expect(onAccept.callCount).to.equal(0);
217
- expect(onClose.callCount).to.equal(1);
218
- });
219
- });
220
- describe('today action', () => {
221
- it("should call onClose, onChange with today's value and onAccept with today's value", () => {
222
- const onChange = spy();
223
- const onAccept = spy();
224
- const onClose = spy();
225
- render( /*#__PURE__*/_jsx(ElementToTest, {
226
- onChange: onChange,
227
- onAccept: onAccept,
228
- onClose: onClose,
229
- defaultValue: values[0],
230
- open: true,
231
- slotProps: {
232
- actionBar: {
233
- actions: ['today']
234
- }
235
- }
236
- }));
237
- userEvent.mousePress(screen.getByText(/today/i));
238
- let startOfToday;
239
- if (pickerParams.type === 'date') {
240
- startOfToday = adapterToUse.startOfDay(adapterToUse.date());
241
- } else if (pickerParams.type === 'date-range') {
242
- startOfToday = [adapterToUse.date(), adapterToUse.date()];
243
- } else {
244
- startOfToday = adapterToUse.date();
245
- }
246
- expect(onChange.callCount).to.equal(1);
247
- expectPickerChangeHandlerValue(pickerParams.type, onChange, startOfToday);
248
- expect(onAccept.callCount).to.equal(1);
249
- expectPickerChangeHandlerValue(pickerParams.type, onAccept, startOfToday);
250
- expect(onClose.callCount).to.equal(1);
251
- });
252
- });
253
- });
254
- };