@mui/x-date-pickers 8.0.0-alpha.6 → 8.0.0-alpha.7

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 (281) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +2 -4
  2. package/AdapterDateFns/AdapterDateFns.js +49 -47
  3. package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +1 -1
  4. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +2 -4
  5. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  6. package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts} +2 -2
  7. package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  8. package/AdapterDateFnsJalaliV2/index.d.ts +1 -0
  9. package/AdapterDateFnsJalaliV2/index.js +1 -0
  10. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
  11. package/{AdapterDateFnsV3/AdapterDateFnsV3.d.ts → AdapterDateFnsV2/AdapterDateFnsV2.d.ts} +2 -2
  12. package/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  13. package/AdapterDateFnsV2/index.d.ts +1 -0
  14. package/AdapterDateFnsV2/index.js +1 -0
  15. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
  16. package/AdapterDayjs/AdapterDayjs.d.ts +1 -1
  17. package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
  18. package/AdapterMoment/AdapterMoment.d.ts +1 -1
  19. package/CHANGELOG.md +127 -1
  20. package/DateCalendar/DateCalendar.js +1 -1
  21. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  22. package/DateCalendar/PickersSlideTransition.d.ts +1 -1
  23. package/DateField/useDateField.d.ts +1 -1
  24. package/DateField/useDateField.js +13 -11
  25. package/DatePicker/DatePicker.js +1 -1
  26. package/DatePicker/DatePicker.types.d.ts +5 -0
  27. package/DatePicker/DatePickerToolbar.d.ts +1 -2
  28. package/DatePicker/DatePickerToolbar.js +7 -11
  29. package/DatePicker/shared.d.ts +1 -1
  30. package/DateTimeField/useDateTimeField.d.ts +1 -1
  31. package/DateTimeField/useDateTimeField.js +13 -11
  32. package/DateTimePicker/DateTimePicker.js +2 -2
  33. package/DateTimePicker/DateTimePickerTabs.js +2 -2
  34. package/DateTimePicker/DateTimePickerToolbar.d.ts +6 -2
  35. package/DateTimePicker/DateTimePickerToolbar.js +36 -31
  36. package/DateTimePicker/shared.d.ts +1 -1
  37. package/DesktopDatePicker/DesktopDatePicker.js +9 -3
  38. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +5 -0
  39. package/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -10
  40. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
  41. package/DesktopTimePicker/DesktopTimePicker.js +3 -7
  42. package/MobileDatePicker/MobileDatePicker.js +2 -2
  43. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  44. package/MobileTimePicker/MobileTimePicker.js +2 -2
  45. package/PickersActionBar/PickersActionBar.d.ts +6 -3
  46. package/PickersActionBar/PickersActionBar.js +6 -3
  47. package/PickersLayout/PickersLayout.js +1 -5
  48. package/PickersLayout/PickersLayout.types.d.ts +2 -3
  49. package/PickersLayout/usePickerLayout.js +12 -31
  50. package/PickersShortcuts/PickersShortcuts.d.ts +2 -5
  51. package/PickersShortcuts/PickersShortcuts.js +13 -10
  52. package/PickersShortcuts/index.d.ts +1 -1
  53. package/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  54. package/PickersTextField/PickersTextField.js +1 -1
  55. package/TimeField/useTimeField.d.ts +1 -1
  56. package/TimeField/useTimeField.js +13 -11
  57. package/TimePicker/TimePicker.js +2 -2
  58. package/TimePicker/TimePickerToolbar.d.ts +1 -2
  59. package/TimePicker/TimePickerToolbar.js +20 -18
  60. package/TimePicker/shared.d.ts +1 -1
  61. package/hooks/index.d.ts +1 -0
  62. package/hooks/index.js +2 -1
  63. package/hooks/useIsValidValue.d.ts +7 -0
  64. package/hooks/useIsValidValue.js +11 -0
  65. package/hooks/usePickerActionsContext.d.ts +3 -1
  66. package/hooks/usePickerActionsContext.js +0 -1
  67. package/hooks/usePickerContext.d.ts +2 -2
  68. package/hooks/usePickerContext.js +1 -1
  69. package/index.d.ts +1 -0
  70. package/index.js +3 -2
  71. package/internals/components/PickerProvider.d.ts +11 -10
  72. package/internals/components/PickerProvider.js +8 -3
  73. package/internals/components/PickersToolbar.d.ts +2 -3
  74. package/internals/components/PickersToolbar.js +1 -1
  75. package/internals/hooks/date-helpers-hooks.js +4 -3
  76. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -3
  77. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
  78. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  79. package/internals/hooks/useField/index.d.ts +1 -1
  80. package/internals/hooks/useField/index.js +1 -1
  81. package/internals/hooks/useField/useField.d.ts +10 -1
  82. package/internals/hooks/useField/useField.js +17 -1
  83. package/internals/hooks/useField/useField.utils.js +2 -2
  84. package/internals/hooks/useField/useFieldState.js +2 -2
  85. package/internals/hooks/useField/useFieldV6TextField.js +2 -2
  86. package/internals/hooks/useMobilePicker/useMobilePicker.js +1 -3
  87. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +2 -2
  88. package/internals/hooks/useOpenState.js +3 -2
  89. package/internals/hooks/usePicker/usePicker.d.ts +1 -1
  90. package/internals/hooks/usePicker/usePicker.js +0 -6
  91. package/internals/hooks/usePicker/usePicker.types.d.ts +5 -6
  92. package/internals/hooks/usePicker/usePickerProvider.d.ts +5 -5
  93. package/internals/hooks/usePicker/usePickerProvider.js +4 -2
  94. package/internals/hooks/usePicker/usePickerValue.d.ts +1 -1
  95. package/internals/hooks/usePicker/usePickerValue.js +67 -184
  96. package/internals/hooks/usePicker/usePickerValue.types.d.ts +48 -54
  97. package/internals/hooks/usePicker/usePickerViews.d.ts +27 -23
  98. package/internals/hooks/usePicker/usePickerViews.js +17 -11
  99. package/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  100. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +2 -2
  101. package/internals/hooks/useUtils.js +1 -1
  102. package/internals/index.d.ts +5 -3
  103. package/internals/index.js +5 -3
  104. package/internals/models/index.d.ts +1 -0
  105. package/internals/models/index.js +2 -1
  106. package/internals/models/manager.d.ts +12 -0
  107. package/internals/models/manager.js +1 -0
  108. package/internals/models/props/basePickerProps.d.ts +2 -2
  109. package/internals/models/props/toolbar.d.ts +1 -5
  110. package/internals/utils/date-utils.js +1 -1
  111. package/internals/utils/valueManagers.js +4 -4
  112. package/locales/index.d.ts +1 -0
  113. package/locales/index.js +1 -0
  114. package/locales/nbNO.js +15 -19
  115. package/locales/utils/getPickersLocalization.js +1 -1
  116. package/locales/zhTW.d.ts +80 -0
  117. package/locales/zhTW.js +73 -0
  118. package/managers/index.d.ts +6 -0
  119. package/managers/index.js +3 -0
  120. package/managers/package.json +6 -0
  121. package/managers/useDateManager.d.ts +27 -0
  122. package/managers/useDateManager.js +47 -0
  123. package/managers/useDateTimeManager.d.ts +28 -0
  124. package/managers/useDateTimeManager.js +52 -0
  125. package/managers/useTimeManager.d.ts +28 -0
  126. package/managers/useTimeManager.js +43 -0
  127. package/models/adapters.d.ts +1 -1
  128. package/models/index.d.ts +1 -0
  129. package/models/index.js +1 -0
  130. package/models/manager.d.ts +78 -0
  131. package/models/manager.js +1 -0
  132. package/models/pickers.d.ts +7 -0
  133. package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
  134. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  135. package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  136. package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
  137. package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  138. package/modern/AdapterDateFnsV2/index.js +1 -0
  139. package/modern/DateCalendar/DateCalendar.js +1 -1
  140. package/modern/DateField/useDateField.js +13 -11
  141. package/modern/DatePicker/DatePicker.js +1 -1
  142. package/modern/DatePicker/DatePickerToolbar.js +7 -11
  143. package/modern/DateTimeField/useDateTimeField.js +13 -11
  144. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  145. package/modern/DateTimePicker/DateTimePickerTabs.js +2 -2
  146. package/modern/DateTimePicker/DateTimePickerToolbar.js +36 -31
  147. package/modern/DesktopDatePicker/DesktopDatePicker.js +9 -3
  148. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -10
  149. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
  150. package/modern/DesktopTimePicker/DesktopTimePicker.js +3 -7
  151. package/modern/MobileDatePicker/MobileDatePicker.js +2 -2
  152. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  153. package/modern/MobileTimePicker/MobileTimePicker.js +2 -2
  154. package/modern/PickersActionBar/PickersActionBar.js +6 -3
  155. package/modern/PickersLayout/PickersLayout.js +1 -5
  156. package/modern/PickersLayout/usePickerLayout.js +12 -31
  157. package/modern/PickersShortcuts/PickersShortcuts.js +13 -10
  158. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  159. package/modern/PickersTextField/PickersTextField.js +1 -1
  160. package/modern/TimeField/useTimeField.js +13 -11
  161. package/modern/TimePicker/TimePicker.js +2 -2
  162. package/modern/TimePicker/TimePickerToolbar.js +20 -18
  163. package/modern/hooks/index.js +2 -1
  164. package/modern/hooks/useIsValidValue.js +11 -0
  165. package/modern/hooks/usePickerActionsContext.js +0 -1
  166. package/modern/hooks/usePickerContext.js +1 -1
  167. package/modern/index.js +3 -2
  168. package/modern/internals/components/PickerProvider.js +8 -3
  169. package/modern/internals/components/PickersToolbar.js +1 -1
  170. package/modern/internals/hooks/date-helpers-hooks.js +4 -3
  171. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -3
  172. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  173. package/modern/internals/hooks/useField/index.js +1 -1
  174. package/modern/internals/hooks/useField/useField.js +17 -1
  175. package/modern/internals/hooks/useField/useField.utils.js +2 -2
  176. package/modern/internals/hooks/useField/useFieldState.js +2 -2
  177. package/modern/internals/hooks/useField/useFieldV6TextField.js +2 -2
  178. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +1 -3
  179. package/modern/internals/hooks/useOpenState.js +3 -2
  180. package/modern/internals/hooks/usePicker/usePicker.js +0 -6
  181. package/modern/internals/hooks/usePicker/usePickerProvider.js +4 -2
  182. package/modern/internals/hooks/usePicker/usePickerValue.js +67 -184
  183. package/modern/internals/hooks/usePicker/usePickerViews.js +17 -11
  184. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  185. package/modern/internals/hooks/useUtils.js +1 -1
  186. package/modern/internals/index.js +5 -3
  187. package/modern/internals/models/index.js +2 -1
  188. package/modern/internals/models/manager.js +1 -0
  189. package/modern/internals/utils/date-utils.js +1 -1
  190. package/modern/internals/utils/valueManagers.js +4 -4
  191. package/modern/locales/index.js +1 -0
  192. package/modern/locales/nbNO.js +15 -19
  193. package/modern/locales/utils/getPickersLocalization.js +1 -1
  194. package/modern/locales/zhTW.js +73 -0
  195. package/modern/managers/index.js +3 -0
  196. package/modern/managers/useDateManager.js +47 -0
  197. package/modern/managers/useDateTimeManager.js +52 -0
  198. package/modern/managers/useTimeManager.js +43 -0
  199. package/modern/models/index.js +1 -0
  200. package/modern/models/manager.js +1 -0
  201. package/node/AdapterDateFns/AdapterDateFns.js +97 -97
  202. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
  203. package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
  204. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  205. package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
  206. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  207. package/node/DateCalendar/DateCalendar.js +1 -1
  208. package/node/DateField/useDateField.js +12 -10
  209. package/node/DatePicker/DatePicker.js +1 -1
  210. package/node/DatePicker/DatePickerToolbar.js +7 -11
  211. package/node/DateTimeField/useDateTimeField.js +12 -10
  212. package/node/DateTimePicker/DateTimePicker.js +2 -2
  213. package/node/DateTimePicker/DateTimePickerTabs.js +2 -2
  214. package/node/DateTimePicker/DateTimePickerToolbar.js +36 -31
  215. package/node/DesktopDatePicker/DesktopDatePicker.js +9 -3
  216. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -10
  217. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
  218. package/node/DesktopTimePicker/DesktopTimePicker.js +3 -7
  219. package/node/MobileDatePicker/MobileDatePicker.js +2 -2
  220. package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  221. package/node/MobileTimePicker/MobileTimePicker.js +2 -2
  222. package/node/PickersActionBar/PickersActionBar.js +8 -5
  223. package/node/PickersLayout/PickersLayout.js +1 -5
  224. package/node/PickersLayout/usePickerLayout.js +16 -35
  225. package/node/PickersShortcuts/PickersShortcuts.js +13 -10
  226. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  227. package/node/PickersTextField/PickersTextField.js +1 -1
  228. package/node/TimeField/useTimeField.js +12 -10
  229. package/node/TimePicker/TimePicker.js +2 -2
  230. package/node/TimePicker/TimePickerToolbar.js +20 -18
  231. package/node/hooks/index.js +8 -1
  232. package/node/hooks/useIsValidValue.js +18 -0
  233. package/node/hooks/usePickerContext.js +1 -1
  234. package/node/index.js +13 -1
  235. package/node/internals/components/PickerProvider.js +8 -3
  236. package/node/internals/components/PickersToolbar.js +1 -1
  237. package/node/internals/hooks/date-helpers-hooks.js +4 -3
  238. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -3
  239. package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  240. package/node/internals/hooks/useField/index.js +6 -0
  241. package/node/internals/hooks/useField/useField.js +18 -1
  242. package/node/internals/hooks/useField/useField.utils.js +2 -2
  243. package/node/internals/hooks/useField/useFieldState.js +2 -2
  244. package/node/internals/hooks/useField/useFieldV6TextField.js +2 -2
  245. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +1 -3
  246. package/node/internals/hooks/useOpenState.js +4 -2
  247. package/node/internals/hooks/usePicker/usePicker.js +0 -7
  248. package/node/internals/hooks/usePicker/usePickerProvider.js +4 -2
  249. package/node/internals/hooks/usePicker/usePickerValue.js +67 -184
  250. package/node/internals/hooks/usePicker/usePickerViews.js +17 -12
  251. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  252. package/node/internals/hooks/useUtils.js +1 -1
  253. package/node/internals/index.js +26 -18
  254. package/node/internals/models/index.js +11 -0
  255. package/node/internals/models/manager.js +5 -0
  256. package/node/internals/utils/date-utils.js +1 -1
  257. package/node/internals/utils/valueManagers.js +4 -4
  258. package/node/locales/index.js +11 -0
  259. package/node/locales/nbNO.js +15 -19
  260. package/node/locales/utils/getPickersLocalization.js +1 -1
  261. package/node/locales/zhTW.js +79 -0
  262. package/node/managers/index.js +26 -0
  263. package/node/managers/useDateManager.js +55 -0
  264. package/node/managers/useDateTimeManager.js +60 -0
  265. package/node/managers/useTimeManager.js +51 -0
  266. package/node/models/index.js +11 -0
  267. package/node/models/manager.js +5 -0
  268. package/package.json +3 -3
  269. package/themeAugmentation/props.d.ts +1 -1
  270. package/validation/extractValidationProps.d.ts +1 -1
  271. package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
  272. package/AdapterDateFnsJalaliV3/index.js +0 -1
  273. package/AdapterDateFnsV3/index.d.ts +0 -1
  274. package/AdapterDateFnsV3/index.js +0 -1
  275. package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
  276. package/internals/hooks/defaultizedFieldProps.js +0 -40
  277. package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
  278. package/modern/AdapterDateFnsV3/index.js +0 -1
  279. package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
  280. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
  281. package/node/internals/hooks/defaultizedFieldProps.js +0 -50
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.useOpenState = void 0;
8
9
  var React = _interopRequireWildcard(require("react"));
