@mui/x-date-pickers 6.8.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 (248) 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 +76 -5534
  7. package/DateCalendar/DateCalendar.js +34 -16
  8. package/DateCalendar/DateCalendar.types.d.ts +2 -2
  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 +2 -1
  13. package/DateCalendar/useCalendarState.js +6 -3
  14. package/DateCalendar/useIsDateDisabled.d.ts +1 -1
  15. package/DateCalendar/useIsDateDisabled.js +5 -3
  16. package/DateField/DateField.js +8 -0
  17. package/DatePicker/DatePicker.js +8 -0
  18. package/DateTimeField/DateTimeField.js +8 -0
  19. package/DateTimePicker/DateTimePicker.js +8 -0
  20. package/DesktopDatePicker/DesktopDatePicker.js +8 -0
  21. package/DesktopDateTimePicker/DesktopDateTimePicker.js +8 -0
  22. package/DesktopTimePicker/DesktopTimePicker.js +8 -0
  23. package/DigitalClock/DigitalClock.js +28 -15
  24. package/MobileDatePicker/MobileDatePicker.js +8 -0
  25. package/MobileDateTimePicker/MobileDateTimePicker.js +8 -0
  26. package/MobileTimePicker/MobileTimePicker.js +8 -0
  27. package/MonthCalendar/MonthCalendar.js +30 -14
  28. package/MonthCalendar/MonthCalendar.types.d.ts +3 -2
  29. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
  30. package/StaticDatePicker/StaticDatePicker.js +8 -0
  31. package/StaticDateTimePicker/StaticDateTimePicker.js +8 -0
  32. package/StaticTimePicker/StaticTimePicker.js +8 -0
  33. package/TimeClock/TimeClock.js +27 -15
  34. package/TimeField/TimeField.js +8 -0
  35. package/TimePicker/TimePicker.js +8 -0
  36. package/YearCalendar/YearCalendar.js +30 -14
  37. package/YearCalendar/YearCalendar.types.d.ts +3 -2
  38. package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +1 -1
  39. package/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
  40. package/dateViewRenderers/dateViewRenderers.d.ts +1 -1
  41. package/dateViewRenderers/dateViewRenderers.js +4 -2
  42. package/index.js +1 -1
  43. package/internals/hooks/date-helpers-hooks.d.ts +4 -2
  44. package/internals/hooks/date-helpers-hooks.js +8 -6
  45. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  46. package/internals/hooks/useField/useField.d.ts +3 -1
  47. package/internals/hooks/useField/useField.js +23 -7
  48. package/internals/hooks/useField/useField.types.d.ts +5 -3
  49. package/internals/hooks/useField/useField.utils.d.ts +13 -11
  50. package/internals/hooks/useField/useField.utils.js +55 -43
  51. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +3 -2
  52. package/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
  53. package/internals/hooks/useField/useFieldState.d.ts +1 -0
  54. package/internals/hooks/useField/useFieldState.js +33 -22
  55. package/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
  56. package/internals/hooks/usePicker/usePickerValue.js +23 -7
  57. package/internals/hooks/usePicker/usePickerValue.types.d.ts +16 -4
  58. package/internals/hooks/usePicker/usePickerViews.d.ts +2 -1
  59. package/internals/hooks/usePicker/usePickerViews.js +7 -2
  60. package/internals/hooks/useUtils.d.ts +3 -2
  61. package/internals/hooks/useUtils.js +5 -2
  62. package/internals/hooks/useValueWithTimezone.d.ts +33 -0
  63. package/internals/hooks/useValueWithTimezone.js +69 -0
  64. package/internals/index.d.ts +1 -0
  65. package/internals/index.js +1 -0
  66. package/internals/models/props/clock.d.ts +2 -2
  67. package/internals/utils/date-utils.d.ts +4 -3
  68. package/internals/utils/date-utils.js +4 -3
  69. package/internals/utils/fields.js +1 -1
  70. package/internals/utils/getDefaultReferenceDate.d.ts +3 -2
  71. package/internals/utils/getDefaultReferenceDate.js +3 -2
  72. package/internals/utils/validation/extractValidationProps.d.ts +1 -1
  73. package/internals/utils/validation/validateDate.d.ts +3 -2
  74. package/internals/utils/validation/validateDate.js +14 -6
  75. package/internals/utils/validation/validateTime.d.ts +3 -2
  76. package/internals/utils/validation/validateTime.js +8 -8
  77. package/internals/utils/valueManagers.js +2 -1
  78. package/legacy/AdapterDayjs/AdapterDayjs.js +45 -16
  79. package/legacy/AdapterLuxon/AdapterLuxon.js +13 -6
  80. package/legacy/AdapterMoment/AdapterMoment.js +18 -9
  81. package/legacy/DateCalendar/DateCalendar.js +32 -19
  82. package/legacy/DateCalendar/DayCalendar.js +24 -17
  83. package/legacy/DateCalendar/PickersCalendarHeader.js +6 -3
  84. package/legacy/DateCalendar/useCalendarState.js +6 -3
  85. package/legacy/DateCalendar/useIsDateDisabled.js +5 -3
  86. package/legacy/DateField/DateField.js +8 -0
  87. package/legacy/DatePicker/DatePicker.js +8 -0
  88. package/legacy/DateTimeField/DateTimeField.js +8 -0
  89. package/legacy/DateTimePicker/DateTimePicker.js +8 -0
  90. package/legacy/DesktopDatePicker/DesktopDatePicker.js +8 -0
  91. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +8 -0
  92. package/legacy/DesktopTimePicker/DesktopTimePicker.js +8 -0
  93. package/legacy/DigitalClock/DigitalClock.js +26 -16
  94. package/legacy/MobileDatePicker/MobileDatePicker.js +8 -0
  95. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +8 -0
  96. package/legacy/MobileTimePicker/MobileTimePicker.js +8 -0
  97. package/legacy/MonthCalendar/MonthCalendar.js +32 -20
  98. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +27 -16
  99. package/legacy/StaticDatePicker/StaticDatePicker.js +8 -0
  100. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +8 -0
  101. package/legacy/StaticTimePicker/StaticTimePicker.js +8 -0
  102. package/legacy/TimeClock/TimeClock.js +25 -18
  103. package/legacy/TimeField/TimeField.js +8 -0
  104. package/legacy/TimePicker/TimePicker.js +8 -0
  105. package/legacy/YearCalendar/YearCalendar.js +32 -20
  106. package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
  107. package/legacy/dateViewRenderers/dateViewRenderers.js +4 -2
  108. package/legacy/index.js +1 -1
  109. package/legacy/internals/hooks/date-helpers-hooks.js +8 -6
  110. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  111. package/legacy/internals/hooks/useField/useField.js +22 -6
  112. package/legacy/internals/hooks/useField/useField.utils.js +56 -44
  113. package/legacy/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
  114. package/legacy/internals/hooks/useField/useFieldState.js +42 -32
  115. package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
  116. package/legacy/internals/hooks/usePicker/usePickerValue.js +22 -7
  117. package/legacy/internals/hooks/usePicker/usePickerViews.js +7 -2
  118. package/legacy/internals/hooks/useUtils.js +5 -2
  119. package/legacy/internals/hooks/useValueWithTimezone.js +81 -0
  120. package/legacy/internals/index.js +1 -0
  121. package/legacy/internals/utils/date-utils.js +5 -4
  122. package/legacy/internals/utils/fields.js +1 -1
  123. package/legacy/internals/utils/getDefaultReferenceDate.js +3 -2
  124. package/legacy/internals/utils/validation/validateDate.js +12 -6
  125. package/legacy/internals/utils/validation/validateTime.js +8 -8
  126. package/legacy/internals/utils/valueManagers.js +3 -0
  127. package/legacy/locales/csCZ.js +2 -2
  128. package/legacy/tests/describeAdapters/describeAdapters.js +3 -1
  129. package/legacy/tests/describeGregorianAdapter/testCalculations.js +69 -27
  130. package/legacy/tests/describeJalaliAdapter/testCalculations.js +21 -0
  131. package/legacy/timeViewRenderers/timeViewRenderers.js +12 -6
  132. package/locales/csCZ.js +2 -2
  133. package/models/adapters.d.ts +2 -2
  134. package/models/timezone.d.ts +10 -0
  135. package/modern/AdapterDayjs/AdapterDayjs.js +41 -15
  136. package/modern/AdapterLuxon/AdapterLuxon.js +12 -4
  137. package/modern/AdapterMoment/AdapterMoment.js +18 -9
  138. package/modern/DateCalendar/DateCalendar.js +34 -16
  139. package/modern/DateCalendar/DayCalendar.js +24 -17
  140. package/modern/DateCalendar/PickersCalendarHeader.js +6 -3
  141. package/modern/DateCalendar/useCalendarState.js +6 -3
  142. package/modern/DateCalendar/useIsDateDisabled.js +5 -3
  143. package/modern/DateField/DateField.js +8 -0
  144. package/modern/DatePicker/DatePicker.js +8 -0
  145. package/modern/DateTimeField/DateTimeField.js +8 -0
  146. package/modern/DateTimePicker/DateTimePicker.js +8 -0
  147. package/modern/DesktopDatePicker/DesktopDatePicker.js +8 -0
  148. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +8 -0
  149. package/modern/DesktopTimePicker/DesktopTimePicker.js +8 -0
  150. package/modern/DigitalClock/DigitalClock.js +28 -15
  151. package/modern/MobileDatePicker/MobileDatePicker.js +8 -0
  152. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +8 -0
  153. package/modern/MobileTimePicker/MobileTimePicker.js +8 -0
  154. package/modern/MonthCalendar/MonthCalendar.js +30 -14
  155. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
  156. package/modern/StaticDatePicker/StaticDatePicker.js +8 -0
  157. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +8 -0
  158. package/modern/StaticTimePicker/StaticTimePicker.js +8 -0
  159. package/modern/TimeClock/TimeClock.js +27 -15
  160. package/modern/TimeField/TimeField.js +8 -0
  161. package/modern/TimePicker/TimePicker.js +8 -0
  162. package/modern/YearCalendar/YearCalendar.js +30 -14
  163. package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
  164. package/modern/dateViewRenderers/dateViewRenderers.js +4 -2
  165. package/modern/index.js +1 -1
  166. package/modern/internals/hooks/date-helpers-hooks.js +8 -6
  167. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  168. package/modern/internals/hooks/useField/useField.js +23 -7
  169. package/modern/internals/hooks/useField/useField.utils.js +55 -43
  170. package/modern/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
  171. package/modern/internals/hooks/useField/useFieldState.js +33 -21
  172. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
  173. package/modern/internals/hooks/usePicker/usePickerValue.js +23 -7
  174. package/modern/internals/hooks/usePicker/usePickerViews.js +7 -2
  175. package/modern/internals/hooks/useUtils.js +5 -2
  176. package/modern/internals/hooks/useValueWithTimezone.js +68 -0
  177. package/modern/internals/index.js +1 -0
  178. package/modern/internals/utils/date-utils.js +4 -3
  179. package/modern/internals/utils/fields.js +1 -1
  180. package/modern/internals/utils/getDefaultReferenceDate.js +3 -2
  181. package/modern/internals/utils/validation/validateDate.js +14 -6
  182. package/modern/internals/utils/validation/validateTime.js +8 -8
  183. package/modern/internals/utils/valueManagers.js +2 -1
  184. package/modern/locales/csCZ.js +2 -2
  185. package/modern/tests/describeAdapters/describeAdapters.js +3 -1
  186. package/modern/tests/describeGregorianAdapter/testCalculations.js +69 -27
  187. package/modern/tests/describeJalaliAdapter/testCalculations.js +21 -0
  188. package/modern/timeViewRenderers/timeViewRenderers.js +12 -6
  189. package/node/AdapterDayjs/AdapterDayjs.js +41 -15
  190. package/node/AdapterLuxon/AdapterLuxon.js +12 -4
  191. package/node/AdapterMoment/AdapterMoment.js +18 -9
  192. package/node/DateCalendar/DateCalendar.js +33 -15
  193. package/node/DateCalendar/DayCalendar.js +24 -17
  194. package/node/DateCalendar/PickersCalendarHeader.js +6 -3
  195. package/node/DateCalendar/useCalendarState.js +6 -3
  196. package/node/DateCalendar/useIsDateDisabled.js +5 -3
  197. package/node/DateField/DateField.js +8 -0
  198. package/node/DatePicker/DatePicker.js +8 -0
  199. package/node/DateTimeField/DateTimeField.js +8 -0
  200. package/node/DateTimePicker/DateTimePicker.js +8 -0
  201. package/node/DesktopDatePicker/DesktopDatePicker.js +8 -0
  202. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +8 -0
  203. package/node/DesktopTimePicker/DesktopTimePicker.js +8 -0
  204. package/node/DigitalClock/DigitalClock.js +28 -15
  205. package/node/MobileDatePicker/MobileDatePicker.js +8 -0
  206. package/node/MobileDateTimePicker/MobileDateTimePicker.js +8 -0
  207. package/node/MobileTimePicker/MobileTimePicker.js +8 -0
  208. package/node/MonthCalendar/MonthCalendar.js +30 -14
  209. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
  210. package/node/StaticDatePicker/StaticDatePicker.js +8 -0
  211. package/node/StaticDateTimePicker/StaticDateTimePicker.js +8 -0
  212. package/node/StaticTimePicker/StaticTimePicker.js +8 -0
  213. package/node/TimeClock/TimeClock.js +26 -14
  214. package/node/TimeField/TimeField.js +8 -0
  215. package/node/TimePicker/TimePicker.js +8 -0
  216. package/node/YearCalendar/YearCalendar.js +30 -14
  217. package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
  218. package/node/dateViewRenderers/dateViewRenderers.js +4 -2
  219. package/node/index.js +1 -1
  220. package/node/internals/hooks/date-helpers-hooks.js +8 -6
  221. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  222. package/node/internals/hooks/useField/useField.js +23 -7
  223. package/node/internals/hooks/useField/useField.utils.js +55 -43
  224. package/node/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
  225. package/node/internals/hooks/useField/useFieldState.js +33 -21
  226. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
  227. package/node/internals/hooks/usePicker/usePickerValue.js +22 -7
  228. package/node/internals/hooks/usePicker/usePickerViews.js +7 -2
  229. package/node/internals/hooks/useUtils.js +5 -2
  230. package/node/internals/hooks/useValueWithTimezone.js +79 -0
  231. package/node/internals/index.js +7 -0
  232. package/node/internals/utils/date-utils.js +4 -3
  233. package/node/internals/utils/fields.js +1 -1
  234. package/node/internals/utils/getDefaultReferenceDate.js +3 -2
  235. package/node/internals/utils/validation/validateDate.js +14 -6
  236. package/node/internals/utils/validation/validateTime.js +8 -8
  237. package/node/internals/utils/valueManagers.js +2 -1
  238. package/node/locales/csCZ.js +2 -2
  239. package/node/tests/describeAdapters/describeAdapters.js +3 -1
  240. package/node/tests/describeGregorianAdapter/testCalculations.js +69 -27
  241. package/node/tests/describeJalaliAdapter/testCalculations.js +21 -0
  242. package/node/timeViewRenderers/timeViewRenderers.js +12 -6
  243. package/package.json +2 -2
  244. package/tests/describeAdapters/describeAdapters.js +3 -1
  245. package/tests/describeGregorianAdapter/testCalculations.js +69 -27
  246. package/tests/describeJalaliAdapter/testCalculations.js +21 -0
  247. package/timeViewRenderers/timeViewRenderers.d.ts +3 -3
  248. package/timeViewRenderers/timeViewRenderers.js +12 -6
