@mui/x-date-pickers 6.5.0 → 6.6.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 (297) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +6 -0
  2. package/AdapterDateFns/AdapterDateFns.js +18 -0
  3. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +6 -0
  4. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
  5. package/AdapterDayjs/AdapterDayjs.d.ts +14 -1
  6. package/AdapterDayjs/AdapterDayjs.js +131 -14
  7. package/AdapterLuxon/AdapterLuxon.d.ts +7 -1
  8. package/AdapterLuxon/AdapterLuxon.js +58 -9
  9. package/AdapterMoment/AdapterMoment.d.ts +12 -1
  10. package/AdapterMoment/AdapterMoment.js +91 -2
  11. package/AdapterMomentHijri/AdapterMomentHijri.d.ts +4 -0
  12. package/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
  13. package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +4 -0
  14. package/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
  15. package/CHANGELOG.md +78 -2
  16. package/DateCalendar/DateCalendar.js +2 -2
  17. package/DateCalendar/DayCalendar.d.ts +1 -1
  18. package/DateCalendar/PickersCalendarHeader.d.ts +1 -1
  19. package/DateCalendar/PickersCalendarHeader.js +2 -2
  20. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  21. package/DateCalendar/PickersSlideTransition.d.ts +1 -1
  22. package/DateField/DateField.js +6 -0
  23. package/DateField/DateField.types.d.ts +1 -1
  24. package/DateTimeField/DateTimeField.js +6 -0
  25. package/DateTimeField/DateTimeField.types.d.ts +1 -1
  26. package/DateTimePicker/DateTimePicker.js +19 -2
  27. package/DateTimePicker/DateTimePicker.types.d.ts +4 -3
  28. package/DateTimePicker/DateTimePickerTabs.d.ts +3 -3
  29. package/DateTimePicker/DateTimePickerTabs.js +6 -5
  30. package/DateTimePicker/DateTimePickerToolbar.d.ts +5 -4
  31. package/DateTimePicker/DateTimePickerToolbar.js +46 -22
  32. package/DateTimePicker/shared.d.ts +6 -6
  33. package/DayCalendarSkeleton/DayCalendarSkeleton.d.ts +1 -1
  34. package/DesktopDatePicker/DesktopDatePicker.js +2 -2
  35. package/DesktopDateTimePicker/DesktopDateTimePicker.js +53 -10
  36. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +10 -3
  37. package/DesktopTimePicker/DesktopTimePicker.js +2 -2
  38. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +8 -7
  39. package/MonthCalendar/MonthCalendar.js +2 -2
  40. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
  41. package/PickersActionBar/PickersActionBar.d.ts +2 -2
  42. package/PickersLayout/PickersLayout.d.ts +1 -1
  43. package/PickersShortcuts/PickersShortcuts.d.ts +2 -2
  44. package/README.md +5 -5
  45. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +1 -1
  46. package/TimeClock/Clock.d.ts +1 -1
  47. package/TimeClock/ClockNumber.d.ts +1 -1
  48. package/TimeClock/ClockNumbers.d.ts +2 -2
  49. package/TimeClock/ClockPointer.d.ts +1 -1
  50. package/TimeField/TimeField.js +6 -0
  51. package/TimeField/TimeField.types.d.ts +1 -1
  52. package/TimePicker/TimePickerToolbar.d.ts +2 -2
  53. package/YearCalendar/YearCalendar.js +2 -2
  54. package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +13 -0
  55. package/dateTimeViewRenderers/dateTimeViewRenderers.js +148 -0
  56. package/dateTimeViewRenderers/index.d.ts +2 -0
  57. package/dateTimeViewRenderers/index.js +1 -0
  58. package/dateTimeViewRenderers/package.json +6 -0
  59. package/dateViewRenderers/dateViewRenderers.d.ts +3 -2
  60. package/dateViewRenderers/dateViewRenderers.js +2 -2
  61. package/icons/index.d.ts +42 -0
  62. package/{internals/components/icons → icons}/index.js +7 -7
  63. package/icons/package.json +6 -0
  64. package/index.d.ts +1 -0
  65. package/index.js +3 -2
  66. package/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.d.ts +2 -0
  67. package/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
  68. package/internals/components/DateTimeViewWrapper/index.d.ts +1 -0
  69. package/internals/components/DateTimeViewWrapper/index.js +1 -0
  70. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  71. package/internals/components/PickersModalDialog.d.ts +1 -1
  72. package/internals/components/PickersPopper.d.ts +1 -1
  73. package/internals/components/PickersToolbarButton.d.ts +1 -0
  74. package/internals/components/PickersToolbarButton.js +8 -3
  75. package/internals/constants/dimensions.d.ts +1 -0
  76. package/internals/constants/dimensions.js +2 -1
  77. package/internals/demo/DemoContainer.d.ts +2 -2
  78. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
  79. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
  80. package/internals/hooks/useField/useField.d.ts +1 -1
  81. package/internals/hooks/useField/useField.js +8 -3
  82. package/internals/hooks/useField/useField.types.d.ts +8 -2
  83. package/internals/hooks/useField/useFieldState.d.ts +1 -1
  84. package/internals/hooks/useField/useFieldState.js +22 -2
  85. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
  86. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +2 -2
  87. package/internals/hooks/usePicker/usePickerValue.types.d.ts +32 -2
  88. package/internals/hooks/usePicker/usePickerViews.js +8 -10
  89. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +2 -2
  90. package/internals/hooks/useViews.js +10 -9
  91. package/internals/index.d.ts +2 -1
  92. package/internals/index.js +2 -1
  93. package/internals/models/fields.d.ts +1 -1
  94. package/internals/utils/date-utils.d.ts +4 -1
  95. package/internals/utils/date-utils.js +4 -1
  96. package/internals/utils/fields.js +1 -1
  97. package/internals/utils/getDefaultReferenceDate.d.ts +15 -0
  98. package/internals/utils/getDefaultReferenceDate.js +62 -0
  99. package/internals/utils/time-utils.d.ts +2 -1
  100. package/internals/utils/time-utils.js +1 -0
  101. package/internals/utils/valueManagers.js +21 -3
  102. package/legacy/AdapterDateFns/AdapterDateFns.js +18 -0
  103. package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
  104. package/legacy/AdapterDayjs/AdapterDayjs.js +135 -14
  105. package/legacy/AdapterLuxon/AdapterLuxon.js +58 -9
  106. package/legacy/AdapterMoment/AdapterMoment.js +97 -6
  107. package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
  108. package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
  109. package/legacy/DateCalendar/DateCalendar.js +2 -2
  110. package/legacy/DateCalendar/PickersCalendarHeader.js +2 -2
  111. package/legacy/DateField/DateField.js +6 -0
  112. package/legacy/DateTimeField/DateTimeField.js +6 -0
  113. package/legacy/DateTimePicker/DateTimePicker.js +19 -2
  114. package/legacy/DateTimePicker/DateTimePickerTabs.js +6 -5
  115. package/legacy/DateTimePicker/DateTimePickerToolbar.js +51 -23
  116. package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -2
  117. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +54 -10
  118. package/legacy/DesktopTimePicker/DesktopTimePicker.js +2 -2
  119. package/legacy/MonthCalendar/MonthCalendar.js +2 -2
  120. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
  121. package/legacy/TimeField/TimeField.js +6 -0
  122. package/legacy/YearCalendar/YearCalendar.js +2 -2
  123. package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +147 -0
  124. package/legacy/dateTimeViewRenderers/index.js +1 -0
  125. package/legacy/dateViewRenderers/dateViewRenderers.js +2 -4
  126. package/legacy/{internals/components/icons → icons}/index.js +7 -7
  127. package/legacy/index.js +3 -2
  128. package/legacy/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
  129. package/legacy/internals/components/DateTimeViewWrapper/index.js +1 -0
  130. package/legacy/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  131. package/legacy/internals/components/PickersToolbarButton.js +7 -2
  132. package/legacy/internals/constants/dimensions.js +2 -1
  133. package/legacy/internals/hooks/useField/useField.js +8 -3
  134. package/legacy/internals/hooks/useField/useFieldState.js +22 -2
  135. package/legacy/internals/hooks/usePicker/usePickerViews.js +4 -4
  136. package/legacy/internals/hooks/useViews.js +10 -9
  137. package/legacy/internals/index.js +2 -1
  138. package/legacy/internals/utils/date-utils.js +7 -0
  139. package/legacy/internals/utils/fields.js +1 -1
  140. package/legacy/internals/utils/getDefaultReferenceDate.js +64 -0
  141. package/legacy/internals/utils/time-utils.js +3 -0
  142. package/legacy/internals/utils/valueManagers.js +20 -4
  143. package/legacy/locales/index.js +1 -0
  144. package/legacy/locales/viVN.js +93 -0
  145. package/legacy/models/index.js +1 -0
  146. package/legacy/models/timezone.js +1 -0
  147. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +16 -1
  148. package/legacy/tests/describeGregorianAdapter/testCalculations.js +349 -79
  149. package/legacy/tests/describeGregorianAdapter/testLocalization.js +3 -3
  150. package/legacy/tests/describeValidation/testDayViewValidation.js +129 -52
  151. package/legacy/tests/describeValidation/testMinutesViewValidation.js +3 -10
  152. package/legacy/tests/describeValidation/testMonthViewValidation.js +3 -10
  153. package/legacy/tests/describeValidation/testYearViewValidation.js +3 -10
  154. package/legacy/tests/describeValue/describeValue.js +12 -5
  155. package/legacy/tests/describeValue/testControlledUnControlled.js +19 -4
  156. package/legacy/tests/describeValue/testPickerActionBar.js +12 -10
  157. package/legacy/tests/describeValue/testPickerOpenCloseLifeCycle.js +10 -7
  158. package/legacy/timeViewRenderers/timeViewRenderers.js +1 -1
  159. package/locales/index.d.ts +1 -0
  160. package/locales/index.js +1 -0
  161. package/locales/viVN.d.ts +53 -0
  162. package/locales/viVN.js +57 -0
  163. package/models/adapters.d.ts +50 -9
  164. package/models/fields.d.ts +1 -1
  165. package/models/index.d.ts +1 -0
  166. package/models/index.js +1 -0
  167. package/models/timezone.d.ts +1 -0
  168. package/models/timezone.js +1 -0
  169. package/modern/AdapterDateFns/AdapterDateFns.js +18 -0
  170. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
  171. package/modern/AdapterDayjs/AdapterDayjs.js +130 -14
  172. package/modern/AdapterLuxon/AdapterLuxon.js +57 -9
  173. package/modern/AdapterMoment/AdapterMoment.js +90 -2
  174. package/modern/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
  175. package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
  176. package/modern/DateCalendar/DateCalendar.js +2 -2
  177. package/modern/DateCalendar/PickersCalendarHeader.js +2 -2
  178. package/modern/DateField/DateField.js +6 -0
  179. package/modern/DateTimeField/DateTimeField.js +6 -0
  180. package/modern/DateTimePicker/DateTimePicker.js +19 -2
  181. package/modern/DateTimePicker/DateTimePickerTabs.js +6 -5
  182. package/modern/DateTimePicker/DateTimePickerToolbar.js +46 -22
  183. package/modern/DesktopDatePicker/DesktopDatePicker.js +2 -2
  184. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +52 -9
  185. package/modern/DesktopTimePicker/DesktopTimePicker.js +2 -2
  186. package/modern/MonthCalendar/MonthCalendar.js +2 -2
  187. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
  188. package/modern/TimeField/TimeField.js +6 -0
  189. package/modern/YearCalendar/YearCalendar.js +2 -2
  190. package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +147 -0
  191. package/modern/dateTimeViewRenderers/index.js +1 -0
  192. package/modern/dateViewRenderers/dateViewRenderers.js +2 -2
  193. package/modern/{internals/components/icons → icons}/index.js +7 -7
  194. package/modern/index.js +3 -2
  195. package/modern/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
  196. package/modern/internals/components/DateTimeViewWrapper/index.js +1 -0
  197. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  198. package/modern/internals/components/PickersToolbarButton.js +8 -3
  199. package/modern/internals/constants/dimensions.js +2 -1
  200. package/modern/internals/hooks/useField/useField.js +8 -3
  201. package/modern/internals/hooks/useField/useFieldState.js +22 -2
  202. package/modern/internals/hooks/usePicker/usePickerViews.js +8 -10
  203. package/modern/internals/hooks/useViews.js +10 -9
  204. package/modern/internals/index.js +2 -1
  205. package/modern/internals/utils/date-utils.js +4 -1
  206. package/modern/internals/utils/fields.js +1 -1
  207. package/modern/internals/utils/getDefaultReferenceDate.js +58 -0
  208. package/modern/internals/utils/time-utils.js +1 -0
  209. package/modern/internals/utils/valueManagers.js +21 -3
  210. package/modern/locales/index.js +1 -0
  211. package/modern/locales/viVN.js +57 -0
  212. package/modern/models/index.js +1 -0
  213. package/modern/models/timezone.js +1 -0
  214. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +13 -1
  215. package/modern/tests/describeGregorianAdapter/testCalculations.js +347 -79
  216. package/modern/tests/describeGregorianAdapter/testLocalization.js +3 -3
  217. package/modern/tests/describeValidation/testDayViewValidation.js +129 -52
  218. package/modern/tests/describeValidation/testMinutesViewValidation.js +3 -10
  219. package/modern/tests/describeValidation/testMonthViewValidation.js +3 -10
  220. package/modern/tests/describeValidation/testYearViewValidation.js +3 -10
  221. package/modern/tests/describeValue/describeValue.js +13 -4
  222. package/modern/tests/describeValue/testControlledUnControlled.js +15 -4
  223. package/modern/tests/describeValue/testPickerActionBar.js +19 -17
  224. package/modern/tests/describeValue/testPickerOpenCloseLifeCycle.js +10 -7
  225. package/modern/timeViewRenderers/timeViewRenderers.js +1 -1
  226. package/node/AdapterDateFns/AdapterDateFns.js +18 -0
  227. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
  228. package/node/AdapterDayjs/AdapterDayjs.js +130 -14
  229. package/node/AdapterLuxon/AdapterLuxon.js +57 -9
  230. package/node/AdapterMoment/AdapterMoment.js +90 -2
  231. package/node/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
  232. package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
  233. package/node/DateCalendar/DateCalendar.js +2 -2
  234. package/node/DateCalendar/PickersCalendarHeader.js +2 -2
  235. package/node/DateField/DateField.js +6 -0
  236. package/node/DateTimeField/DateTimeField.js +6 -0
  237. package/node/DateTimePicker/DateTimePicker.js +19 -2
  238. package/node/DateTimePicker/DateTimePickerTabs.js +6 -5
  239. package/node/DateTimePicker/DateTimePickerToolbar.js +46 -22
  240. package/node/DesktopDatePicker/DesktopDatePicker.js +2 -2
  241. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +52 -9
  242. package/node/DesktopTimePicker/DesktopTimePicker.js +2 -2
  243. package/node/MonthCalendar/MonthCalendar.js +2 -2
  244. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +3 -2
  245. package/node/TimeField/TimeField.js +6 -0
  246. package/node/YearCalendar/YearCalendar.js +2 -2
  247. package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +156 -0
  248. package/node/dateTimeViewRenderers/index.js +12 -0
  249. package/node/dateViewRenderers/dateViewRenderers.js +3 -3
  250. package/node/{internals/components/icons → icons}/index.js +15 -15
  251. package/node/index.js +13 -1
  252. package/node/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +12 -0
  253. package/node/internals/components/DateTimeViewWrapper/index.js +12 -0
  254. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  255. package/node/internals/components/PickersToolbarButton.js +8 -3
  256. package/node/internals/constants/dimensions.js +4 -2
  257. package/node/internals/hooks/useField/useField.js +8 -3
  258. package/node/internals/hooks/useField/useFieldState.js +22 -2
  259. package/node/internals/hooks/usePicker/usePickerViews.js +8 -10
  260. package/node/internals/hooks/useViews.js +10 -9
  261. package/node/internals/index.js +13 -0
  262. package/node/internals/utils/date-utils.js +7 -2
  263. package/node/internals/utils/fields.js +1 -1
  264. package/node/internals/utils/getDefaultReferenceDate.js +66 -0
  265. package/node/internals/utils/time-utils.js +3 -1
  266. package/node/internals/utils/valueManagers.js +21 -2
  267. package/node/locales/index.js +11 -0
  268. package/node/locales/viVN.js +64 -0
  269. package/node/models/index.js +11 -0
  270. package/node/models/timezone.js +5 -0
  271. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +13 -1
  272. package/node/tests/describeGregorianAdapter/testCalculations.js +347 -79
  273. package/node/tests/describeGregorianAdapter/testLocalization.js +3 -4
  274. package/node/tests/describeValidation/testDayViewValidation.js +129 -52
  275. package/node/tests/describeValidation/testMinutesViewValidation.js +3 -10
  276. package/node/tests/describeValidation/testMonthViewValidation.js +3 -10
  277. package/node/tests/describeValidation/testYearViewValidation.js +3 -10
  278. package/node/tests/describeValue/describeValue.js +13 -4
  279. package/node/tests/describeValue/testControlledUnControlled.js +15 -4
  280. package/node/tests/describeValue/testPickerActionBar.js +19 -16
  281. package/node/tests/describeValue/testPickerOpenCloseLifeCycle.js +9 -6
  282. package/node/timeViewRenderers/timeViewRenderers.js +1 -1
  283. package/package.json +4 -4
  284. package/tests/describeGregorianAdapter/describeGregorianAdapter.js +14 -1
  285. package/tests/describeGregorianAdapter/testCalculations.js +347 -79
  286. package/tests/describeGregorianAdapter/testLocalization.js +3 -3
  287. package/tests/describeValidation/testDayViewValidation.js +129 -52
  288. package/tests/describeValidation/testMinutesViewValidation.js +3 -10
  289. package/tests/describeValidation/testMonthViewValidation.js +3 -10
  290. package/tests/describeValidation/testYearViewValidation.js +3 -10
  291. package/tests/describeValue/describeValue.js +13 -4
  292. package/tests/describeValue/testControlledUnControlled.js +15 -4
  293. package/tests/describeValue/testPickerActionBar.js +19 -17
  294. package/tests/describeValue/testPickerOpenCloseLifeCycle.js +10 -7
  295. package/timeViewRenderers/timeViewRenderers.d.ts +4 -4
  296. package/timeViewRenderers/timeViewRenderers.js +1 -1
  297. package/internals/components/icons/index.d.ts +0 -42