10
+ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
9
11
  const useOpenState = ({
10
12
  open,
11
13
  onOpen,
@@ -24,7 +26,7 @@ const useOpenState = ({
24
26
  setOpenState(open);
25
27
  }
26
28
  }, [isControllingOpenProp, open]);
27
- const setOpen = React.useCallback(action => {
29
+ const setOpen = (0, _useEventCallback.default)(action => {
28
30
  const newOpen = typeof action === 'function' ? action(openState) : action;
29
31
  if (!isControllingOpenProp) {
30
32
  setOpenState(newOpen);
@@ -35,7 +37,7 @@ const useOpenState = ({
35
37
  if (!newOpen && onClose) {
36
38
  onClose();
37
39
  }
38
- }, [isControllingOpenProp, onOpen, onClose, openState]);
40
+ });
39
41
  return {
40
42
  open: openState,
41
43
  setOpen
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.usePicker = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
7
  var _warning = require("@mui/x-internals/warning");
10
8
  var _usePickerValue = require("./usePickerValue");
11
9
  var _usePickerViews = require("./usePickerViews");
@@ -15,7 +13,6 @@ const usePicker = ({
15
13
  valueManager,
16
14
  valueType,
17
15
  variant,
18
- additionalViewProps,
19
16
  validator,
20
17
  autoFocusView,
21
18
  rendererInterceptor,
@@ -31,12 +28,10 @@ const usePicker = ({
31
28
  props,
32
29
  valueManager,
33
30
  valueType,
34
- variant,
35
31
  validator
36
32
  });
37
33
  const pickerViewsResponse = (0, _usePickerViews.usePickerViews)({
38
34
  props,
39
- additionalViewProps,
40
35
  autoFocusView,
41
36
  fieldRef,
42
37
  propsFromPickerValue: pickerValueResponse.viewProps,
@@ -57,8 +52,6 @@ const usePicker = ({
57
52
  renderCurrentView: pickerViewsResponse.renderCurrentView,
58
53
  hasUIView: pickerViewsResponse.provider.hasUIView,
59
54
  shouldRestoreFocus: pickerViewsResponse.shouldRestoreFocus,
60
- // Picker layout
61
- layoutProps: (0, _extends2.default)({}, pickerValueResponse.layoutProps),
62
55
  // Picker provider
63
56
  providerProps,
64
57
  // Picker owner state
@@ -72,11 +72,13 @@ function usePickerProvider(parameters) {
72
72
  const privateContextValue = React.useMemo(() => (0, _extends2.default)({}, paramsFromUsePickerValue.privateContextValue, {
73
73
  ownerState
74
74
  }), [paramsFromUsePickerValue, ownerState]);
75
+ const actionsContextValue = React.useMemo(() => (0, _extends2.default)({}, paramsFromUsePickerValue.actionsContextValue, paramsFromUsePickerViews.actionsContextValue), [paramsFromUsePickerValue.actionsContextValue, paramsFromUsePickerViews.actionsContextValue]);
75
76
  return {
76
77
  localeText,
77
78
  contextValue,
78
- actionsContextValue: paramsFromUsePickerValue.actionsContextValue,
79
- privateContextValue
79
+ privateContextValue,
80
+ actionsContextValue,
81
+ isValidContextValue: paramsFromUsePickerValue.isValidContextValue
80
82
  };
81
83
  }
82
84
 
@@ -13,106 +13,6 @@ var _useOpenState = require("../useOpenState");
13
13
  var _useUtils = require("../useUtils");
14
14
  var _validation = require("../../../validation");
15
15
  var _useValueWithTimezone = require("../useValueWithTimezone");
16
- /**
17
- * Decide if the new value should be published
18
- * The published value will be passed to `onChange` if defined.
19
- */
20
- const shouldPublishValue = params => {
21
- const {
22
- action,
23
- hasChanged,
24
- dateState,
25
- isControlled
26
- } = params;
27
- const isCurrentValueTheDefaultValue = !isControlled && !dateState.hasBeenModifiedSinceMount;
28
-
29
- // The field is responsible for only calling `onChange` when needed.
30
- if (action.name === 'setValueFromField') {
31
- return true;
32
- }
33
- if (action.name === 'setValueFromAction') {
34
- // If the component is not controlled, and the value has not been modified since the mount,
35
- // Then we want to publish the default value whenever the user pressed the "Accept", "Today" or "Clear" button.
36
- if (isCurrentValueTheDefaultValue && ['accept', 'today', 'clear'].includes(action.pickerAction)) {
37
- return true;
38
- }
39
- return hasChanged(dateState.lastPublishedValue);
40
- }
41
- if (action.name === 'setValueFromView' && action.selectionState !== 'shallow') {
42
- // On the first view,
43
- // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onChange`
44
- if (isCurrentValueTheDefaultValue) {
45
- return true;
46
- }
47
- return hasChanged(dateState.lastPublishedValue);
48
- }
49
- if (action.name === 'setValueFromShortcut') {
50
- // On the first view,
51
- // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onChange`
52
- if (isCurrentValueTheDefaultValue) {
53
- return true;
54
- }
55
- return hasChanged(dateState.lastPublishedValue);
56
- }
57
- return false;
58
- };
59
-
60
- /**
61
- * Decide if the new value should be committed.
62
- * The committed value will be passed to `onAccept` if defined.
63
- * It will also be used as a reset target when calling the `cancel` picker action (when clicking on the "Cancel" button).
64
- */
65
- const shouldCommitValue = params => {
66
- const {
67
- action,
68
- hasChanged,
69
- dateState,
70
- isControlled,
71
- closeOnSelect
72
- } = params;
73
- const isCurrentValueTheDefaultValue = !isControlled && !dateState.hasBeenModifiedSinceMount;
74
- if (action.name === 'setValueFromAction') {
75
- // If the component is not controlled, and the value has not been modified since the mount,
76
- // Then we want to commit the default value whenever the user pressed the "Accept", "Today" or "Clear" button.
77
- if (isCurrentValueTheDefaultValue && ['accept', 'today', 'clear'].includes(action.pickerAction)) {
78
- return true;
79
- }
80
- return hasChanged(dateState.lastCommittedValue);
81
- }
82
- if (action.name === 'setValueFromView' && action.selectionState === 'finish' && closeOnSelect) {
83
- // On picker where the 1st view is also the last view,
84
- // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onAccept`
85
- if (isCurrentValueTheDefaultValue) {
86
- return true;
87
- }
88
- return hasChanged(dateState.lastCommittedValue);
89
- }
90
- if (action.name === 'setValueFromShortcut') {
91
- return action.changeImportance === 'accept' && hasChanged(dateState.lastCommittedValue);
92
- }
93
- return false;
94
- };
95
-
96
- /**
97
- * Decide if the picker should be closed after the value is updated.
98
- */
99
- const shouldClosePicker = params => {
100
- const {
101
- action,
102
- closeOnSelect
103
- } = params;
104
- if (action.name === 'setValueFromAction') {
105
- return true;
106
- }
107
- if (action.name === 'setValueFromView') {
108
- return action.selectionState === 'finish' && closeOnSelect;
109
- }
110
- if (action.name === 'setValueFromShortcut') {
111
- return action.changeImportance === 'accept';
112
- }
113
- return false;
114
- };
115
-
116
16
  /**
117
17
  * Manage the value lifecycle of all the pickers.
118
18
  */
@@ -120,7 +20,6 @@ const usePickerValue = ({
120
20
  props,
121
21
  valueManager,
122
22
  valueType,
123
- variant,
124
23
  validator
125
24
  }) => {
126
25
  const {
@@ -128,7 +27,7 @@ const usePickerValue = ({
128
27
  onChange,
129
28
  value: inValueWithoutRenderTimezone,
130
29
  defaultValue: inDefaultValue,
131
- closeOnSelect = variant === 'desktop',
30
+ closeOnSelect = false,
132
31
  timezone: timezoneProp,
133
32
  referenceDate
134
33
  } = props;
@@ -208,43 +107,49 @@ const usePickerValue = ({
208
107
  value: dateState.draft,
209
108
  onError: props.onError
210
109
  });
211
- const updateDate = (0, _useEventCallback.default)(action => {
212
- const updaterParams = {
213
- action,
214
- dateState,
215
- hasChanged: comparison => !valueManager.areValuesEqual(utils, action.value, comparison),
216
- isControlled,
217
- closeOnSelect
218
- };
219
- const shouldPublish = shouldPublishValue(updaterParams);
220
- const shouldCommit = shouldCommitValue(updaterParams);
221
- const shouldClose = shouldClosePicker(updaterParams);
110
+ const setValue = (0, _useEventCallback.default)((newValue, options) => {
111
+ const {
112
+ changeImportance = 'accept',
113
+ skipPublicationIfPristine = false,
114
+ validationError,
115
+ shortcut
116
+ } = options ?? {};
117
+ let shouldPublish;
118
+ let shouldCommit;
119
+ if (!skipPublicationIfPristine && !isControlled && !dateState.hasBeenModifiedSinceMount) {
120
+ // If the value is not controlled and the value has never been modified before,
121
+ // Then clicking on any value (including the one equal to `defaultValue`) should call `onChange` and `onAccept`
122
+ shouldPublish = true;
123
+ shouldCommit = changeImportance === 'accept';
124
+ } else {
125
+ shouldPublish = !valueManager.areValuesEqual(utils, newValue, dateState.lastPublishedValue);
126
+ shouldCommit = changeImportance === 'accept' && !valueManager.areValuesEqual(utils, newValue, dateState.lastCommittedValue);
127
+ }
222
128
  setDateState(prev => (0, _extends2.default)({}, prev, {
223
- draft: action.value,
224
- lastPublishedValue: shouldPublish ? action.value : prev.lastPublishedValue,
225
- lastCommittedValue: shouldCommit ? action.value : prev.lastCommittedValue,
129
+ draft: newValue,
130
+ lastPublishedValue: shouldPublish ? newValue : prev.lastPublishedValue,
131
+ lastCommittedValue: shouldCommit ? newValue : prev.lastCommittedValue,
226
132
  hasBeenModifiedSinceMount: true
227
133
  }));
228
134
  let cachedContext = null;
229
135
  const getContext = () => {
230
136
  if (!cachedContext) {
231
- const validationError = action.name === 'setValueFromField' ? action.context.validationError : getValidationErrorForNewValue(action.value);
232
137
  cachedContext = {
233
- validationError
138
+ validationError: validationError == null ? getValidationErrorForNewValue(newValue) : validationError
234
139
  };
235
- if (action.name === 'setValueFromShortcut') {
236
- cachedContext.shortcut = action.shortcut;
140
+ if (shortcut) {
141
+ cachedContext.shortcut = shortcut;
237
142
  }
238
143
  }
239
144
  return cachedContext;
240
145
  };
241
146
  if (shouldPublish) {
242
- handleValueChange(action.value, getContext());
147
+ handleValueChange(newValue, getContext());
243
148
  }
244
149
  if (shouldCommit && onAccept) {
245
- onAccept(action.value, getContext());
150
+ onAccept(newValue, getContext());
246
151
  }
247
- if (shouldClose) {
152
+ if (changeImportance === 'accept') {
248
153
  setOpen(false);
249
154
  }
250
155
  });
@@ -259,33 +164,6 @@ const usePickerValue = ({
259
164
  hasBeenModifiedSinceMount: true
260
165
  }));
261
166
  }
262
- const handleChange = (0, _useEventCallback.default)((newValue, selectionState = 'partial') => updateDate({
263
- name: 'setValueFromView',
264
- value: newValue,
265
- selectionState
266
- }));
267
- const handleSelectShortcut = (0, _useEventCallback.default)((newValue, changeImportance, shortcut) => updateDate({
268
- name: 'setValueFromShortcut',
269
- value: newValue,
270
- changeImportance,
271
- shortcut
272
- }));
273
- const handleChangeFromField = (0, _useEventCallback.default)((newValue, context) => updateDate({
274
- name: 'setValueFromField',
275
- value: newValue,
276
- context
277
- }));
278
- const fieldResponse = {
279
- value: dateState.draft,
280
- onChange: handleChangeFromField
281
- };
282
- const valueWithoutError = React.useMemo(() => valueManager.cleanValue(utils, dateState.draft), [utils, valueManager, dateState.draft]);
283
- const viewResponse = {
284
- value: valueWithoutError,
285
- onChange: handleChange,
286
- open,
287
- setOpen
288
- };
289
167
  const isValid = testedValue => {
290
168
  const error = validator({
291
169
  adapter,
@@ -295,49 +173,54 @@ const usePickerValue = ({
295
173
  });
296
174
  return !valueManager.hasError(error);
297
175
  };
298
- const layoutResponse = {
299
- value: valueWithoutError,
300
- onChange: handleChange,
301
- onSelectShortcut: handleSelectShortcut,
302
- isValid
303
- };
304
- const clearValue = (0, _useEventCallback.default)(() => updateDate({
305
- value: valueManager.emptyValue,
306
- name: 'setValueFromAction',
307
- pickerAction: 'clear'
308
- }));
309
- const setValueToToday = (0, _useEventCallback.default)(() => updateDate({
310
- value: valueManager.getTodayValue(utils, timezone, valueType),
311
- name: 'setValueFromAction',
312
- pickerAction: 'today'
313
- }));
314
- const acceptValueChanges = (0, _useEventCallback.default)(() => updateDate({
315
- value: dateState.lastPublishedValue,
316
- name: 'setValueFromAction',
317
- pickerAction: 'accept'
318
- }));
319
- const cancelValueChanges = (0, _useEventCallback.default)(() => updateDate({
320
- value: dateState.lastCommittedValue,
321
- name: 'setValueFromAction',
322
- pickerAction: 'cancel'
176
+ const clearValue = (0, _useEventCallback.default)(() => setValue(valueManager.emptyValue));
177
+ const setValueToToday = (0, _useEventCallback.default)(() => setValue(valueManager.getTodayValue(utils, timezone, valueType)));
178
+ const acceptValueChanges = (0, _useEventCallback.default)(() => setValue(dateState.lastPublishedValue));
179
+ const cancelValueChanges = (0, _useEventCallback.default)(() => setValue(dateState.lastCommittedValue, {
180
+ skipPublicationIfPristine: true
323
181
  }));
324
182
  const dismissViews = (0, _useEventCallback.default)(() => {
325
- updateDate({
326
- value: dateState.lastPublishedValue,
327
- name: 'setValueFromAction',
328
- pickerAction: 'dismiss'
183
+ setValue(dateState.lastPublishedValue, {
184
+ skipPublicationIfPristine: true
185
+ });
186
+ });
187
+ const fieldResponse = {
188
+ value: dateState.draft,
189
+ onChange: (newValue, context) => setValue(newValue, {
190
+ validationError: context.validationError
191
+ })
192
+ };
193
+ const setValueFromView = (0, _useEventCallback.default)((newValue, selectionState = 'partial') => {
194
+ // TODO: Expose a new method (private?) like `setView` that only updates the draft value.
195
+ if (selectionState === 'shallow') {
196
+ setDateState(prev => (0, _extends2.default)({}, prev, {
197
+ draft: newValue,
198
+ hasBeenModifiedSinceMount: true
199
+ }));
200
+ }
201
+ setValue(newValue, {
202
+ changeImportance: selectionState === 'finish' && closeOnSelect ? 'accept' : 'set'
329
203
  });
330
204
  });
205
+ const valueWithoutError = React.useMemo(() => valueManager.cleanValue(utils, dateState.draft), [utils, valueManager, dateState.draft]);
206
+ const viewResponse = {
207
+ value: valueWithoutError,
208
+ onChange: setValueFromView,
209
+ open,
210
+ setOpen
211
+ };
331
212
  const actionsContextValue = React.useMemo(() => ({
213
+ setValue,
332
214
  setOpen,
333
215
  clearValue,
334
216
  setValueToToday,
335
217
  acceptValueChanges,
336
218
  cancelValueChanges
337
- }), [setOpen, clearValue, setValueToToday, acceptValueChanges, cancelValueChanges]);
219
+ }), [setValue, setOpen, clearValue, setValueToToday, acceptValueChanges, cancelValueChanges]);
338
220
  const contextValue = React.useMemo(() => (0, _extends2.default)({}, actionsContextValue, {
339
- open
340
- }), [actionsContextValue, open]);
221
+ open,
222
+ value: dateState.draft
223
+ }), [actionsContextValue, open, dateState.draft]);
341
224
  const privateContextValue = React.useMemo(() => ({
342
225
  dismissViews
343
226
  }), [dismissViews]);
@@ -345,12 +228,12 @@ const usePickerValue = ({
345
228
  value: valueWithoutError,
346
229
  contextValue,
347
230
  actionsContextValue,
348
- privateContextValue
231
+ privateContextValue,
232
+ isValidContextValue: isValid
349
233
  };
350
234
  return {
351
235
  fieldProps: fieldResponse,
352
236
  viewProps: viewResponse,
353
- layoutProps: layoutResponse,
354
237
  provider: providerParams
355
238
  };
356
239
  };
@@ -13,15 +13,14 @@ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedE
13
13
  var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
14
14
  var _useViews = require("../useViews");
15
15
  var _timeUtils = require("../../utils/time-utils");
16
+ var _jsxRuntime = require("react/jsx-runtime");
16
17
  const _excluded = ["className", "sx"];
17
18
  /**
18
19
  * Props used to handle the views that are common to all pickers.
19
20
  */
20
-
21
21
  /**
22
22
  * Props used to handle the value of the pickers.
23
23
  */
24
-
25
24
  /**
26
25
  * Manage the views of all the pickers:
27
26
  * - Handles the view switch
@@ -31,9 +30,8 @@ const _excluded = ["className", "sx"];
31
30
  const usePickerViews = ({
32
31
  props,
33
32
  propsFromPickerValue,
34
- additionalViewProps,
35
33
  autoFocusView,
36
- rendererInterceptor,
34
+ rendererInterceptor: RendererInterceptor,
37
35
  fieldRef
38
36
  }) => {
39
37
  const {
@@ -131,15 +129,18 @@ const usePickerViews = ({
131
129
  setFocusedView(newView, true);
132
130
  }, [open]); // eslint-disable-line react-hooks/exhaustive-deps
133
131
 
134
- const contextValue = React.useMemo(() => ({
132
+ const actionsContextValue = React.useMemo(() => ({
133
+ setView
134
+ }), [setView]);
135
+ const contextValue = React.useMemo(() => (0, _extends2.default)({}, actionsContextValue, {
135
136
  views,
136
- view: popperView,
137
- onViewChange: setView
138
- }), [views, popperView, setView]);
137
+ view: popperView
138
+ }), [actionsContextValue, views, popperView]);
139
139
  const providerParams = {
140
140
  hasUIView,
141
141
  views,
142
- contextValue
142
+ contextValue,
143
+ actionsContextValue
143
144
  };
144
145
  return {
145
146
  shouldRestoreFocus,
@@ -152,7 +153,7 @@ const usePickerViews = ({
152
153
  if (renderer == null) {
153
154
  return null;
154
155
  }
155
- const rendererProps = (0, _extends2.default)({}, propsToForwardToView, additionalViewProps, {
156
+ const rendererProps = (0, _extends2.default)({}, propsToForwardToView, {
156
157
  views,
157
158
  timezone,
158
159
  value,
@@ -164,8 +165,12 @@ const usePickerViews = ({
164
165
  showViewSwitcher: timeViewsCount > 1,
165
166
  timeViewsCount
166
167
  });
167
- if (rendererInterceptor) {
168
- return rendererInterceptor(viewRenderers, popperView, rendererProps);
168
+ if (RendererInterceptor) {
169
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RendererInterceptor, {
170
+ viewRenderers: viewRenderers,
171
+ popperView: popperView,
172
+ rendererProps: rendererProps
173
+ });
169
174
  }
170
175
  return renderer(rendererProps);
171
176
  }
@@ -47,20 +47,17 @@ const useStaticPicker = _ref => {
47
47
  autoFocus
48
48
  } = props;
49
49
  const {
50
- layoutProps,
51
50
  providerProps,
52
51
  renderCurrentView
53
52
  } = (0, _usePicker.usePicker)((0, _extends2.default)({}, pickerParams, {
54
53
  props,
55
54
  autoFocusView: autoFocus ?? false,
56
- fieldRef: undefined,
57
55
  localeText,
58
- additionalViewProps: {},
59
56
  variant: displayStaticWrapperAs
60
57
  }));
61
58
  const Layout = slots?.layout ?? PickerStaticLayout;
62
59
  const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerProvider.PickerProvider, (0, _extends2.default)({}, providerProps, {
63
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, layoutProps, slotProps?.layout, {
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
64
61
  slots: slots,
65
62
  slotProps: slotProps,
66
63
  sx: [...(Array.isArray(sx) ? sx : [sx]), ...(Array.isArray(slotProps?.layout?.sx) ? slotProps.layout.sx : [slotProps?.layout?.sx])],
@@ -30,7 +30,7 @@ const useDefaultDates = () => useLocalizationContext().defaultDates;
30
30
  exports.useDefaultDates = useDefaultDates;
31
31
  const useNow = timezone => {
32
32
  const utils = useUtils();
33
- const now = React.useRef();
33
+ const now = React.useRef(undefined);
34
34
  if (now.current === undefined) {
35
35
  now.current = utils.date(undefined, timezone);
36
36
  }
@@ -129,12 +129,30 @@ Object.defineProperty(exports, "getActiveElement", {
129
129
  return _utils.getActiveElement;
130
130
  }
131
131
  });
132
+ Object.defineProperty(exports, "getDateFieldInternalPropsDefaults", {
133
+ enumerable: true,
134
+ get: function () {
135
+ return _useDateManager.getDateFieldInternalPropsDefaults;
136
+ }
137
+ });
138
+ Object.defineProperty(exports, "getDateTimeFieldInternalPropsDefaults", {
139
+ enumerable: true,
140
+ get: function () {
141
+ return _useDateTimeManager.getDateTimeFieldInternalPropsDefaults;
142
+ }
143
+ });
132
144
  Object.defineProperty(exports, "getDefaultReferenceDate", {
133
145
  enumerable: true,
134
146
  get: function () {
135
147
  return _getDefaultReferenceDate.getDefaultReferenceDate;
136
148
  }
137
149
  });
150
+ Object.defineProperty(exports, "getTimeFieldInternalPropsDefaults", {
151
+ enumerable: true,
152
+ get: function () {
153
+ return _useTimeManager.getTimeFieldInternalPropsDefaults;
154
+ }
155
+ });
138
156
  Object.defineProperty(exports, "getTodayDate", {
139
157
  enumerable: true,
140
158
  get: function () {
@@ -243,28 +261,16 @@ Object.defineProperty(exports, "useDefaultReduceAnimations", {
243
261
  return _useDefaultReduceAnimations.useDefaultReduceAnimations;
244
262
  }
245
263
  });
246
- Object.defineProperty(exports, "useDefaultizedDateField", {
247
- enumerable: true,
248
- get: function () {
249
- return _defaultizedFieldProps.useDefaultizedDateField;
250
- }
251
- });
252
- Object.defineProperty(exports, "useDefaultizedDateTimeField", {
253
- enumerable: true,
254
- get: function () {
255
- return _defaultizedFieldProps.useDefaultizedDateTimeField;
256
- }
257
- });
258
- Object.defineProperty(exports, "useDefaultizedTimeField", {
264
+ Object.defineProperty(exports, "useField", {
259
265
  enumerable: true,
260
266
  get: function () {
261
- return _defaultizedFieldProps.useDefaultizedTimeField;
267
+ return _useField.useField;
262
268
  }
263
269
  });
264
- Object.defineProperty(exports, "useField", {
270
+ Object.defineProperty(exports, "useFieldInternalPropsWithDefaults", {
265
271
  enumerable: true,
266
272
  get: function () {
267
- return _useField.useField;
273
+ return _useField.useFieldInternalPropsWithDefaults;
268
274
  }
269
275
  });
270
276
  Object.defineProperty(exports, "useFieldOwnerState", {
@@ -360,10 +366,12 @@ var _dateUtils = require("./utils/date-utils");
360
366
  var _dateTimeUtils = require("./utils/date-time-utils");
361
367
  var _getDefaultReferenceDate = require("./utils/getDefaultReferenceDate");
362
368
  var _utils = require("./utils/utils");
363
- var _defaultizedFieldProps = require("./hooks/defaultizedFieldProps");
364
369
  var _useDefaultReduceAnimations = require("./hooks/useDefaultReduceAnimations");
365
370
  var _views = require("./utils/views");
366
371
  var _DayCalendar = require("../DateCalendar/DayCalendar");
367
372
  var _useCalendarState = require("../DateCalendar/useCalendarState");
368
373
  var _timeUtils = require("./utils/time-utils");
369
- var _DateTimePickerToolbar = require("../DateTimePicker/DateTimePickerToolbar");
374
+ var _DateTimePickerToolbar = require("../DateTimePicker/DateTimePickerToolbar");
375
+ var _useDateManager = require("../managers/useDateManager");
376
+ var _useTimeManager = require("../managers/useTimeManager");
377
+ var _useDateTimeManager = require("../managers/useDateTimeManager");
@@ -46,4 +46,15 @@ Object.keys(_formProps).forEach(function (key) {
46
46
  return _formProps[key];
47
47
  }
48
48
  });
49
+ });
50
+ var _manager = require("./manager");
51
+ Object.keys(_manager).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _manager[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _manager[key];
58
+ }
59
+ });
49
60
  });
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -66,7 +66,7 @@ const findClosestEnabledDate = ({
66
66
  return null;
67
67
  };
68
68
  exports.findClosestEnabledDate = findClosestEnabledDate;
69
- const replaceInvalidDateByNull = (utils, value) => value == null || !utils.isValid(value) ? null : value;
69
+ const replaceInvalidDateByNull = (utils, value) => !utils.isValid(value) ? null : value;
70
70
  exports.replaceInvalidDateByNull = replaceInvalidDateByNull;
71
71
  const applyDefaultDate = (utils, value, defaultValue) => {
72
72
  if (value == null || !utils.isValid(value)) {
@@ -19,7 +19,7 @@ const singleItemValueManager = exports.singleItemValueManager = {
19
19
  referenceDate
20
20
  } = _ref,
21
21
  params = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
22
- if (value != null && params.utils.isValid(value)) {
22
+ if (params.utils.isValid(value)) {
23
23
  return value;
24
24
  }
25
25
  if (referenceDate != null) {
@@ -32,11 +32,11 @@ const singleItemValueManager = exports.singleItemValueManager = {
32
32
  isSameError: (a, b) => a === b,
33
33
  hasError: error => error != null,
34
34
  defaultErrorState: null,
35
- getTimezone: (utils, value) => value == null || !utils.isValid(value) ? null : utils.getTimezone(value),
35
+ getTimezone: (utils, value) => utils.isValid(value) ? utils.getTimezone(value) : null,
36
36
  setTimezone: (utils, timezone, value) => value == null ? null : utils.setTimezone(value, timezone)
37
37
  };
38
38
  const singleItemFieldValueManager = exports.singleItemFieldValueManager = {
39
- updateReferenceValue: (utils, value, prevReferenceValue) => value == null || !utils.isValid(value) ? prevReferenceValue : value,
39
+ updateReferenceValue: (utils, value, prevReferenceValue) => !utils.isValid(value) ? prevReferenceValue : value,
40
40
  getSectionsFromValue: (utils, date, prevSections, getSectionsFromDate) => {
41
41
  const shouldReUsePrevDateSections = !utils.isValid(date) && !!prevSections;
42
42
  if (shouldReUsePrevDateSections) {
@@ -52,7 +52,7 @@ const singleItemFieldValueManager = exports.singleItemFieldValueManager = {
52
52
  getSections: sections => sections,
53
53
  getNewValuesFromNewActiveDate: newActiveDate => ({
54
54
  value: newActiveDate,
55
- referenceValue: newActiveDate == null || !utils.isValid(newActiveDate) ? state.referenceValue : newActiveDate
55
+ referenceValue: utils.isValid(newActiveDate) ? newActiveDate : state.referenceValue
56
56
  })
57
57
  }),
58
58
  parseValueStr: (valueStr, referenceValue, parseDate) => parseDate(valueStr.trim(), referenceValue)