@@ -31,9 +31,12 @@ const useDefaultDates = () => useLocalizationContext().defaultDates;
31
31
  exports.useDefaultDates = useDefaultDates;
32
32
  const useLocaleText = () => useLocalizationContext().localeText;
33
33
  exports.useLocaleText = useLocaleText;
34
- const useNow = () => {
34
+ const useNow = timezone => {
35
35
  const utils = useUtils();
36
- const now = React.useRef(utils.date());
36
+ const now = React.useRef();
37
+ if (now.current === undefined) {
38
+ now.current = utils.dateWithTimezone(undefined, timezone);
39
+ }
37
40
  return now.current;
38
41
  };
39
42
  exports.useNow = useNow;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useValueWithTimezone = exports.useControlledValueWithTimezone = void 0;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
10
+ var _useControlled = _interopRequireDefault(require("@mui/utils/useControlled"));
11
+ var _useUtils = require("./useUtils");
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ /**
15
+ * Hooks making sure that:
16
+ * - The value returned by `onChange` always have the timezone of `props.value` or `props.defaultValue` if defined
17
+ * - The value rendered is always the one from `props.timezone` if defined
18
+ */
19
+ const useValueWithTimezone = ({
20
+ timezone: timezoneProp,
21
+ value: valueProp,
22
+ defaultValue,
23
+ onChange,
24
+ valueManager
25
+ }) => {
26
+ const utils = (0, _useUtils.useUtils)();
27
+ const firstDefaultValue = React.useRef(defaultValue);
28
+ const inputValue = valueProp ?? firstDefaultValue.current ?? valueManager.emptyValue;
29
+ const inputTimezone = React.useMemo(() => valueManager.getTimezone(utils, inputValue), [utils, valueManager, inputValue]);
30
+ const setInputTimezone = (0, _useEventCallback.default)(newValue => {
31
+ if (inputTimezone == null) {
32
+ return newValue;
33
+ }
34
+ return valueManager.setTimezone(utils, inputTimezone, newValue);
35
+ });
36
+ const timezoneToRender = timezoneProp ?? inputTimezone ?? 'default';
37
+ const valueWithTimezoneToRender = React.useMemo(() => valueManager.setTimezone(utils, timezoneToRender, inputValue), [valueManager, utils, timezoneToRender, inputValue]);
38
+ const handleValueChange = (0, _useEventCallback.default)((newValue, ...otherParams) => {
39
+ const newValueWithInputTimezone = setInputTimezone(newValue);
40
+ onChange?.(newValueWithInputTimezone, ...otherParams);
41
+ });
42
+ return {
43
+ value: valueWithTimezoneToRender,
44
+ handleValueChange,
45
+ timezone: timezoneToRender
46
+ };
47
+ };
48
+
49
+ /**
50
+ * Wrapper around `useControlled` and `useValueWithTimezone`
51
+ */
52
+ exports.useValueWithTimezone = useValueWithTimezone;
53
+ const useControlledValueWithTimezone = ({
54
+ name,
55
+ timezone: timezoneProp,
56
+ value: valueProp,
57
+ defaultValue,
58
+ onChange: onChangeProp,
59
+ valueManager
60
+ }) => {
61
+ const [valueWithInputTimezone, setValue] = (0, _useControlled.default)({
62
+ name,
63
+ state: 'value',
64
+ controlled: valueProp,
65
+ default: defaultValue ?? valueManager.emptyValue
66
+ });
67
+ const onChange = (0, _useEventCallback.default)((newValue, ...otherParams) => {
68
+ setValue(newValue);
69
+ onChangeProp?.(newValue, ...otherParams);
70
+ });
71
+ return useValueWithTimezone({
72
+ timezone: timezoneProp,
73
+ value: valueWithInputTimezone,
74
+ defaultValue: undefined,
75
+ onChange,
76
+ valueManager
77
+ });
78
+ };
79
+ exports.useControlledValueWithTimezone = useControlledValueWithTimezone;
@@ -195,6 +195,12 @@ Object.defineProperty(exports, "useCalendarState", {
195
195
  return _useCalendarState.useCalendarState;
196
196
  }
197
197
  });