@@ -0,0 +1,147 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import * as React from 'react';
4
+ import Divider from '@mui/material/Divider';
5
+ import { resolveComponentProps } from '@mui/base/utils';
6
+ import { DateCalendar } from '../DateCalendar';
7
+ import { MultiSectionDigitalClock, multiSectionDigitalClockSectionClasses } from '../MultiSectionDigitalClock';
8
+ import { DateTimeViewWrapper } from '../internals/components/DateTimeViewWrapper';
9
+ import { isInternalTimeView } from '../internals/utils/time-utils';
10
+ import { isDatePickerView } from '../internals/utils/date-utils';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ import { jsxs as _jsxs } from "react/jsx-runtime";
13
+ export var renderDesktopDateTimeView = function renderDesktopDateTimeView(_ref) {
14
+ var _resolveComponentProp, _resolveComponentProp2, _slotProps$actionBar;
15
+ var view = _ref.view,
16
+ onViewChange = _ref.onViewChange,
17
+ views = _ref.views,
18
+ focusedView = _ref.focusedView,
19
+ onFocusedViewChange = _ref.onFocusedViewChange,
20
+ value = _ref.value,
21
+ defaultValue = _ref.defaultValue,
22
+ onChange = _ref.onChange,
23
+ className = _ref.className,
24
+ classes = _ref.classes,
25
+ disableFuture = _ref.disableFuture,
26
+ disablePast = _ref.disablePast,
27
+ minDate = _ref.minDate,
28
+ minTime = _ref.minTime,
29
+ maxDate = _ref.maxDate,
30
+ maxTime = _ref.maxTime,
31
+ shouldDisableDate = _ref.shouldDisableDate,
32
+ shouldDisableMonth = _ref.shouldDisableMonth,
33
+ shouldDisableYear = _ref.shouldDisableYear,
34
+ shouldDisableTime = _ref.shouldDisableTime,
35
+ shouldDisableClock = _ref.shouldDisableClock,
36
+ reduceAnimations = _ref.reduceAnimations,
37
+ minutesStep = _ref.minutesStep,
38
+ ampm = _ref.ampm,
39
+ onMonthChange = _ref.onMonthChange,
40
+ monthsPerRow = _ref.monthsPerRow,
41
+ onYearChange = _ref.onYearChange,
42
+ yearsPerRow = _ref.yearsPerRow,
43
+ defaultCalendarMonth = _ref.defaultCalendarMonth,
44
+ components = _ref.components,
45
+ componentsProps = _ref.componentsProps,
46
+ slots = _ref.slots,
47
+ slotProps = _ref.slotProps,
48
+ loading = _ref.loading,
49
+ renderLoading = _ref.renderLoading,
50
+ disableHighlightToday = _ref.disableHighlightToday,
51
+ readOnly = _ref.readOnly,
52
+ disabled = _ref.disabled,
53
+ showDaysOutsideCurrentMonth = _ref.showDaysOutsideCurrentMonth,
54
+ dayOfWeekFormatter = _ref.dayOfWeekFormatter,
55
+ sx = _ref.sx,
56
+ autoFocus = _ref.autoFocus,
57
+ fixedWeekNumber = _ref.fixedWeekNumber,
58
+ displayWeekNumber = _ref.displayWeekNumber,
59
+ disableIgnoringDatePartForTimeValidation = _ref.disableIgnoringDatePartForTimeValidation,
60
+ timeSteps = _ref.timeSteps,
61
+ skipDisabled = _ref.skipDisabled,
62
+ timeViewsCount = _ref.timeViewsCount;
63
+ var isActionBarVisible = !!((_resolveComponentProp = resolveComponentProps((_slotProps$actionBar = slotProps == null ? void 0 : slotProps.actionBar) != null ? _slotProps$actionBar : componentsProps == null ? void 0 : componentsProps.actionBar, {})) != null && (_resolveComponentProp2 = _resolveComponentProp.actions) != null && _resolveComponentProp2.length);
64
+ return /*#__PURE__*/_jsxs(React.Fragment, {
65
+ children: [/*#__PURE__*/_jsxs(DateTimeViewWrapper, {
66
+ children: [/*#__PURE__*/_jsx(DateCalendar, {
67
+ view: isDatePickerView(view) ? view : 'day',
68
+ onViewChange: onViewChange,
69
+ views: views.filter(isDatePickerView),
70
+ focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,
71
+ onFocusedViewChange: onFocusedViewChange,
72
+ value: value,
73
+ defaultValue: defaultValue,
74
+ onChange: onChange,
75
+ className: className,
76
+ classes: classes,
77
+ disableFuture: disableFuture,
78
+ disablePast: disablePast,
79
+ minDate: minDate,
80
+ maxDate: maxDate,
81
+ shouldDisableDate: shouldDisableDate,
82
+ shouldDisableMonth: shouldDisableMonth,
83
+ shouldDisableYear: shouldDisableYear,
84
+ reduceAnimations: reduceAnimations,
85
+ onMonthChange: onMonthChange,
86
+ monthsPerRow: monthsPerRow,
87
+ onYearChange: onYearChange,
88
+ yearsPerRow: yearsPerRow,
89
+ defaultCalendarMonth: defaultCalendarMonth,
90
+ components: components,
91
+ componentsProps: componentsProps,
92
+ slots: slots,
93
+ slotProps: slotProps,
94
+ loading: loading,
95
+ renderLoading: renderLoading,
96
+ disableHighlightToday: disableHighlightToday,
97
+ readOnly: readOnly,
98
+ disabled: disabled,
99
+ showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,
100
+ dayOfWeekFormatter: dayOfWeekFormatter,
101
+ sx: sx,
102
+ autoFocus: autoFocus,
103
+ fixedWeekNumber: fixedWeekNumber,
104
+ displayWeekNumber: displayWeekNumber
105
+ }), timeViewsCount > 0 && /*#__PURE__*/_jsxs(React.Fragment, {
106
+ children: [/*#__PURE__*/_jsx(Divider, {
107
+ orientation: "vertical"
108
+ }), /*#__PURE__*/_jsx(MultiSectionDigitalClock, {
109
+ view: isInternalTimeView(view) ? view : 'hours',
110
+ onViewChange: onViewChange,
111
+ focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,
112
+ onFocusedViewChange: onFocusedViewChange,
113
+ views: views.filter(isInternalTimeView),
114
+ value: value,
115
+ defaultValue: defaultValue,
116
+ onChange: onChange,
117
+ className: className,
118
+ classes: classes,
119
+ disableFuture: disableFuture,
120
+ disablePast: disablePast,
121
+ minTime: minTime,
122
+ maxTime: maxTime,
123
+ shouldDisableTime: shouldDisableTime,
124
+ shouldDisableClock: shouldDisableClock,
125
+ minutesStep: minutesStep,
126
+ ampm: ampm,
127
+ components: components,
128
+ componentsProps: componentsProps,
129
+ slots: slots,
130
+ slotProps: slotProps,
131
+ readOnly: readOnly,
132
+ disabled: disabled,
133
+ sx: _extends(_defineProperty({
134
+ borderBottom: 0,
135
+ width: 'auto'
136
+ }, ".".concat(multiSectionDigitalClockSectionClasses.root), {
137
+ maxHeight: '100%'
138
+ }), Array.isArray(sx) ? sx : [sx]),
139
+ autoFocus: autoFocus,
140
+ disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
141
+ timeSteps: timeSteps,
142
+ skipDisabled: skipDisabled
143
+ })]
144
+ })]
145
+ }), isActionBarVisible && /*#__PURE__*/_jsx(Divider, {})]
146
+ });
147
+ };
@@ -0,0 +1 @@
1
+ export { renderDesktopDateTimeView } from './dateTimeViewRenderers';
@@ -1,9 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { DateCalendar } from '../DateCalendar';
3
+ import { isDatePickerView } from '../internals/utils/date-utils';
3
4
  import { jsx as _jsx } from "react/jsx-runtime";
