@mui/x-date-pickers 6.7.0 → 6.9.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 (276) hide show
  1. package/AdapterDayjs/AdapterDayjs.d.ts +5 -1
  2. package/AdapterDayjs/AdapterDayjs.js +42 -15
  3. package/AdapterLuxon/AdapterLuxon.d.ts +1 -0
  4. package/AdapterLuxon/AdapterLuxon.js +12 -5
  5. package/AdapterMoment/AdapterMoment.js +18 -9
  6. package/CHANGELOG.md +145 -5541
  7. package/DateCalendar/DateCalendar.js +49 -21
  8. package/DateCalendar/DateCalendar.types.d.ts +8 -3
  9. package/DateCalendar/DayCalendar.d.ts +3 -1
  10. package/DateCalendar/DayCalendar.js +24 -17
  11. package/DateCalendar/PickersCalendarHeader.js +6 -3
  12. package/DateCalendar/useCalendarState.d.ts +5 -3
  13. package/DateCalendar/useCalendarState.js +41 -17
  14. package/DateCalendar/useIsDateDisabled.d.ts +1 -1
  15. package/DateCalendar/useIsDateDisabled.js +5 -3
  16. package/DateField/DateField.js +9 -1
  17. package/DatePicker/DatePicker.js +9 -1
  18. package/DateTimeField/DateTimeField.js +9 -1
  19. package/DateTimePicker/DateTimePicker.js +9 -1
  20. package/DesktopDatePicker/DesktopDatePicker.js +9 -1
  21. package/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
  22. package/DesktopTimePicker/DesktopTimePicker.js +8 -0
  23. package/DigitalClock/DigitalClock.js +28 -15
  24. package/MobileDatePicker/MobileDatePicker.js +9 -1
  25. package/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
  26. package/MobileTimePicker/MobileTimePicker.js +8 -0
  27. package/MonthCalendar/MonthCalendar.js +57 -24
  28. package/MonthCalendar/MonthCalendar.types.d.ts +8 -2
  29. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
  30. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
  31. package/PickersLayout/PickersLayout.js +1 -0
  32. package/PickersLayout/usePickerLayout.js +4 -3
  33. package/PickersShortcuts/PickersShortcuts.d.ts +12 -2
  34. package/PickersShortcuts/PickersShortcuts.js +10 -2
  35. package/PickersShortcuts/index.d.ts +1 -1
  36. package/StaticDatePicker/StaticDatePicker.js +9 -1
  37. package/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
  38. package/StaticTimePicker/StaticTimePicker.js +8 -0
  39. package/TimeClock/TimeClock.js +27 -15
  40. package/TimeField/TimeField.js +9 -1
  41. package/TimePicker/TimePicker.js +8 -0
  42. package/YearCalendar/YearCalendar.js +55 -22
  43. package/YearCalendar/YearCalendar.types.d.ts +8 -2
  44. package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +1 -1
  45. package/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
  46. package/dateViewRenderers/dateViewRenderers.d.ts +1 -1
  47. package/dateViewRenderers/dateViewRenderers.js +4 -2
  48. package/index.js +1 -1
  49. package/internals/hooks/date-helpers-hooks.d.ts +4 -2
  50. package/internals/hooks/date-helpers-hooks.js +8 -6
  51. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  52. package/internals/hooks/useField/useField.d.ts +3 -1
  53. package/internals/hooks/useField/useField.js +23 -7
  54. package/internals/hooks/useField/useField.types.d.ts +6 -4
  55. package/internals/hooks/useField/useField.utils.d.ts +13 -11
  56. package/internals/hooks/useField/useField.utils.js +55 -43
  57. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +3 -2
  58. package/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
  59. package/internals/hooks/useField/useFieldState.d.ts +1 -0
  60. package/internals/hooks/useField/useFieldState.js +33 -23
  61. package/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
  62. package/internals/hooks/usePicker/usePickerValue.js +45 -9
  63. package/internals/hooks/usePicker/usePickerValue.types.d.ts +22 -6
  64. package/internals/hooks/usePicker/usePickerViews.d.ts +2 -1
  65. package/internals/hooks/usePicker/usePickerViews.js +7 -2
  66. package/internals/hooks/useUtils.d.ts +3 -2
  67. package/internals/hooks/useUtils.js +5 -2
  68. package/internals/hooks/useValueWithTimezone.d.ts +33 -0
  69. package/internals/hooks/useValueWithTimezone.js +69 -0
  70. package/internals/index.d.ts +1 -0
  71. package/internals/index.js +1 -0
  72. package/internals/models/props/clock.d.ts +2 -2
  73. package/internals/utils/date-utils.d.ts +4 -4
  74. package/internals/utils/date-utils.js +4 -12
  75. package/internals/utils/fields.js +1 -1
  76. package/internals/utils/getDefaultReferenceDate.d.ts +12 -3
  77. package/internals/utils/getDefaultReferenceDate.js +4 -4
  78. package/internals/utils/validation/extractValidationProps.d.ts +1 -1
  79. package/internals/utils/validation/validateDate.d.ts +3 -2
  80. package/internals/utils/validation/validateDate.js +14 -6
  81. package/internals/utils/validation/validateTime.d.ts +3 -2
  82. package/internals/utils/validation/validateTime.js +8 -8
  83. package/internals/utils/valueManagers.js +2 -1
  84. package/legacy/AdapterDayjs/AdapterDayjs.js +45 -16
  85. package/legacy/AdapterLuxon/AdapterLuxon.js +13 -6
  86. package/legacy/AdapterMoment/AdapterMoment.js +18 -9
  87. package/legacy/DateCalendar/DateCalendar.js +47 -24
  88. package/legacy/DateCalendar/DayCalendar.js +24 -17
  89. package/legacy/DateCalendar/PickersCalendarHeader.js +6 -3
  90. package/legacy/DateCalendar/useCalendarState.js +40 -17
  91. package/legacy/DateCalendar/useIsDateDisabled.js +5 -3
  92. package/legacy/DateField/DateField.js +9 -1
  93. package/legacy/DatePicker/DatePicker.js +9 -1
  94. package/legacy/DateTimeField/DateTimeField.js +9 -1
  95. package/legacy/DateTimePicker/DateTimePicker.js +9 -1
  96. package/legacy/DesktopDatePicker/DesktopDatePicker.js +9 -1
  97. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
  98. package/legacy/DesktopTimePicker/DesktopTimePicker.js +8 -0
  99. package/legacy/DigitalClock/DigitalClock.js +26 -16
  100. package/legacy/MobileDatePicker/MobileDatePicker.js +9 -1
  101. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
  102. package/legacy/MobileTimePicker/MobileTimePicker.js +8 -0
  103. package/legacy/MonthCalendar/MonthCalendar.js +61 -32
  104. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +27 -16
  105. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
  106. package/legacy/PickersLayout/PickersLayout.js +1 -0
  107. package/legacy/PickersLayout/usePickerLayout.js +3 -2
  108. package/legacy/PickersShortcuts/PickersShortcuts.js +10 -2
  109. package/legacy/StaticDatePicker/StaticDatePicker.js +9 -1
  110. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
  111. package/legacy/StaticTimePicker/StaticTimePicker.js +8 -0
  112. package/legacy/TimeClock/TimeClock.js +25 -18
  113. package/legacy/TimeField/TimeField.js +9 -1
  114. package/legacy/TimePicker/TimePicker.js +8 -0
  115. package/legacy/YearCalendar/YearCalendar.js +59 -30
  116. package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
  117. package/legacy/dateViewRenderers/dateViewRenderers.js +4 -2
  118. package/legacy/index.js +1 -1
  119. package/legacy/internals/hooks/date-helpers-hooks.js +8 -6
  120. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  121. package/legacy/internals/hooks/useField/useField.js +22 -6
  122. package/legacy/internals/hooks/useField/useField.utils.js +56 -44
  123. package/legacy/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
  124. package/legacy/internals/hooks/useField/useFieldState.js +42 -33
  125. package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
  126. package/legacy/internals/hooks/usePicker/usePickerValue.js +46 -9
  127. package/legacy/internals/hooks/usePicker/usePickerViews.js +7 -2
  128. package/legacy/internals/hooks/useUtils.js +5 -2
  129. package/legacy/internals/hooks/useValueWithTimezone.js +81 -0
  130. package/legacy/internals/index.js +1 -0
  131. package/legacy/internals/utils/date-utils.js +5 -13
  132. package/legacy/internals/utils/fields.js +1 -1
  133. package/legacy/internals/utils/getDefaultReferenceDate.js +4 -4
  134. package/legacy/internals/utils/validation/validateDate.js +12 -6
  135. package/legacy/internals/utils/validation/validateTime.js +8 -8
  136. package/legacy/internals/utils/valueManagers.js +3 -0
  137. package/legacy/locales/csCZ.js +2 -2
  138. package/legacy/locales/elGR.js +93 -0
  139. package/legacy/locales/index.js +1 -0
  140. package/legacy/tests/describeAdapters/describeAdapters.js +3 -1
  141. package/legacy/tests/describeGregorianAdapter/testCalculations.js +69 -27
  142. package/legacy/tests/describeJalaliAdapter/testCalculations.js +21 -0
  143. package/legacy/timeViewRenderers/timeViewRenderers.js +12 -6
  144. package/locales/csCZ.js +2 -2
  145. package/locales/elGR.d.ts +53 -0
  146. package/locales/elGR.js +57 -0
  147. package/locales/index.d.ts +1 -0
  148. package/locales/index.js +1 -0
  149. package/models/adapters.d.ts +2 -2
  150. package/models/timezone.d.ts +10 -0
  151. package/modern/AdapterDayjs/AdapterDayjs.js +41 -15
  152. package/modern/AdapterLuxon/AdapterLuxon.js +12 -4
  153. package/modern/AdapterMoment/AdapterMoment.js +18 -9
  154. package/modern/DateCalendar/DateCalendar.js +49 -21
  155. package/modern/DateCalendar/DayCalendar.js +24 -17
  156. package/modern/DateCalendar/PickersCalendarHeader.js +6 -3
  157. package/modern/DateCalendar/useCalendarState.js +41 -16
  158. package/modern/DateCalendar/useIsDateDisabled.js +5 -3
  159. package/modern/DateField/DateField.js +9 -1
  160. package/modern/DatePicker/DatePicker.js +9 -1
  161. package/modern/DateTimeField/DateTimeField.js +9 -1
  162. package/modern/DateTimePicker/DateTimePicker.js +9 -1
  163. package/modern/DesktopDatePicker/DesktopDatePicker.js +9 -1
  164. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
  165. package/modern/DesktopTimePicker/DesktopTimePicker.js +8 -0
  166. package/modern/DigitalClock/DigitalClock.js +28 -15
  167. package/modern/MobileDatePicker/MobileDatePicker.js +9 -1
  168. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
  169. package/modern/MobileTimePicker/MobileTimePicker.js +8 -0
  170. package/modern/MonthCalendar/MonthCalendar.js +57 -24
  171. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
  172. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
  173. package/modern/PickersLayout/PickersLayout.js +1 -0
  174. package/modern/PickersLayout/usePickerLayout.js +4 -3
  175. package/modern/PickersShortcuts/PickersShortcuts.js +10 -2
  176. package/modern/StaticDatePicker/StaticDatePicker.js +9 -1
  177. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
  178. package/modern/StaticTimePicker/StaticTimePicker.js +8 -0
  179. package/modern/TimeClock/TimeClock.js +27 -15
  180. package/modern/TimeField/TimeField.js +9 -1
  181. package/modern/TimePicker/TimePicker.js +8 -0
  182. package/modern/YearCalendar/YearCalendar.js +55 -22
  183. package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
  184. package/modern/dateViewRenderers/dateViewRenderers.js +4 -2
  185. package/modern/index.js +1 -1
  186. package/modern/internals/hooks/date-helpers-hooks.js +8 -6
  187. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  188. package/modern/internals/hooks/useField/useField.js +23 -7
  189. package/modern/internals/hooks/useField/useField.utils.js +55 -43
  190. package/modern/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
  191. package/modern/internals/hooks/useField/useFieldState.js +33 -22
  192. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
  193. package/modern/internals/hooks/usePicker/usePickerValue.js +45 -9
  194. package/modern/internals/hooks/usePicker/usePickerViews.js +7 -2
  195. package/modern/internals/hooks/useUtils.js +5 -2
  196. package/modern/internals/hooks/useValueWithTimezone.js +68 -0
  197. package/modern/internals/index.js +1 -0
  198. package/modern/internals/utils/date-utils.js +4 -12
  199. package/modern/internals/utils/fields.js +1 -1
  200. package/modern/internals/utils/getDefaultReferenceDate.js +4 -4
  201. package/modern/internals/utils/validation/validateDate.js +14 -6
  202. package/modern/internals/utils/validation/validateTime.js +8 -8
  203. package/modern/internals/utils/valueManagers.js +2 -1
  204. package/modern/locales/csCZ.js +2 -2
  205. package/modern/locales/elGR.js +57 -0
  206. package/modern/locales/index.js +1 -0
  207. package/modern/tests/describeAdapters/describeAdapters.js +3 -1
  208. package/modern/tests/describeGregorianAdapter/testCalculations.js +69 -27
  209. package/modern/tests/describeJalaliAdapter/testCalculations.js +21 -0
  210. package/modern/timeViewRenderers/timeViewRenderers.js +12 -6
  211. package/node/AdapterDayjs/AdapterDayjs.js +41 -15
  212. package/node/AdapterLuxon/AdapterLuxon.js +12 -4
  213. package/node/AdapterMoment/AdapterMoment.js +18 -9
  214. package/node/DateCalendar/DateCalendar.js +48 -20
  215. package/node/DateCalendar/DayCalendar.js +24 -17
  216. package/node/DateCalendar/PickersCalendarHeader.js +6 -3
  217. package/node/DateCalendar/useCalendarState.js +41 -16
  218. package/node/DateCalendar/useIsDateDisabled.js +5 -3
  219. package/node/DateField/DateField.js +9 -1
  220. package/node/DatePicker/DatePicker.js +9 -1
  221. package/node/DateTimeField/DateTimeField.js +9 -1
  222. package/node/DateTimePicker/DateTimePicker.js +9 -1
  223. package/node/DesktopDatePicker/DesktopDatePicker.js +9 -1
  224. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
  225. package/node/DesktopTimePicker/DesktopTimePicker.js +8 -0
  226. package/node/DigitalClock/DigitalClock.js +28 -15
  227. package/node/MobileDatePicker/MobileDatePicker.js +9 -1
  228. package/node/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
  229. package/node/MobileTimePicker/MobileTimePicker.js +8 -0
  230. package/node/MonthCalendar/MonthCalendar.js +57 -24
  231. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
  232. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
  233. package/node/PickersLayout/PickersLayout.js +1 -0
  234. package/node/PickersLayout/usePickerLayout.js +4 -3
  235. package/node/PickersShortcuts/PickersShortcuts.js +10 -2
  236. package/node/StaticDatePicker/StaticDatePicker.js +9 -1
  237. package/node/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
  238. package/node/StaticTimePicker/StaticTimePicker.js +8 -0
  239. package/node/TimeClock/TimeClock.js +26 -14
  240. package/node/TimeField/TimeField.js +9 -1
  241. package/node/TimePicker/TimePicker.js +8 -0
  242. package/node/YearCalendar/YearCalendar.js +55 -22
  243. package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
  244. package/node/dateViewRenderers/dateViewRenderers.js +4 -2
  245. package/node/index.js +1 -1
  246. package/node/internals/hooks/date-helpers-hooks.js +8 -6
  247. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  248. package/node/internals/hooks/useField/useField.js +23 -7
  249. package/node/internals/hooks/useField/useField.utils.js +55 -43
  250. package/node/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
  251. package/node/internals/hooks/useField/useFieldState.js +33 -22
  252. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
  253. package/node/internals/hooks/usePicker/usePickerValue.js +44 -9
  254. package/node/internals/hooks/usePicker/usePickerViews.js +7 -2
  255. package/node/internals/hooks/useUtils.js +5 -2
  256. package/node/internals/hooks/useValueWithTimezone.js +79 -0
  257. package/node/internals/index.js +7 -0
  258. package/node/internals/utils/date-utils.js +5 -14
  259. package/node/internals/utils/fields.js +1 -1
  260. package/node/internals/utils/getDefaultReferenceDate.js +5 -4
  261. package/node/internals/utils/validation/validateDate.js +14 -6
  262. package/node/internals/utils/validation/validateTime.js +8 -8
  263. package/node/internals/utils/valueManagers.js +2 -1
  264. package/node/locales/csCZ.js +2 -2
  265. package/node/locales/elGR.js +64 -0
  266. package/node/locales/index.js +11 -0
  267. package/node/tests/describeAdapters/describeAdapters.js +3 -1
  268. package/node/tests/describeGregorianAdapter/testCalculations.js +69 -27
  269. package/node/tests/describeJalaliAdapter/testCalculations.js +21 -0
  270. package/node/timeViewRenderers/timeViewRenderers.js +12 -6
  271. package/package.json +2 -2
  272. package/tests/describeAdapters/describeAdapters.js +3 -1
  273. package/tests/describeGregorianAdapter/testCalculations.js +69 -27
  274. package/tests/describeJalaliAdapter/testCalculations.js +21 -0
  275. package/timeViewRenderers/timeViewRenderers.d.ts +3 -3
  276. package/timeViewRenderers/timeViewRenderers.js +12 -6