198
+ Object.defineProperty(exports, "useControlledValueWithTimezone", {
199
+ enumerable: true,
200
+ get: function () {
201
+ return _useValueWithTimezone.useControlledValueWithTimezone;
202
+ }
203
+ });
198
204
  Object.defineProperty(exports, "useDefaultDates", {
199
205
  enumerable: true,
200
206
  get: function () {
@@ -290,6 +296,7 @@ var _pickersArrowSwitcherClasses = require("./components/PickersArrowSwitcher/pi
290
296
  var _pickersPopperClasses = require("./components/pickersPopperClasses");
291
297
  var _PickersToolbarButton = require("./components/PickersToolbarButton");
292
298
  var _dimensions = require("./constants/dimensions");
299
+ var _useValueWithTimezone = require("./hooks/useValueWithTimezone");
293
300
  var _useField = require("./hooks/useField");
294
301
  var _usePicker = require("./hooks/usePicker");
295
302
  var _useStaticPicker = require("./hooks/useStaticPicker");
@@ -12,9 +12,10 @@ const findClosestEnabledDate = ({
12
12
  maxDate,
13
13
  minDate,
14
14
  isDateDisabled,
15
- utils
15
+ utils,
16
+ timezone
16
17
  }) => {
17
- const today = utils.startOfDay(utils.date());
18
+ const today = utils.startOfDay(utils.dateWithTimezone(undefined, timezone));
18
19
  if (disablePast && utils.isBefore(minDate, today)) {
19
20
  minDate = today;
20
21
  }
@@ -90,7 +91,7 @@ const mergeDateAndTime = (utils, dateParam, timeParam) => {
90
91
  return mergedDate;
91
92
  };
92
93
  exports.mergeDateAndTime = mergeDateAndTime;
93
- const getTodayDate = (utils, valueType) => valueType === 'date' ? utils.startOfDay(utils.date()) : utils.date();
94
+ const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.dateWithTimezone(undefined, timezone)) : utils.dateWithTimezone(undefined, timezone);
94
95
  exports.getTodayDate = getTodayDate;
95
96
  const dateViews = ['year', 'month', 'day'];
96
97
  const isDatePickerView = view => dateViews.includes(view);
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.splitFieldInternalAndForwardedProps = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _extractValidationProps = require("./validation/extractValidationProps");
10
- const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'readOnly', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef'];
10
+ const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'readOnly', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef'];
11
11
  const splitFieldInternalAndForwardedProps = (props, valueType) => {
12
12
  const forwardedProps = (0, _extends2.default)({}, props);
13
13
  const internalProps = {};
@@ -45,9 +45,10 @@ const roundDate = (utils, granularity, date) => {
45
45
  const getDefaultReferenceDate = ({
46
46
  props,
47
47
  utils,
48
- granularity
48
+ granularity,
49
+ timezone
49
50
  }) => {
50
- let referenceDate = roundDate(utils, granularity, (0, _dateUtils.getTodayDate)(utils));
51
+ let referenceDate = roundDate(utils, granularity, (0, _dateUtils.getTodayDate)(utils, timezone));
51
52
  if (props.minDate != null && utils.isAfterDay(props.minDate, referenceDate)) {
52
53
  referenceDate = roundDate(utils, granularity, props.minDate);
53
54
  }
@@ -13,21 +13,29 @@ const validateDate = ({
13
13
  if (value === null) {
14
14
  return null;
15
15
  }
16
- const now = adapter.utils.date();
16
+ const {
17
+ shouldDisableDate,
18
+ shouldDisableMonth,
19
+ shouldDisableYear,
20
+ disablePast,
21
+ disableFuture,
22
+ timezone
23
+ } = props;
24
+ const now = adapter.utils.dateWithTimezone(undefined, timezone);
17
25
  const minDate = (0, _dateUtils.applyDefaultDate)(adapter.utils, props.minDate, adapter.defaultDates.minDate);
18
26
  const maxDate = (0, _dateUtils.applyDefaultDate)(adapter.utils, props.maxDate, adapter.defaultDates.maxDate);
19
27
  switch (true) {
20
28
  case !adapter.utils.isValid(value):
21
29
  return 'invalidDate';
22
- case Boolean(props.shouldDisableDate && props.shouldDisableDate(value)):
30
+ case Boolean(shouldDisableDate && shouldDisableDate(value)):
23
31
  return 'shouldDisableDate';
24
- case Boolean(props.shouldDisableMonth && props.shouldDisableMonth(value)):
32
+ case Boolean(shouldDisableMonth && shouldDisableMonth(value)):
25
33
  return 'shouldDisableMonth';
26
- case Boolean(props.shouldDisableYear && props.shouldDisableYear(value)):
34
+ case Boolean(shouldDisableYear && shouldDisableYear(value)):
27
35
  return 'shouldDisableYear';
28
- case Boolean(props.disableFuture && adapter.utils.isAfterDay(value, now)):
36
+ case Boolean(disableFuture && adapter.utils.isAfterDay(value, now)):
29
37
  return 'disableFuture';
30
- case Boolean(props.disablePast && adapter.utils.isBeforeDay(value, now)):
38
+ case Boolean(disablePast && adapter.utils.isBeforeDay(value, now)):
31
39
  return 'disablePast';
32
40
  case Boolean(minDate && adapter.utils.isBeforeDay(value, minDate)):
33
41
  return 'minDate';
@@ -10,6 +10,9 @@ const validateTime = ({
10
10
  value,
11
11
  props
12
12
  }) => {
13
+ if (value === null) {
14
+ return null;
15
+ }
13
16
  const {
14
17
  minTime,
15
18
  maxTime,
@@ -18,14 +21,11 @@ const validateTime = ({
18
21
  shouldDisableTime,
19
22
  disableIgnoringDatePartForTimeValidation = false,
20
23
  disablePast,
21
- disableFuture
24
+ disableFuture,
25
+ timezone
22
26
  } = props;
23
- const now = adapter.utils.date();
24
- const date = adapter.utils.date(value);
27
+ const now = adapter.utils.dateWithTimezone(undefined, timezone);
25
28
  const isAfter = (0, _timeUtils.createIsAfterIgnoreDatePart)(disableIgnoringDatePartForTimeValidation, adapter.utils);
26
- if (value === null) {
27
- return null;
28
- }
29
29
  switch (true) {
30
30
  case !adapter.utils.isValid(value):
31
31
  return 'invalidDate';
@@ -33,9 +33,9 @@ const validateTime = ({
33
33
  return 'minTime';
34
34
  case Boolean(maxTime && isAfter(value, maxTime)):
35
35
  return 'maxTime';
36
- case Boolean(disableFuture && adapter.utils.isAfter(date, now)):
36
+ case Boolean(disableFuture && adapter.utils.isAfter(value, now)):
37
37
  return 'disableFuture';
38
- case Boolean(disablePast && adapter.utils.isBefore(date, now)):
38
+ case Boolean(disablePast && adapter.utils.isBefore(value, now)):
39
39
  return 'disablePast';
40
40
  case Boolean(shouldDisableTime && shouldDisableTime(value, 'hours')):
41
41
  return 'shouldDisableTime-hours';
@@ -32,7 +32,8 @@ const singleItemValueManager = {
32
32
  isSameError: (a, b) => a === b,
33
33
  hasError: error => error != null,
34
34
  defaultErrorState: null,
35
- getTimezone: (utils, value) => value == null ? null : utils.getTimezone(value)
35
+ getTimezone: (utils, value) => value == null ? null : utils.getTimezone(value),
36
+ setTimezone: (utils, timezone, value) => value == null ? null : utils.setTimezone(value, timezone)
36
37
  };
37
38
  exports.singleItemValueManager = singleItemValueManager;
38
39
  const singleItemFieldValueManager = {
@@ -14,8 +14,8 @@ const timeViews = {
14
14
  };
15
15
  const csCZPickers = {
16
16
  // Calendar navigation
17
- previousMonth: 'Další měsíc',
18
- nextMonth: 'Předchozí měsíc',
17
+ previousMonth: 'Předchozí měsíc',
18
+ nextMonth: 'Další měsíc',
19
19
  // View navigation
20
20
  openPreviousView: 'otevřít předchozí zobrazení',
21
21
  openNextView: 'otevřít další zobrazení',
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.describeAdapters = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _moment = _interopRequireDefault(require("moment"));
10
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
10
11
  var _createDescribe = _interopRequireDefault(require("@mui/monorepo/test/utils/createDescribe"));
11
12
  var _pickersUtils = require("test/utils/pickers-utils");
12
13
  const ADAPTERS = ['dayjs', 'date-fns', 'luxon', 'moment'];
@@ -20,7 +21,8 @@ function innerDescribeAdapters(title, FieldComponent, testRunner) {
20
21
  const pickerRendererResponse = (0, _pickersUtils.createPickerRenderer)({
21
22
  adapterName,
22
23
  clock: 'fake',
23
- clockConfig: new Date(2022, 5, 15)
24
+ clockConfig: new Date(2022, 5, 15),
25
+ instance: adapterName === 'moment' ? _momentTimezone.default : undefined
24
26
  });
25
27
  const fieldInteractions = (0, _pickersUtils.buildFieldInteractions)({
26
28
  clock: pickerRendererResponse.clock,
@@ -5,12 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.testCalculations = void 0;
7
7
  var _chai = require("chai");
8
+ var _pickersUtils = require("test/utils/pickers-utils");
8
9
  var _describeGregorianAdapter = require("./describeGregorianAdapter.utils");
9
10
  const testCalculations = ({
10
11
  adapter,
11
12
  adapterTZ,
12
13
  adapterFr,
13
- setDefaultTimezone
14
+ setDefaultTimezone,
15
+ getLocaleFromDate
14
16
  }) => {
15
17
  const testDateIso = adapter.date(_describeGregorianAdapter.TEST_DATE_ISO_STRING);
16
18
  const testDateLocale = adapter.date(_describeGregorianAdapter.TEST_DATE_LOCALE_STRING);
@@ -119,25 +121,27 @@ const testCalculations = ({
119
121
  testTimezone('default', 'America/Chicago');
120
122
  setDefaultTimezone(undefined);
121
123
  });
122
- describe('Method: setTimezone', () => {
123
- it('should support "default"', () => {
124
- if (adapter.isTimezoneCompatible) {
125
- const test = timezone => {
126
- setDefaultTimezone(timezone);
127
- const dateWithLocaleTimezone = adapter.dateWithTimezone(undefined, 'system');
128
- const dateWithDefaultTimezone = adapter.setTimezone(dateWithLocaleTimezone, 'default');
129
- (0, _chai.expect)(adapter.getTimezone(dateWithDefaultTimezone)).to.equal(timezone);
130
- };
131
- test('America/New_York');
132
- test('Europe/Paris');
124
+ it('Method: setTimezone', () => {
125
+ if (adapter.isTimezoneCompatible) {
126
+ const test = timezone => {
127
+ setDefaultTimezone(timezone);
128
+ const dateWithLocaleTimezone = adapter.dateWithTimezone(_describeGregorianAdapter.TEST_DATE_ISO_STRING, 'system');
129
+ const dateWithDefaultTimezone = adapter.setTimezone(dateWithLocaleTimezone, 'default');
130
+ (0, _chai.expect)(adapter.getTimezone(dateWithDefaultTimezone)).to.equal(timezone);
131
+ };
132
+ test('America/New_York');
133
+ test('Europe/Paris');
133
134
 
134
- // Reset to the default timezone
135
- setDefaultTimezone(undefined);
136
- } else {
137
- const localeDate = adapter.dateWithTimezone(undefined, 'system');
138
- (0, _chai.expect)(adapter.setTimezone(localeDate, 'default')).to.equal(localeDate);
139
- }
140
- });
135
+ // Reset to the default timezone
136
+ setDefaultTimezone(undefined);
137
+ } else {
138
+ const systemDate = adapter.dateWithTimezone(_describeGregorianAdapter.TEST_DATE_ISO_STRING, 'system');
139
+ (0, _chai.expect)(adapter.setTimezone(systemDate, 'default')).toEqualDateTime(systemDate);
140
+ (0, _chai.expect)(adapter.setTimezone(systemDate, 'system')).toEqualDateTime(systemDate);
141
+ const defaultDate = adapter.dateWithTimezone(_describeGregorianAdapter.TEST_DATE_ISO_STRING, 'default');
142
+ (0, _chai.expect)(adapter.setTimezone(systemDate, 'default')).toEqualDateTime(defaultDate);
143
+ (0, _chai.expect)(adapter.setTimezone(systemDate, 'system')).toEqualDateTime(defaultDate);
144
+ }
141
145
  });
142
146
  it('Method: toJsDate', () => {
143
147
  (0, _chai.expect)(adapter.toJsDate(testDateIso)).to.be.instanceOf(Date);
@@ -151,9 +155,6 @@ const testCalculations = ({
151
155
  if (adapter.lib === 'date-fns') {
152
156
  // date-fns never suppress useless milliseconds in the end
153
157
  (0, _chai.expect)(outputtedISO).to.equal(_describeGregorianAdapter.TEST_DATE_ISO_STRING.replace('.000Z', 'Z'));
154
- } else if (adapter.lib === 'luxon') {
155
- // luxon does not shorthand +00:00 to Z, which is also valid ISO string
156
- (0, _chai.expect)(outputtedISO).to.equal(_describeGregorianAdapter.TEST_DATE_ISO_STRING.replace('Z', '+00:00'));
157
158
  } else {
158
159
  (0, _chai.expect)(outputtedISO).to.equal(_describeGregorianAdapter.TEST_DATE_ISO_STRING);
159
160
  }
@@ -554,6 +555,9 @@ const testCalculations = ({
554
555
  it('Method: getSeconds', () => {
555
556
  (0, _chai.expect)(adapter.getSeconds(testDateIso)).to.equal(0);
556
557
  });
558
+ it('Method: getMilliseconds', () => {
559
+ (0, _chai.expect)(adapter.getMilliseconds(testDateIso)).to.equal(0);
560
+ });
557
561
  it('Method: setYear', () => {
558
562
  (0, _chai.expect)(adapter.setYear(testDateIso, 2011)).toEqualDateTime('2011-10-30T11:44:00.000Z');
559
563
  });
@@ -572,6 +576,9 @@ const testCalculations = ({
572
576
  it('Method: setSeconds', () => {
573
577
  (0, _chai.expect)(adapter.setSeconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:11.000Z');
574
578
  });
579
+ it('Method: setMilliseconds', () => {
580
+ (0, _chai.expect)(adapter.setMilliseconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:00.011Z');
581
+ });
575
582
  it('Method: getDaysInMonth', () => {
576
583
  (0, _chai.expect)(adapter.getDaysInMonth(testDateIso)).to.equal(31);
577
584
  (0, _chai.expect)(adapter.getDaysInMonth(testDateLocale)).to.equal(31);
@@ -603,11 +610,46 @@ const testCalculations = ({
603
610
  date = adapter.addDays(date, 1);
604
611
  });
605
612
  });
606
- it('Method: getWeekArray', () => {
607
- const weekArray = adapter.getWeekArray(testDateIso);
608
- (0, _chai.expect)(weekArray).to.have.length(5);
609
- weekArray.forEach(week => {
610
- (0, _chai.expect)(week).to.have.length(7);
613
+ describe('Method: getWeekArray', () => {
614
+ it('should work without timezones', () => {
615
+ const weekArray = adapter.getWeekArray(testDateIso);
616
+ let expectedDate = adapter.startOfWeek(adapter.startOfMonth(testDateIso));
617
+ (0, _chai.expect)(weekArray).to.have.length(5);
618
+ weekArray.forEach(week => {
619
+ (0, _chai.expect)(week).to.have.length(7);
620
+ week.forEach(day => {
621
+ (0, _chai.expect)(day).toEqualDateTime(expectedDate);
622
+ expectedDate = adapter.addDays(expectedDate, 1);
623
+ });
624
+ });
625
+ });
626
+ it('should respect the DST', function test() {
627
+ if (!adapterTZ.isTimezoneCompatible) {
628
+ this.skip();
629
+ }
630
+ const referenceDate = adapterTZ.dateWithTimezone('2022-03-17', 'Europe/Paris');
631
+ const weekArray = adapterTZ.getWeekArray(referenceDate);
632
+ let expectedDate = adapter.startOfWeek(adapter.startOfMonth(referenceDate));
633
+ const lastNonDSTDay = adapterTZ.dateWithTimezone('2022-03-27', 'Europe/Paris');
634
+ (0, _chai.expect)(weekArray).to.have.length(5);
635
+ weekArray.forEach(week => {
636
+ (0, _chai.expect)(week).to.have.length(7);
637
+ week.forEach(day => {
638
+ (0, _chai.expect)(adapterTZ.startOfDay(day)).toEqualDateTime(adapterTZ.startOfDay(expectedDate));
639
+ expectedDate = adapterTZ.addDays(expectedDate, 1);
640
+ (0, _chai.expect)((0, _pickersUtils.getDateOffset)(adapterTZ, day)).to.equal(adapterTZ.isAfter(day, lastNonDSTDay) ? 120 : 60);
641
+ });
642
+ });
643
+ });
644
+ it('should respect the locale of the adapter, not the locale of the date', function test() {
645
+ const dateFr = adapterFr.dateWithTimezone('2022-03-17', 'default');
646
+ const weekArray = adapter.getWeekArray(dateFr);
647
+ if (getLocaleFromDate) {
648
+ (0, _chai.expect)(getLocaleFromDate(weekArray[0][0])).to.match(/en/);
649
+ }
650
+
651
+ // Week should start on Monday (28th of March) for adapters supporting locale-based week start.
652
+ (0, _chai.expect)(adapter.getDate(weekArray[0][0])).to.equal(adapter.lib === 'luxon' ? 28 : 27);
611
653
  });
612
654
  });
613
655
  it('Method: getWeekNumber', () => {
@@ -169,6 +169,15 @@ const testCalculations = ({
169
169
  it('Method: getDate', () => {
170
170
  (0, _chai.expect)(adapter.getDate(testDateIso)).to.equal(8);
171
171
  });
172
+ it('Method: getMinutes', () => {
173
+ (0, _chai.expect)(adapter.getMinutes(testDateIso)).to.equal(44);
174
+ });
175
+ it('Method: getSeconds', () => {
176
+ (0, _chai.expect)(adapter.getSeconds(testDateIso)).to.equal(0);
177
+ });
178
+ it('Method: getMilliseconds', () => {
179
+ (0, _chai.expect)(adapter.getMilliseconds(testDateIso)).to.equal(0);
180
+ });
172
181
  it('Method: setYear', () => {
173
182
  (0, _chai.expect)(adapter.setYear(testDateIso, 1398)).toEqualDateTime('2019-10-30T11:44:00.000Z');
174
183
  });
@@ -178,6 +187,18 @@ const testCalculations = ({
178
187
  it('Method: setDate', () => {
179
188
  (0, _chai.expect)(adapter.setDate(testDateIso, 9)).toEqualDateTime('2018-10-31T11:44:00.000Z');
180
189
  });
190
+ it('Method: setHours', () => {
191
+ (0, _chai.expect)(adapter.setHours(testDateIso, 0)).toEqualDateTime('2018-10-30T00:44:00.000Z');
192
+ });
193
+ it('Method: setMinutes', () => {
194
+ (0, _chai.expect)(adapter.setMinutes(testDateIso, 12)).toEqualDateTime('2018-10-30T11:12:00.000Z');
195
+ });
196
+ it('Method: setSeconds', () => {
197
+ (0, _chai.expect)(adapter.setSeconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:11.000Z');
198
+ });
199
+ it('Method: setMilliseconds', () => {
200
+ (0, _chai.expect)(adapter.setMilliseconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:00.011Z');
201
+ });
181
202
  it('Method: getNextMonth', () => {
182
203
  (0, _chai.expect)(adapter.getNextMonth(testDateIso)).toEqualDateTime('2018-11-29T11:44:00.000Z');
183
204
  });
@@ -41,7 +41,8 @@ const renderTimeViewClock = ({
41
41
  sx,
42
42
  autoFocus,
43
43
  showViewSwitcher,
44
- disableIgnoringDatePartForTimeValidation
44
+ disableIgnoringDatePartForTimeValidation,
45
+ timezone
45
46
  }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TimeClock.TimeClock, {
46
47
  view: view,
47
48
  onViewChange: onViewChange,
@@ -71,7 +72,8 @@ const renderTimeViewClock = ({
71
72
  sx: sx,
72
73
  autoFocus: autoFocus,
73
74
  showViewSwitcher: showViewSwitcher,
74
- disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation
75
+ disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
76
+ timezone: timezone
75
77
  });
76
78
  exports.renderTimeViewClock = renderTimeViewClock;
77
79
  const renderDigitalClockTimeView = ({
@@ -103,7 +105,8 @@ const renderDigitalClockTimeView = ({
103
105
  autoFocus,
104
106
  disableIgnoringDatePartForTimeValidation,
105
107
  timeSteps,
106
- skipDisabled
108
+ skipDisabled,
109
+ timezone
107
110
  }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_DigitalClock.DigitalClock, {
108
111
  view: view,
109
112
  onViewChange: onViewChange,
@@ -133,7 +136,8 @@ const renderDigitalClockTimeView = ({
133
136
  autoFocus: autoFocus,
134
137
  disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
135
138
  timeStep: timeSteps?.minutes,
136
- skipDisabled: skipDisabled
139
+ skipDisabled: skipDisabled,
140
+ timezone: timezone
137
141
  });
138
142
  exports.renderDigitalClockTimeView = renderDigitalClockTimeView;
139
143
  const renderMultiSectionDigitalClockTimeView = ({
@@ -165,7 +169,8 @@ const renderMultiSectionDigitalClockTimeView = ({
165
169
  autoFocus,
166
170
  disableIgnoringDatePartForTimeValidation,
167
171
  timeSteps,
168
- skipDisabled
172
+ skipDisabled,
173
+ timezone
169
174
  }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_MultiSectionDigitalClock.MultiSectionDigitalClock, {
170
175
  view: view,
171
176
  onViewChange: onViewChange,
@@ -195,6 +200,7 @@ const renderMultiSectionDigitalClockTimeView = ({
195
200
  autoFocus: autoFocus,
196
201
  disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
197
202
  timeSteps: timeSteps,
198
- skipDisabled: skipDisabled
203
+ skipDisabled: skipDisabled,
204
+ timezone: timezone
199
205
  });
200
206
  exports.renderMultiSectionDigitalClockTimeView = renderMultiSectionDigitalClockTimeView;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers",
3
- "version": "6.8.0",
3
+ "version": "6.9.0",
4
4
  "description": "The community edition of the date picker components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -33,7 +33,7 @@
33
33
  "directory": "packages/x-date-pickers"
34
34
  },
35
35
  "dependencies": {
36
- "@babel/runtime": "^7.21.0",
36
+ "@babel/runtime": "^7.22.5",
37
37
  "@mui/utils": "^5.13.1",
38
38
  "@types/react-transition-group": "^4.4.6",
39
39
  "clsx": "^1.2.1",
@@ -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,