4
- var isDatePickerView = function isDatePickerView(view) {
5
- return view === 'year' || view === 'month' || view === 'day';
6
- };
7
5
  export var renderDateViewCalendar = function renderDateViewCalendar(_ref) {
8
6
  var view = _ref.view,
9
7
  onViewChange = _ref.onViewChange,
@@ -47,7 +45,7 @@ export var renderDateViewCalendar = function renderDateViewCalendar(_ref) {
47
45
  view: view,
48
46
  onViewChange: onViewChange,
49
47
  views: views.filter(isDatePickerView),
50
- focusedView: focusedView,
48
+ focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,
51
49
  onFocusedViewChange: onFocusedViewChange,
52
50
  value: value,
53
51
  defaultValue: defaultValue,
@@ -6,35 +6,35 @@ import * as React from 'react';
6
6
  */
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
- export var ArrowDropDown = createSvgIcon( /*#__PURE__*/_jsx("path", {
9
+ export var ArrowDropDownIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
10
10
  d: "M7 10l5 5 5-5z"
11
11
  }), 'ArrowDropDown');
12
12
 
13
13
  /**
14
14
  * @ignore - internal component.
15
15
  */
16
- export var ArrowLeft = createSvgIcon( /*#__PURE__*/_jsx("path", {
16
+ export var ArrowLeftIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
17
17
  d: "M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"
18
18
  }), 'ArrowLeft');
19
19
 
20
20
  /**
21
21
  * @ignore - internal component.
22
22
  */
23
- export var ArrowRight = createSvgIcon( /*#__PURE__*/_jsx("path", {
23
+ export var ArrowRightIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
24
24
  d: "M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"
25
25
  }), 'ArrowRight');
26
26
 
27
27
  /**
28
28
  * @ignore - internal component.
29
29
  */
30
- export var Calendar = createSvgIcon( /*#__PURE__*/_jsx("path", {
30
+ export var CalendarIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
31
31
  d: "M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"
32
32
  }), 'Calendar');
33
33
 
34
34
  /**
35
35
  * @ignore - internal component.
36
36
  */
37
- export var Clock = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
37
+ export var ClockIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
38
38
  children: [/*#__PURE__*/_jsx("path", {
39
39
  d: "M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
40
40
  }), /*#__PURE__*/_jsx("path", {
@@ -45,14 +45,14 @@ export var Clock = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
45
45
  /**
46
46
  * @ignore - internal component.
47
47
  */
48
- export var DateRange = createSvgIcon( /*#__PURE__*/_jsx("path", {
48
+ export var DateRangeIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
49
49
  d: "M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"
50
50
  }), 'DateRange');
51
51
 
52
52
  /**
53
53
  * @ignore - internal component.
54
54
  */
55
- export var Time = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
55
+ export var TimeIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
56
56
  children: [/*#__PURE__*/_jsx("path", {
57
57
  d: "M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
58
58
  }), /*#__PURE__*/_jsx("path", {
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v6.5.0
2
+ * @mui/x-date-pickers v6.6.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -47,4 +47,5 @@ export * from './PickersLayout';
47
47
  export * from './PickersActionBar';
48
48
  export * from './PickersShortcuts';
49
49
  export { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from './internals/utils/utils';
50
- export * from './models';
50
+ export * from './models';
51
+ export * from './icons';
@@ -0,0 +1,5 @@
1
+ import { styled } from '@mui/material/styles';
2
+ export var DateTimeViewWrapper = styled('div')({
3
+ display: 'flex',
4
+ margin: '0 auto'
5
+ });
@@ -0,0 +1 @@
1
+ export { DateTimeViewWrapper } from './DateTimeViewWrapper';
@@ -11,7 +11,7 @@ import { useTheme, styled, useThemeProps } from '@mui/material/styles';
11
11
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
12
12
  import { useSlotProps } from '@mui/base/utils';
13
13
  import IconButton from '@mui/material/IconButton';
14
- import { ArrowLeft, ArrowRight } from '../icons';
14
+ import { ArrowLeftIcon, ArrowRightIcon } from '../../../icons';
15
15
  import { getPickersArrowSwitcherUtilityClass } from './pickersArrowSwitcherClasses';
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -130,7 +130,7 @@ export var PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Pickers
130
130
  }),
131
131
  className: classes.button
132
132
  });
133
- var LeftArrowIcon = (_slots$leftArrowIcon = slots == null ? void 0 : slots.leftArrowIcon) != null ? _slots$leftArrowIcon : ArrowLeft;
133
+ var LeftArrowIcon = (_slots$leftArrowIcon = slots == null ? void 0 : slots.leftArrowIcon) != null ? _slots$leftArrowIcon : ArrowLeftIcon;
134
134
  // The spread is here to avoid this bug mui/material-ui#34056
135
135
  var _useSlotProps = useSlotProps({
136
136
  elementType: LeftArrowIcon,
@@ -142,7 +142,7 @@ export var PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Pickers
142
142
  }),
143
143
  leftArrowIconOwnerState = _useSlotProps.ownerState,
144
144
  leftArrowIconProps = _objectWithoutProperties(_useSlotProps, _excluded2);
145
- var RightArrowIcon = (_slots$rightArrowIcon = slots == null ? void 0 : slots.rightArrowIcon) != null ? _slots$rightArrowIcon : ArrowRight;
145
+ var RightArrowIcon = (_slots$rightArrowIcon = slots == null ? void 0 : slots.rightArrowIcon) != null ? _slots$rightArrowIcon : ArrowRightIcon;
146
146
  // The spread is here to avoid this bug mui/material-ui#34056
147
147
  var _useSlotProps2 = useSlotProps({
148
148
  elementType: RightArrowIcon,
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["align", "className", "selected", "typographyClassName", "value", "variant"];
3
+ var _excluded = ["align", "className", "selected", "typographyClassName", "value", "variant", "width"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import Button from '@mui/material/Button';
@@ -38,13 +38,18 @@ export var PickersToolbarButton = /*#__PURE__*/React.forwardRef(function Pickers
38
38
  typographyClassName = props.typographyClassName,
39
39
  value = props.value,
40
40
  variant = props.variant,
41
+ width = props.width,
41
42
  other = _objectWithoutProperties(props, _excluded);
42
43
  var classes = useUtilityClasses(props);
43
44
  return /*#__PURE__*/_jsx(PickersToolbarButtonRoot, _extends({
44
45
  variant: "text",
45
46
  ref: ref,
46
47
  className: clsx(className, classes.root)
47
- }, other, {
48
+ }, width ? {
49
+ sx: {
50
+ width: width
51
+ }
52
+ } : {}, other, {
48
53
  children: /*#__PURE__*/_jsx(PickersToolbarText, {
49
54
  align: align,
50
55
  className: typographyClassName,
@@ -2,4 +2,5 @@ export var DAY_SIZE = 36;
2
2
  export var DAY_MARGIN = 2;
3
3
  export var DIALOG_WIDTH = 320;
4
4
  export var VIEW_HEIGHT = 358;
5
- export var DIGITAL_CLOCK_VIEW_HEIGHT = 232;
5
+ export var DIGITAL_CLOCK_VIEW_HEIGHT = 232;
6
+ export var MULTI_SECTION_CLOCK_SECTION_WIDTH = 48;
@@ -168,7 +168,7 @@ export var useField = function useField(params) {
168
168
  return;
169
169
  }
170
170
  var keyPressed;
171
- if (selectedSectionIndexes.startIndex === 0 && selectedSectionIndexes.endIndex === state.sections.length - 1) {
171
+ if (selectedSectionIndexes.startIndex === 0 && selectedSectionIndexes.endIndex === state.sections.length - 1 && cleanValueStr.length === 1) {
172
172
  keyPressed = cleanValueStr;
173
173
  } else {
174
174
  var prevValueStr = cleanString(fieldValueManager.getValueStrFromSections(state.sections, isRTL));
@@ -191,7 +191,7 @@ export var useField = function useField(params) {
191
191
 
192
192
  // The active section being selected, the browser has replaced its value with the key pressed by the user.
193
193
  var activeSectionEndRelativeToNewValue = cleanValueStr.length - prevValueStr.length + activeSection.end - cleanString(activeSection.endSeparator || '').length;
194
- keyPressed = cleanValueStr.slice(activeSection.start, activeSectionEndRelativeToNewValue);
194
+ keyPressed = cleanValueStr.slice(activeSection.start + cleanString(activeSection.startSeparator || '').length, activeSectionEndRelativeToNewValue);
195
195
  }
196
196
  if (isAndroid() && keyPressed.length === 0) {
197
197
  setTempAndroidValueStr(valueStr);
@@ -307,7 +307,12 @@ export var useField = function useField(params) {
307
307
  if (selectionStart !== inputRef.current.selectionStart || selectionEnd !== inputRef.current.selectionEnd) {
308
308
  // Fix scroll jumping on iOS browser: https://github.com/mui/mui-x/issues/8321
309
309
  var currentScrollTop = inputRef.current.scrollTop;
310
- inputRef.current.setSelectionRange(selectionStart, selectionEnd);
310
+ // On multi input range pickers we want to update selection range only for the active input
311
+ // This helps avoiding the focus jumping on Safari https://github.com/mui/mui-x/issues/9003
312
+ // because WebKit implements the `setSelectionRange` based on the spec: https://bugs.webkit.org/show_bug.cgi?id=224425
313
+ if (inputRef.current && inputRef.current === getActiveElement(document)) {
314
+ inputRef.current.setSelectionRange(selectionStart, selectionEnd);
315
+ }
311
316
  // Even reading this variable seems to do the trick, but also setting it just to make use of it
312
317
  inputRef.current.scrollTop = currentScrollTop;
313
318
  }
@@ -6,6 +6,7 @@ import useControlled from '@mui/utils/useControlled';
6
6
  import { useTheme } from '@mui/material/styles';
7
7
  import { useUtils, useLocaleText, useLocalizationContext } from '../useUtils';
8
8
  import { addPositionPropertiesToSections, splitFormatIntoSections, clampDaySectionIfPossible, mergeDateIntoReferenceDate, getSectionsBoundaries, validateSections, getDateFromDateSections } from './useField.utils';
9
+ import { getSectionTypeGranularity } from '../../utils/getDefaultReferenceDate';
9
10
  export var useFieldState = function useFieldState(params) {
10
11
  var _ref;
11
12
  var utils = useUtils();
@@ -21,6 +22,7 @@ export var useFieldState = function useFieldState(params) {
21
22
  _params$internalProps = params.internalProps,
22
23
  valueProp = _params$internalProps.value,
23
24
  defaultValue = _params$internalProps.defaultValue,
25
+ referenceDateProp = _params$internalProps.referenceDate,
24
26
  onChange = _params$internalProps.onChange,
25
27
  format = _params$internalProps.format,
26
28
  _params$internalProps2 = _params$internalProps.formatDensity,
@@ -46,12 +48,24 @@ export var useFieldState = function useFieldState(params) {
46
48
  var _React$useState = React.useState(function () {
47
49
  var sections = getSectionsFromValue(valueFromTheOutside);
48
50
  validateSections(sections, valueType);
49
- return {
51
+ var stateWithoutReferenceDate = {
50
52
  sections: sections,
51
53
  value: valueFromTheOutside,
52
- referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, valueManager.getTodayValue(utils, valueType)),
54
+ referenceValue: valueManager.emptyValue,
53
55
  tempValueStrAndroid: null
54
56
  };
57
+ var granularity = getSectionTypeGranularity(sections);
58
+ var referenceValue = valueManager.getInitialReferenceValue({
59
+ referenceDate: referenceDateProp,
60
+ value: valueFromTheOutside,
61
+ valueType: valueType,
62
+ utils: utils,
63
+ props: internalProps,
64
+ granularity: granularity
65
+ });
66
+ return _extends({}, stateWithoutReferenceDate, {
67
+ referenceValue: referenceValue
68
+ });
55
69
  }),
56
70
  _React$useState2 = _slicedToArray(_React$useState, 2),
57
71
  state = _React$useState2[0],
@@ -271,7 +285,13 @@ export var useFieldState = function useFieldState(params) {
271
285
  });
272
286
  };
273
287
  React.useEffect(function () {
288
+ var shouldUpdate = false;
274
289
  if (!valueManager.areValuesEqual(utils, state.value, valueFromTheOutside)) {
290
+ shouldUpdate = true;
291
+ } else {
292
+ shouldUpdate = valueManager.getTimezone(utils, state.value) !== valueManager.getTimezone(utils, valueFromTheOutside);
293
+ }
294
+ if (shouldUpdate) {
275
295
  setState(function (prevState) {
276
296
  return _extends({}, prevState, {
277
297
  value: valueFromTheOutside,
@@ -80,14 +80,13 @@ export var usePickerViews = function usePickerViews(_ref) {
80
80
  }, [disableOpenPicker, viewRenderers, views]),
81
81
  hasUIView = _React$useMemo.hasUIView,
82
82
  viewModeLookup = _React$useMemo.viewModeLookup;
83
- var hasMultipleUITimeView = React.useMemo(function () {
84
- var numberUITimeViews = views.reduce(function (acc, viewForReduce) {
83
+ var timeViewsCount = React.useMemo(function () {
84
+ return views.reduce(function (acc, viewForReduce) {
85
85
  if (viewRenderers[viewForReduce] != null && isTimeView(viewForReduce)) {
86
86
  return acc + 1;
87
87
  }
88
88
  return acc;
89
89
  }, 0);
90
- return numberUITimeViews > 1;
91
90
  }, [viewRenderers, views]);
92
91
  var currentViewMode = viewModeLookup[view];
93
92
  var shouldRestoreFocus = useEventCallback(function () {
@@ -155,7 +154,8 @@ export var usePickerViews = function usePickerViews(_ref) {
155
154
  onViewChange: setView,
156
155
  focusedView: focusedView,
157
156
  onFocusedViewChange: setFocusedView,
158
- showViewSwitcher: hasMultipleUITimeView
157
+ showViewSwitcher: timeViewsCount > 1,
158
+ timeViewsCount: timeViewsCount
159
159
  }));
160
160
  }
161
161
  };
@@ -60,15 +60,6 @@ export function useViews(_ref) {
60
60
  var viewIndex = views.indexOf(view);
61
61
  var previousView = (_views = views[viewIndex - 1]) != null ? _views : null;
62
62
  var nextView = (_views2 = views[viewIndex + 1]) != null ? _views2 : null;
63
- var handleChangeView = useEventCallback(function (newView) {
64
- if (newView === view) {
65
- return;
66
- }
67
- setView(newView);
68
- if (onViewChange) {
69
- onViewChange(newView);
70
- }
71
- });
72
63
  var handleFocusedViewChange = useEventCallback(function (viewToFocus, hasFocus) {
73
64
  if (hasFocus) {
74
65
  // Focus event
@@ -83,6 +74,16 @@ export function useViews(_ref) {
83
74
 
84
75
  onFocusedViewChange == null ? void 0 : onFocusedViewChange(viewToFocus, hasFocus);
85
76
  });
77
+ var handleChangeView = useEventCallback(function (newView) {
78
+ if (newView === view) {
79
+ return;
80
+ }
81
+ setView(newView);
82
+ handleFocusedViewChange(newView, true);
83
+ if (onViewChange) {
84
+ onViewChange(newView);
85
+ }
86
+ });
86
87
  var goToNextView = useEventCallback(function () {
87
88
  if (nextView) {
88
89
  handleChangeView(nextView);
@@ -15,8 +15,9 @@ export { useStaticPicker } from './hooks/useStaticPicker';
15
15
  export { useLocalizationContext, useDefaultDates, useUtils, useLocaleText, useNow } from './hooks/useUtils';
16
16
  export { useValidation } from './hooks/useValidation';
17
17
  export { usePreviousMonthDisabled, useNextMonthDisabled } from './hooks/date-helpers-hooks';
18
- export { applyDefaultDate, replaceInvalidDateByNull, areDatesEqual } from './utils/date-utils';
18
+ export { applyDefaultDate, replaceInvalidDateByNull, areDatesEqual, getTodayDate } from './utils/date-utils';
19
19
  export { splitFieldInternalAndForwardedProps } from './utils/fields';
20
+ export { getDefaultReferenceDate } from './utils/getDefaultReferenceDate';
20
21
  export { executeInTheNextEventLoopTick, getActiveElement, onSpaceOrEnter, DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from './utils/utils';
21
22
  export { defaultReduceAnimations } from './utils/defaultReduceAnimations';
22
23
  export { extractValidationProps } from './utils/validation/extractValidationProps';
@@ -86,4 +86,11 @@ export var mergeDateAndTime = function mergeDateAndTime(utils, dateParam, timePa
86
86
  mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
87
87
  mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
88
88
  return mergedDate;
89
+ };
90
+ export var getTodayDate = function getTodayDate(utils, valueType) {
91
+ return valueType === 'date' ? utils.startOfDay(utils.date()) : utils.date();
92
+ };
93
+ var dateViews = ['year', 'month', 'day'];
94
+ export var isDatePickerView = function isDatePickerView(view) {
95
+ return dateViews.includes(view);
89
96
  };
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { DATE_TIME_VALIDATION_PROP_NAMES, DATE_VALIDATION_PROP_NAMES, TIME_VALIDATION_PROP_NAMES } from './validation/extractValidationProps';
3
- var SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'format', 'formatDensity', 'onChange', 'readOnly', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef'];
3
+ var SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'readOnly', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef'];
4
4
  export var splitFieldInternalAndForwardedProps = function splitFieldInternalAndForwardedProps(props, valueType) {
5
5
  var forwardedProps = _extends({}, props);
6
6
  var internalProps = {};
@@ -0,0 +1,64 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import { createIsAfterIgnoreDatePart } from './time-utils';
3
+ import { mergeDateAndTime, getTodayDate } from './date-utils';
4
+ var SECTION_TYPE_GRANULARITY = {
5
+ year: 1,
6
+ month: 2,
7
+ day: 3,
8
+ hours: 4,
9
+ minutes: 5,
10
+ seconds: 6,
11
+ milliseconds: 7
12
+ };
13
+ export var getSectionTypeGranularity = function getSectionTypeGranularity(sections) {
14
+ return Math.max.apply(Math, _toConsumableArray(sections.map(function (section) {
15
+ var _SECTION_TYPE_GRANULA;
16
+ return (_SECTION_TYPE_GRANULA = SECTION_TYPE_GRANULARITY[section.type]) != null ? _SECTION_TYPE_GRANULA : 1;
17
+ })));
18
+ };
19
+ var roundDate = function roundDate(utils, granularity, date) {
20
+ if (granularity === SECTION_TYPE_GRANULARITY.year) {
21
+ return utils.startOfYear(date);
22
+ }
23
+ if (granularity === SECTION_TYPE_GRANULARITY.month) {
24
+ return utils.startOfMonth(date);
25
+ }
26
+ if (granularity === SECTION_TYPE_GRANULARITY.day) {
27
+ return utils.startOfDay(date);
28
+ }
29
+
30
+ // We don't have startOfHour / startOfMinute / startOfSecond
31
+ var roundedDate = date;
32
+ if (granularity < SECTION_TYPE_GRANULARITY.minutes) {
33
+ roundedDate = utils.setMinutes(roundedDate, 0);
34
+ }
35
+ if (granularity < SECTION_TYPE_GRANULARITY.seconds) {
36
+ roundedDate = utils.setSeconds(roundedDate, 0);
37
+ }
38
+ if (granularity < SECTION_TYPE_GRANULARITY.milliseconds) {
39
+ roundedDate = utils.setMilliseconds(roundedDate, 0);
40
+ }
41
+ return roundedDate;
42
+ };
43
+ export var getDefaultReferenceDate = function getDefaultReferenceDate(_ref) {
44
+ var _props$disableIgnorin;
45
+ var props = _ref.props,
46
+ utils = _ref.utils,
47
+ valueType = _ref.valueType,
48
+ granularity = _ref.granularity;
49
+ var referenceDate = roundDate(utils, granularity, getTodayDate(utils, valueType));
50
+ if (props.minDate != null && utils.isAfterDay(props.minDate, referenceDate)) {
51
+ referenceDate = roundDate(utils, granularity, props.minDate);
52
+ }
53
+ if (props.maxDate != null && utils.isBeforeDay(props.maxDate, referenceDate)) {
54
+ referenceDate = roundDate(utils, granularity, props.maxDate);
55
+ }
56
+ var isAfter = createIsAfterIgnoreDatePart((_props$disableIgnorin = props.disableIgnoringDatePartForTimeValidation) != null ? _props$disableIgnorin : false, utils);
57
+ if (props.minTime != null && isAfter(props.minTime, referenceDate)) {
58
+ referenceDate = roundDate(utils, granularity, props.disableIgnoringDatePartForTimeValidation ? props.minTime : mergeDateAndTime(utils, referenceDate, props.minTime));
59
+ }
60
+ if (props.maxTime != null && isAfter(referenceDate, props.maxTime)) {
61
+ referenceDate = roundDate(utils, granularity, props.disableIgnoringDatePartForTimeValidation ? props.maxTime : mergeDateAndTime(utils, referenceDate, props.maxTime));
62
+ }
63
+ return referenceDate;
64
+ };
@@ -2,6 +2,9 @@ var timeViews = ['hours', 'minutes', 'seconds'];
2
2
  export var isTimeView = function isTimeView(view) {
3
3
  return timeViews.includes(view);
4
4
  };
5
+ export var isInternalTimeView = function isInternalTimeView(view) {
6
+ return timeViews.includes(view) || view === 'meridiem';
7
+ };
5
8
  export var getMeridiem = function getMeridiem(date, utils) {
6
9
  if (!date) {
7
10
  return null;
@@ -1,9 +1,22 @@
1
- import { areDatesEqual, replaceInvalidDateByNull } from './date-utils';
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
+ var _excluded = ["value", "referenceDate"];
3
+ import { areDatesEqual, getTodayDate, replaceInvalidDateByNull } from './date-utils';
4
+ import { getDefaultReferenceDate } from './getDefaultReferenceDate';
2
5
  import { addPositionPropertiesToSections, createDateStrForInputFromSections } from '../hooks/useField/useField.utils';
3
6
  export var singleItemValueManager = {
4
7
  emptyValue: null,
5
- getTodayValue: function getTodayValue(utils, valueType) {
6
- return valueType === 'date' ? utils.startOfDay(utils.date()) : utils.date();
8
+ getTodayValue: getTodayDate,
9
+ getInitialReferenceValue: function getInitialReferenceValue(_ref) {
10
+ var value = _ref.value,
11
+ referenceDate = _ref.referenceDate,
12
+ params = _objectWithoutProperties(_ref, _excluded);
13
+ if (value != null && params.utils.isValid(value)) {
14
+ return value;
15
+ }
16
+ if (referenceDate != null) {
17
+ return referenceDate;
18
+ }
19
+ return getDefaultReferenceDate(params);
7
20
  },
8
21
  cleanValue: replaceInvalidDateByNull,
9
22
  areValuesEqual: areDatesEqual,
@@ -13,7 +26,10 @@ export var singleItemValueManager = {
13
26
  hasError: function hasError(error) {
14
27
  return error != null;
15
28
  },
16
- defaultErrorState: null
29
+ defaultErrorState: null,
30
+ getTimezone: function getTimezone(utils, value) {
31
+ return value == null ? null : utils.getTimezone(value);
32
+ }
17
33
  };
18
34
  export var singleItemFieldValueManager = {
19
35
  updateReferenceValue: function updateReferenceValue(utils, value, prevReferenceValue) {
@@ -25,4 +25,5 @@ export * from './beBY';
25
25
  export * from './ruRU';
26
26
  export * from './heIL';
27
27
  export * from './skSK';
28
+ export * from './viVN';
28
29
  export * from './utils/pickersLocaleTextApi';