@@ -0,0 +1,68 @@
1
+ import * as React from 'react';
2
+ import useEventCallback from '@mui/utils/useEventCallback';
3
+ import useControlled from '@mui/utils/useControlled';
4
+ import { useUtils } from './useUtils';
5
+ /**
6
+ * Hooks making sure that:
7
+ * - The value returned by `onChange` always have the timezone of `props.value` or `props.defaultValue` if defined
8
+ * - The value rendered is always the one from `props.timezone` if defined
9
+ */
10
+ export const useValueWithTimezone = ({
11
+ timezone: timezoneProp,
12
+ value: valueProp,
13
+ defaultValue,
14
+ onChange,
15
+ valueManager
16
+ }) => {
17
+ const utils = useUtils();
18
+ const firstDefaultValue = React.useRef(defaultValue);
19
+ const inputValue = valueProp ?? firstDefaultValue.current ?? valueManager.emptyValue;
20
+ const inputTimezone = React.useMemo(() => valueManager.getTimezone(utils, inputValue), [utils, valueManager, inputValue]);
21
+ const setInputTimezone = useEventCallback(newValue => {
22
+ if (inputTimezone == null) {
23
+ return newValue;
24
+ }
25
+ return valueManager.setTimezone(utils, inputTimezone, newValue);
26
+ });
27
+ const timezoneToRender = timezoneProp ?? inputTimezone ?? 'default';
28
+ const valueWithTimezoneToRender = React.useMemo(() => valueManager.setTimezone(utils, timezoneToRender, inputValue), [valueManager, utils, timezoneToRender, inputValue]);
29
+ const handleValueChange = useEventCallback((newValue, ...otherParams) => {
30
+ const newValueWithInputTimezone = setInputTimezone(newValue);
31
+ onChange?.(newValueWithInputTimezone, ...otherParams);
32
+ });
33
+ return {
34
+ value: valueWithTimezoneToRender,
35
+ handleValueChange,
36
+ timezone: timezoneToRender
37
+ };
38
+ };
39
+
40
+ /**
41
+ * Wrapper around `useControlled` and `useValueWithTimezone`
42
+ */
43
+ export const useControlledValueWithTimezone = ({
44
+ name,
45
+ timezone: timezoneProp,
46
+ value: valueProp,
47
+ defaultValue,
48
+ onChange: onChangeProp,
49
+ valueManager
50
+ }) => {
51
+ const [valueWithInputTimezone, setValue] = useControlled({
52
+ name,
53
+ state: 'value',
54
+ controlled: valueProp,
55
+ default: defaultValue ?? valueManager.emptyValue
56
+ });
57
+ const onChange = useEventCallback((newValue, ...otherParams) => {
58
+ setValue(newValue);
59
+ onChangeProp?.(newValue, ...otherParams);
60
+ });
61
+ return useValueWithTimezone({
62
+ timezone: timezoneProp,
63
+ value: valueWithInputTimezone,
64
+ defaultValue: undefined,
65
+ onChange,
66
+ valueManager
67
+ });
68
+ };
@@ -9,6 +9,7 @@ export { pickersArrowSwitcherClasses } from './components/PickersArrowSwitcher/p
9
9
  export { pickersPopperClasses } from './components/pickersPopperClasses';
10
10
  export { PickersToolbarButton } from './components/PickersToolbarButton';
11
11
  export { DAY_MARGIN, DIALOG_WIDTH } from './constants/dimensions';
12
+ export { useControlledValueWithTimezone } from './hooks/useValueWithTimezone';
12
13
  export { useField, createDateStrForInputFromSections, addPositionPropertiesToSections } from './hooks/useField';
13
14
  export { usePicker } from './hooks/usePicker';
14
15
  export { useStaticPicker } from './hooks/useStaticPicker';
@@ -6,9 +6,10 @@ export const findClosestEnabledDate = ({
6
6
  maxDate,
7
7
  minDate,
8
8
  isDateDisabled,
9
- utils
9
+ utils,
10
+ timezone
10
11
  }) => {
11
- const today = utils.startOfDay(utils.date());
12
+ const today = utils.startOfDay(utils.dateWithTimezone(undefined, timezone));
12
13
  if (disablePast && utils.isBefore(minDate, today)) {
13
14
  minDate = today;
14
15
  }
@@ -49,15 +50,6 @@ export const findClosestEnabledDate = ({
49
50
  }
50
51
  return null;
51
52
  };
52
- export const clamp = (utils, value, minDate, maxDate) => {
53
- if (utils.isBefore(value, minDate)) {
54
- return minDate;
55
- }
56
- if (utils.isAfter(value, maxDate)) {
57
- return maxDate;
58
- }
59
- return value;
60
- };
61
53
  export const replaceInvalidDateByNull = (utils, value) => value == null || !utils.isValid(value) ? null : value;
62
54
  export const applyDefaultDate = (utils, value, defaultValue) => {
63
55
  if (value == null || !utils.isValid(value)) {
@@ -87,7 +79,7 @@ export const mergeDateAndTime = (utils, dateParam, timeParam) => {
87
79
  mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
88
80
  return mergedDate;
89
81
  };
90
- export const getTodayDate = (utils, valueType) => valueType === 'date' ? utils.startOfDay(utils.date()) : utils.date();
82
+ export const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.dateWithTimezone(undefined, timezone)) : utils.dateWithTimezone(undefined, timezone);
91
83
  const dateViews = ['year', 'month', 'day'];
92
84
  export const isDatePickerView = view => dateViews.includes(view);
93
85
  export const resolveDateFormat = (utils, {
@@ -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
- const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'readOnly', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef'];
3
+ const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'readOnly', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef'];
4
4
  export const splitFieldInternalAndForwardedProps = (props, valueType) => {
5
5
  const forwardedProps = _extends({}, props);
6
6
  const internalProps = {};
@@ -1,6 +1,6 @@
1
1
  import { createIsAfterIgnoreDatePart } from './time-utils';
2
2
  import { mergeDateAndTime, getTodayDate } from './date-utils';
3
- const SECTION_TYPE_GRANULARITY = {
3
+ export const SECTION_TYPE_GRANULARITY = {
4
4
  year: 1,
5
5
  month: 2,
6
6
  day: 3,
@@ -37,10 +37,10 @@ const roundDate = (utils, granularity, date) => {
37
37
  export const getDefaultReferenceDate = ({
38
38
  props,
39
39
  utils,
40
- valueType,
41
- granularity
40
+ granularity,
41
+ timezone
42
42
  }) => {
43
- let referenceDate = roundDate(utils, granularity, getTodayDate(utils, valueType));
43
+ let referenceDate = roundDate(utils, granularity, getTodayDate(utils, timezone));
44
44
  if (props.minDate != null && utils.isAfterDay(props.minDate, referenceDate)) {
45
45
  referenceDate = roundDate(utils, granularity, props.minDate);
46
46
  }
@@ -7,21 +7,29 @@ export const validateDate = ({
7
7
  if (value === null) {
8
8
  return null;
9
9
  }
10
- const now = adapter.utils.date();
10
+ const {
11
+ shouldDisableDate,
12
+ shouldDisableMonth,
13
+ shouldDisableYear,
14
+ disablePast,
15
+ disableFuture,
16
+ timezone
17
+ } = props;
18
+ const now = adapter.utils.dateWithTimezone(undefined, timezone);
11
19
  const minDate = applyDefaultDate(adapter.utils, props.minDate, adapter.defaultDates.minDate);
12
20
  const maxDate = applyDefaultDate(adapter.utils, props.maxDate, adapter.defaultDates.maxDate);
13
21
  switch (true) {
14
22
  case !adapter.utils.isValid(value):
15
23
  return 'invalidDate';
16
- case Boolean(props.shouldDisableDate && props.shouldDisableDate(value)):
24
+ case Boolean(shouldDisableDate && shouldDisableDate(value)):
17
25
  return 'shouldDisableDate';
18
- case Boolean(props.shouldDisableMonth && props.shouldDisableMonth(value)):
26
+ case Boolean(shouldDisableMonth && shouldDisableMonth(value)):
19
27
  return 'shouldDisableMonth';
20
- case Boolean(props.shouldDisableYear && props.shouldDisableYear(value)):
28
+ case Boolean(shouldDisableYear && shouldDisableYear(value)):
21
29
  return 'shouldDisableYear';
22
- case Boolean(props.disableFuture && adapter.utils.isAfterDay(value, now)):
30
+ case Boolean(disableFuture && adapter.utils.isAfterDay(value, now)):
23
31
  return 'disableFuture';
24
- case Boolean(props.disablePast && adapter.utils.isBeforeDay(value, now)):
32
+ case Boolean(disablePast && adapter.utils.isBeforeDay(value, now)):
25
33
  return 'disablePast';
26
34
  case Boolean(minDate && adapter.utils.isBeforeDay(value, minDate)):
27
35
  return 'minDate';
@@ -4,6 +4,9 @@ export const validateTime = ({
4
4
  value,
5
5
  props
6
6
  }) => {
7
+ if (value === null) {
8
+ return null;
9
+ }
7
10
  const {
8
11
  minTime,
9
12
  maxTime,
@@ -12,14 +15,11 @@ export const validateTime = ({
12
15
  shouldDisableTime,
13
16
  disableIgnoringDatePartForTimeValidation = false,
14
17
  disablePast,
15
- disableFuture
18
+ disableFuture,
19
+ timezone
16
20
  } = props;
17
- const now = adapter.utils.date();
18
- const date = adapter.utils.date(value);
21
+ const now = adapter.utils.dateWithTimezone(undefined, timezone);
19
22
  const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, adapter.utils);
20
- if (value === null) {
21
- return null;
22
- }
23
23
  switch (true) {
24
24
  case !adapter.utils.isValid(value):
25
25
  return 'invalidDate';
@@ -27,9 +27,9 @@ export const validateTime = ({
27
27
  return 'minTime';
28
28
  case Boolean(maxTime && isAfter(value, maxTime)):
29
29
  return 'maxTime';
30
- case Boolean(disableFuture && adapter.utils.isAfter(date, now)):
30
+ case Boolean(disableFuture && adapter.utils.isAfter(value, now)):
31
31
  return 'disableFuture';
32
- case Boolean(disablePast && adapter.utils.isBefore(date, now)):
32
+ case Boolean(disablePast && adapter.utils.isBefore(value, now)):
33
33
  return 'disablePast';
34
34
  case Boolean(shouldDisableTime && shouldDisableTime(value, 'hours')):
35
35
  return 'shouldDisableTime-hours';
@@ -25,7 +25,8 @@ export const singleItemValueManager = {
25
25
  isSameError: (a, b) => a === b,
26
26
  hasError: error => error != null,
27
27
  defaultErrorState: null,
28
- getTimezone: (utils, value) => value == null ? null : utils.getTimezone(value)
28
+ getTimezone: (utils, value) => value == null ? null : utils.getTimezone(value),
29
+ setTimezone: (utils, timezone, value) => value == null ? null : utils.setTimezone(value, timezone)
29
30
  };
30
31
  export const singleItemFieldValueManager = {
31
32
  updateReferenceValue: (utils, value, prevReferenceValue) => value == null || !utils.isValid(value) ? prevReferenceValue : value,
@@ -8,8 +8,8 @@ const timeViews = {
8
8
  };
9
9
  const csCZPickers = {
10
10
  // Calendar navigation
11
- previousMonth: 'Další měsíc',
12
- nextMonth: 'Předchozí měsíc',
11
+ previousMonth: 'Předchozí měsíc',
12
+ nextMonth: 'Další měsíc',
13
13
  // View navigation
14
14
  openPreviousView: 'otevřít předchozí zobrazení',
15
15
  openNextView: 'otevřít další zobrazení',
@@ -0,0 +1,57 @@
1
+ import { getPickersLocalization } from './utils/getPickersLocalization';
2
+ const views = {
3
+ hours: 'ώρες',
4
+ minutes: 'λεπτά',
5
+ seconds: 'δευτερόλεπτα',
6
+ meridiem: 'μεσημβρία'
7
+ };
8
+ const elGRPickers = {
9
+ // Calendar navigation
10
+ previousMonth: 'Προηγούμενος μήνας',
11
+ nextMonth: 'Επόμενος μήνας',
12
+ // View navigation
13
+ openPreviousView: 'ανοίγμα προηγούμενης προβολή',
14
+ openNextView: 'ανοίγμα επόμενης προβολή',
15
+ calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'η προβολή έτους είναι ανοιχτή, μεταβείτε στην προβολή ημερολογίου' : 'η προβολή ημερολογίου είναι ανοιχτή, μεταβείτε στην προβολή έτους',
16
+ // DateRange placeholders
17
+ start: 'Αρχή',
18
+ end: 'Τέλος',
19
+ // Action bar
20
+ cancelButtonLabel: 'Άκυρο',
21
+ clearButtonLabel: 'Καθαρισμός',
22
+ okButtonLabel: 'OK',
23
+ todayButtonLabel: 'Σήμερα',
24
+ // Toolbar titles
25
+ datePickerToolbarTitle: 'Επιλέξτε ημερομηνία',
26
+ dateTimePickerToolbarTitle: 'Επιλέξτε ημερομηνία και ώρα',
27
+ timePickerToolbarTitle: 'Επιλέξτε ώρα',
28
+ dateRangePickerToolbarTitle: 'Επιλέξτε εύρος ημερομηνιών',
29
+ // Clock labels
30
+ clockLabelText: (view, time, adapter) => `Επιλέξτε ${views[view]}. ${time === null ? 'Δεν έχει επιλεγεί ώρα' : `Η επιλεγμένη ώρα είναι ${adapter.format(time, 'fullTime')}`}`,
31
+ hoursClockNumberText: hours => `${hours} ώρες`,
32
+ minutesClockNumberText: minutes => `${minutes} λεπτά`,
33
+ secondsClockNumberText: seconds => `${seconds} δευτερόλεπτα`,
34
+ // Digital clock labels
35
+ selectViewText: view => `Επιλέξτε ${views[view]}`,
36
+ // Calendar labels
37
+ calendarWeekNumberHeaderLabel: 'Αριθμός εβδομάδας',
38
+ calendarWeekNumberHeaderText: '#',
39
+ calendarWeekNumberAriaLabelText: weekNumber => `Εβδομάδα ${weekNumber}`,
40
+ calendarWeekNumberText: weekNumber => `${weekNumber}`,
41
+ // Open picker labels
42
+ openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Επιλέξτε ημερομηνία, η επιλεγμένη ημερομηνία είναι ${utils.format(value, 'fullDate')}` : 'Επιλέξτε ημερομηνία',
43
+ openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Επιλέξτε ώρα, η επιλεγμένη ώρα είναι ${utils.format(value, 'fullTime')}` : 'Επιλέξτε ώρα',
44
+ // Table labels
45
+ timeTableLabel: 'επιλέξτε ώρα',
46
+ dateTableLabel: 'επιλέξτε ημερομηνία',
47
+ // Field section placeholders
48
+ fieldYearPlaceholder: params => 'Y'.repeat(params.digitAmount),
49
+ fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
50
+ fieldDayPlaceholder: () => 'DD',
51
+ fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',
52
+ fieldHoursPlaceholder: () => 'hh',
53
+ fieldMinutesPlaceholder: () => 'mm',
54
+ fieldSecondsPlaceholder: () => 'ss',
55
+ fieldMeridiemPlaceholder: () => 'aa'
56
+ };
57
+ export const elGR = getPickersLocalization(elGRPickers);
@@ -2,6 +2,7 @@ export * from './beBY';
2
2
  export * from './caES';
3
3
  export * from './csCZ';
4
4
  export * from './deDE';
5
+ export * from './elGR';
5
6
  export * from './enUS';
6
7
  export * from './esES';
7
8
  export * from './faIR';
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import moment from 'moment';
3
+ import momentTZ from 'moment-timezone';
3
4
  import createDescribe from '@mui/monorepo/test/utils/createDescribe';
4
5
  import { buildFieldInteractions, createPickerRenderer } from 'test/utils/pickers-utils';
5
6
  const ADAPTERS = ['dayjs', 'date-fns', 'luxon', 'moment'];
@@ -13,7 +14,8 @@ function innerDescribeAdapters(title, FieldComponent, testRunner) {
13
14
  const pickerRendererResponse = createPickerRenderer({
14
15
  adapterName,
15
16
  clock: 'fake',
16
- clockConfig: new Date(2022, 5, 15)
17
+ clockConfig: new Date(2022, 5, 15),
18
+ instance: adapterName === 'moment' ? momentTZ : undefined
17
19
  });
18
20
  const fieldInteractions = buildFieldInteractions({
19
21
  clock: pickerRendererResponse.clock,
@@ -1,10 +1,12 @@
1
1
  import { expect } from 'chai';
2
+ import { getDateOffset } from 'test/utils/pickers-utils';
2
3
  import { TEST_DATE_ISO_STRING, TEST_DATE_LOCALE_STRING } from './describeGregorianAdapter.utils';
3
4
  export const testCalculations = ({
4
5
  adapter,
5
6
  adapterTZ,
6
7
  adapterFr,
7
- setDefaultTimezone
8
+ setDefaultTimezone,
9
+ getLocaleFromDate
8
10
  }) => {
9
11
  const testDateIso = adapter.date(TEST_DATE_ISO_STRING);
10
12
  const testDateLocale = adapter.date(TEST_DATE_LOCALE_STRING);
@@ -113,25 +115,27 @@ export const testCalculations = ({
113
115
  testTimezone('default', 'America/Chicago');
114
116
  setDefaultTimezone(undefined);
115
117
  });
116
- describe('Method: setTimezone', () => {
117
- it('should support "default"', () => {
118
- if (adapter.isTimezoneCompatible) {
119
- const test = timezone => {
120
- setDefaultTimezone(timezone);
121
- const dateWithLocaleTimezone = adapter.dateWithTimezone(undefined, 'system');
122
- const dateWithDefaultTimezone = adapter.setTimezone(dateWithLocaleTimezone, 'default');
123
- expect(adapter.getTimezone(dateWithDefaultTimezone)).to.equal(timezone);
124
- };
125
- test('America/New_York');
126
- test('Europe/Paris');
118
+ it('Method: setTimezone', () => {
119
+ if (adapter.isTimezoneCompatible) {
120
+ const test = timezone => {
121
+ setDefaultTimezone(timezone);
122
+ const dateWithLocaleTimezone = adapter.dateWithTimezone(TEST_DATE_ISO_STRING, 'system');
123
+ const dateWithDefaultTimezone = adapter.setTimezone(dateWithLocaleTimezone, 'default');
124
+ expect(adapter.getTimezone(dateWithDefaultTimezone)).to.equal(timezone);
125
+ };
126
+ test('America/New_York');
127
+ test('Europe/Paris');
127
128
 
128
- // Reset to the default timezone
129
- setDefaultTimezone(undefined);
130
- } else {
131
- const localeDate = adapter.dateWithTimezone(undefined, 'system');
132
- expect(adapter.setTimezone(localeDate, 'default')).to.equal(localeDate);
133
- }
134
- });
129
+ // Reset to the default timezone
130
+ setDefaultTimezone(undefined);
131
+ } else {
132
+ const systemDate = adapter.dateWithTimezone(TEST_DATE_ISO_STRING, 'system');
133
+ expect(adapter.setTimezone(systemDate, 'default')).toEqualDateTime(systemDate);
134
+ expect(adapter.setTimezone(systemDate, 'system')).toEqualDateTime(systemDate);
135
+ const defaultDate = adapter.dateWithTimezone(TEST_DATE_ISO_STRING, 'default');
136
+ expect(adapter.setTimezone(systemDate, 'default')).toEqualDateTime(defaultDate);
137
+ expect(adapter.setTimezone(systemDate, 'system')).toEqualDateTime(defaultDate);
138
+ }
135
139
  });
136
140
  it('Method: toJsDate', () => {
137
141
  expect(adapter.toJsDate(testDateIso)).to.be.instanceOf(Date);
@@ -145,9 +149,6 @@ export const testCalculations = ({
145
149
  if (adapter.lib === 'date-fns') {
146
150
  // date-fns never suppress useless milliseconds in the end
147
151
  expect(outputtedISO).to.equal(TEST_DATE_ISO_STRING.replace('.000Z', 'Z'));
148
- } else if (adapter.lib === 'luxon') {
149
- // luxon does not shorthand +00:00 to Z, which is also valid ISO string
150
- expect(outputtedISO).to.equal(TEST_DATE_ISO_STRING.replace('Z', '+00:00'));
151
152
  } else {
152
153
  expect(outputtedISO).to.equal(TEST_DATE_ISO_STRING);
153
154
  }
@@ -548,6 +549,9 @@ export const testCalculations = ({
548
549
  it('Method: getSeconds', () => {
549
550
  expect(adapter.getSeconds(testDateIso)).to.equal(0);
550
551
  });
552
+ it('Method: getMilliseconds', () => {
553
+ expect(adapter.getMilliseconds(testDateIso)).to.equal(0);
554
+ });
551
555
  it('Method: setYear', () => {
552
556
  expect(adapter.setYear(testDateIso, 2011)).toEqualDateTime('2011-10-30T11:44:00.000Z');
553
557
  });
@@ -566,6 +570,9 @@ export const testCalculations = ({
566
570
  it('Method: setSeconds', () => {
567
571
  expect(adapter.setSeconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:11.000Z');
568
572
  });
573
+ it('Method: setMilliseconds', () => {
574
+ expect(adapter.setMilliseconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:00.011Z');
575
+ });
569
576
  it('Method: getDaysInMonth', () => {
570
577
  expect(adapter.getDaysInMonth(testDateIso)).to.equal(31);
571
578
  expect(adapter.getDaysInMonth(testDateLocale)).to.equal(31);
@@ -597,11 +604,46 @@ export const testCalculations = ({
597
604
  date = adapter.addDays(date, 1);
598
605
  });
599
606
  });
600
- it('Method: getWeekArray', () => {
601
- const weekArray = adapter.getWeekArray(testDateIso);
602
- expect(weekArray).to.have.length(5);
603
- weekArray.forEach(week => {
604
- expect(week).to.have.length(7);
607
+ describe('Method: getWeekArray', () => {
608
+ it('should work without timezones', () => {
609
+ const weekArray = adapter.getWeekArray(testDateIso);
610
+ let expectedDate = adapter.startOfWeek(adapter.startOfMonth(testDateIso));
611
+ expect(weekArray).to.have.length(5);
612
+ weekArray.forEach(week => {
613
+ expect(week).to.have.length(7);
614
+ week.forEach(day => {
615
+ expect(day).toEqualDateTime(expectedDate);
616
+ expectedDate = adapter.addDays(expectedDate, 1);
617
+ });
618
+ });
619
+ });
620
+ it('should respect the DST', function test() {
621
+ if (!adapterTZ.isTimezoneCompatible) {
622
+ this.skip();
623
+ }
624
+ const referenceDate = adapterTZ.dateWithTimezone('2022-03-17', 'Europe/Paris');
625
+ const weekArray = adapterTZ.getWeekArray(referenceDate);
626
+ let expectedDate = adapter.startOfWeek(adapter.startOfMonth(referenceDate));
627
+ const lastNonDSTDay = adapterTZ.dateWithTimezone('2022-03-27', 'Europe/Paris');
628
+ expect(weekArray).to.have.length(5);
629
+ weekArray.forEach(week => {
630
+ expect(week).to.have.length(7);
631
+ week.forEach(day => {
632
+ expect(adapterTZ.startOfDay(day)).toEqualDateTime(adapterTZ.startOfDay(expectedDate));
633
+ expectedDate = adapterTZ.addDays(expectedDate, 1);
634
+ expect(getDateOffset(adapterTZ, day)).to.equal(adapterTZ.isAfter(day, lastNonDSTDay) ? 120 : 60);
635
+ });
636
+ });
637
+ });
638
+ it('should respect the locale of the adapter, not the locale of the date', function test() {
639
+ const dateFr = adapterFr.dateWithTimezone('2022-03-17', 'default');
640
+ const weekArray = adapter.getWeekArray(dateFr);
641
+ if (getLocaleFromDate) {
642
+ expect(getLocaleFromDate(weekArray[0][0])).to.match(/en/);
643
+ }
644
+
645
+ // Week should start on Monday (28th of March) for adapters supporting locale-based week start.
646
+ expect(adapter.getDate(weekArray[0][0])).to.equal(adapter.lib === 'luxon' ? 28 : 27);
605
647
  });
606
648
  });
607
649
  it('Method: getWeekNumber', () => {
@@ -163,6 +163,15 @@ export const testCalculations = ({
163
163
  it('Method: getDate', () => {
164
164
  expect(adapter.getDate(testDateIso)).to.equal(8);
165
165
  });
166
+ it('Method: getMinutes', () => {
167
+ expect(adapter.getMinutes(testDateIso)).to.equal(44);
168
+ });
169
+ it('Method: getSeconds', () => {
170
+ expect(adapter.getSeconds(testDateIso)).to.equal(0);
171
+ });
172
+ it('Method: getMilliseconds', () => {
173
+ expect(adapter.getMilliseconds(testDateIso)).to.equal(0);
174
+ });
166
175
  it('Method: setYear', () => {
167
176
  expect(adapter.setYear(testDateIso, 1398)).toEqualDateTime('2019-10-30T11:44:00.000Z');
168
177
  });
@@ -172,6 +181,18 @@ export const testCalculations = ({
172
181
  it('Method: setDate', () => {
173
182
  expect(adapter.setDate(testDateIso, 9)).toEqualDateTime('2018-10-31T11:44:00.000Z');
174
183
  });
184
+ it('Method: setHours', () => {
185
+ expect(adapter.setHours(testDateIso, 0)).toEqualDateTime('2018-10-30T00:44:00.000Z');
186
+ });
187
+ it('Method: setMinutes', () => {
188
+ expect(adapter.setMinutes(testDateIso, 12)).toEqualDateTime('2018-10-30T11:12:00.000Z');
189
+ });
190
+ it('Method: setSeconds', () => {
191
+ expect(adapter.setSeconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:11.000Z');
192
+ });
193
+ it('Method: setMilliseconds', () => {
194
+ expect(adapter.setMilliseconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:00.011Z');
195
+ });
175
196
  it('Method: getNextMonth', () => {
176
197
  expect(adapter.getNextMonth(testDateIso)).toEqualDateTime('2018-11-29T11:44:00.000Z');
177
198
  });
@@ -33,7 +33,8 @@ export const renderTimeViewClock = ({
33
33
  sx,
34
34
  autoFocus,
35
35
  showViewSwitcher,
36
- disableIgnoringDatePartForTimeValidation
36
+ disableIgnoringDatePartForTimeValidation,
37
+ timezone
37
38
  }) => /*#__PURE__*/_jsx(TimeClock, {
38
39
  view: view,
39
40
  onViewChange: onViewChange,
@@ -63,7 +64,8 @@ export const renderTimeViewClock = ({
63
64
  sx: sx,
64
65
  autoFocus: autoFocus,
65
66
  showViewSwitcher: showViewSwitcher,
66
- disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation
67
+ disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
68
+ timezone: timezone
67
69
  });
68
70
  export const renderDigitalClockTimeView = ({
69
71
  view,
@@ -94,7 +96,8 @@ export const renderDigitalClockTimeView = ({
94
96
  autoFocus,
95
97
  disableIgnoringDatePartForTimeValidation,
96
98
  timeSteps,
97
- skipDisabled
99
+ skipDisabled,
100
+ timezone
98
101
  }) => /*#__PURE__*/_jsx(DigitalClock, {
99
102
  view: view,
100
103
  onViewChange: onViewChange,
@@ -124,7 +127,8 @@ export const renderDigitalClockTimeView = ({
124
127
  autoFocus: autoFocus,
125
128
  disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
126
129
  timeStep: timeSteps?.minutes,
127
- skipDisabled: skipDisabled
130
+ skipDisabled: skipDisabled,
131
+ timezone: timezone
128
132
  });
129
133
  export const renderMultiSectionDigitalClockTimeView = ({
130
134
  view,
@@ -155,7 +159,8 @@ export const renderMultiSectionDigitalClockTimeView = ({
155
159
  autoFocus,
156
160
  disableIgnoringDatePartForTimeValidation,
157
161
  timeSteps,
158
- skipDisabled
162
+ skipDisabled,
163
+ timezone
159
164
  }) => /*#__PURE__*/_jsx(MultiSectionDigitalClock, {
160
165
  view: view,
161
166
  onViewChange: onViewChange,
@@ -185,5 +190,6 @@ export const renderMultiSectionDigitalClockTimeView = ({
185
190
  autoFocus: autoFocus,
186
191
  disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
187
192
  timeSteps: timeSteps,
188
- skipDisabled: skipDisabled
193
+ skipDisabled: skipDisabled,
194
+ timezone: timezone
189
195
  });