@mui/x-date-pickers-pro 8.0.0-alpha.5 → 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 (148) hide show
  1. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.d.ts +1 -1
  2. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  3. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
  4. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.d.ts +1 -1
  5. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  6. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
  7. package/CHANGELOG.md +206 -1
  8. package/DateRangeCalendar/DateRangeCalendar.js +9 -7
  9. package/DateRangePicker/DateRangePicker.js +1 -1
  10. package/DateRangePicker/DateRangePicker.types.d.ts +5 -0
  11. package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
  12. package/DateRangePicker/DateRangePickerToolbar.js +25 -31
  13. package/DateRangePicker/shared.d.ts +1 -1
  14. package/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
  15. package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +4 -5
  16. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +25 -24
  17. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
  18. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +7 -5
  19. package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -4
  20. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +66 -69
  21. package/DateTimeRangePicker/shared.d.ts +2 -2
  22. package/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
  23. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +7 -2
  24. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
  25. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +2 -3
  26. package/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
  27. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +2 -2
  28. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
  29. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +2 -3
  30. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  31. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
  32. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  33. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
  34. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  35. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
  36. package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +2 -2
  37. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -2
  38. package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  39. package/hooks/index.d.ts +1 -0
  40. package/hooks/index.js +1 -0
  41. package/hooks/package.json +6 -0
  42. package/hooks/usePickerRangePositionContext.d.ts +7 -0
  43. package/hooks/usePickerRangePositionContext.js +15 -0
  44. package/index.d.ts +2 -0
  45. package/index.js +4 -2
  46. package/internals/hooks/models/useRangePicker.d.ts +4 -4
  47. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +35 -53
  48. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +7 -9
  49. package/internals/hooks/useEnrichedRangePickerFieldProps.d.ts +6 -6
  50. package/internals/hooks/useEnrichedRangePickerFieldProps.js +11 -8
  51. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +24 -40
  52. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -9
  53. package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +10 -12
  54. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +1 -1
  55. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +11 -6
  56. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +2 -2
  57. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +12 -7
  58. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +2 -2
  59. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +13 -8
  60. package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
  61. package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  62. package/internals/hooks/useRangePosition.d.ts +1 -1
  63. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
  64. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -6
  65. package/internals/utils/date-range-manager.js +2 -1
  66. package/internals/utils/releaseInfo.js +1 -1
  67. package/internals/utils/valueManagers.js +7 -7
  68. package/managers/index.d.ts +6 -0
  69. package/managers/index.js +3 -0
  70. package/managers/package.json +6 -0
  71. package/managers/useDateRangeManager.d.ts +15 -0
  72. package/managers/useDateRangeManager.js +31 -0
  73. package/managers/useDateTimeRangeManager.d.ts +15 -0
  74. package/managers/useDateTimeRangeManager.js +31 -0
  75. package/managers/useTimeRangeManager.d.ts +15 -0
  76. package/managers/useTimeRangeManager.js +29 -0
  77. package/models/range.d.ts +0 -1
  78. package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  79. package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  80. package/modern/DateRangeCalendar/DateRangeCalendar.js +9 -7
  81. package/modern/DateRangePicker/DateRangePicker.js +1 -1
  82. package/modern/DateRangePicker/DateRangePickerToolbar.js +25 -31
  83. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
  84. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +25 -24
  85. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +7 -5
  86. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +66 -69
  87. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
  88. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
  89. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
  90. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
  91. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
  92. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
  93. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
  94. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  95. package/modern/hooks/index.js +1 -0
  96. package/modern/hooks/usePickerRangePositionContext.js +15 -0
  97. package/modern/index.js +4 -2
  98. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +35 -53
  99. package/modern/internals/hooks/useEnrichedRangePickerFieldProps.js +11 -8
  100. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +24 -40
  101. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +11 -6
  102. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +12 -7
  103. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +13 -8
  104. package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  105. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
  106. package/modern/internals/utils/date-range-manager.js +2 -1
  107. package/modern/internals/utils/releaseInfo.js +1 -1
  108. package/modern/internals/utils/valueManagers.js +7 -7
  109. package/modern/managers/index.js +3 -0
  110. package/modern/managers/useDateRangeManager.js +31 -0
  111. package/modern/managers/useDateTimeRangeManager.js +31 -0
  112. package/modern/managers/useTimeRangeManager.js +29 -0
  113. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  114. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  115. package/node/DateRangeCalendar/DateRangeCalendar.js +9 -7
  116. package/node/DateRangePicker/DateRangePicker.js +1 -1
  117. package/node/DateRangePicker/DateRangePickerToolbar.js +24 -30
  118. package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
  119. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +24 -23
  120. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +7 -5
  121. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +65 -68
  122. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
  123. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
  124. package/node/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
  125. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
  126. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +12 -14
  127. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +12 -14
  128. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +12 -14
  129. package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  130. package/node/hooks/index.js +12 -0
  131. package/node/hooks/usePickerRangePositionContext.js +22 -0
  132. package/node/index.js +23 -1
  133. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +35 -53
  134. package/node/internals/hooks/useEnrichedRangePickerFieldProps.js +11 -8
  135. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +24 -40
  136. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +10 -5
  137. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +11 -6
  138. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +12 -7
  139. package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
  140. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
  141. package/node/internals/utils/date-range-manager.js +2 -1
  142. package/node/internals/utils/releaseInfo.js +1 -1
  143. package/node/internals/utils/valueManagers.js +7 -7
  144. package/node/managers/index.js +26 -0
  145. package/node/managers/useDateRangeManager.js +38 -0
  146. package/node/managers/useDateTimeRangeManager.js +38 -0
  147. package/node/managers/useTimeRangeManager.js +36 -0
  148. package/package.json +5 -5
@@ -14,14 +14,19 @@ var _validation2 = require("../../../validation");
14
14
  var _valueManagers = require("../../utils/valueManagers");
15
15
  var _shared = require("./shared");
16
16
  var _useMultiInputFieldSelectedSections = require("../useMultiInputFieldSelectedSections");
17
+ var _managers = require("../../../managers");
17
18
  const useMultiInputDateTimeRangeField = ({
18
- sharedProps: inSharedProps,
19
+ sharedProps,
19
20
  startTextFieldProps,
20
21
  unstableStartFieldRef,
21
22
  endTextFieldProps,
22
23
  unstableEndFieldRef
23
24
  }) => {
24
- const sharedProps = (0, _internals.useDefaultizedDateTimeField)(inSharedProps);
25
+ const manager = (0, _managers.useDateTimeRangeManager)(sharedProps);
26
+ const sharedPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
27
+ manager,
28
+ internalProps: sharedProps
29
+ });
25
30
  const {
26
31
  value: valueProp,
27
32
  defaultValue,
@@ -37,13 +42,13 @@ const useMultiInputDateTimeRangeField = ({
37
42
  timezone: timezoneProp,
38
43
  enableAccessibleFieldDOMStructure,
39
44
  autoFocus
40
- } = sharedProps;
45
+ } = sharedPropsWithDefaults;
41
46
  const {
42
47
  value,
43
48
  handleValueChange,
44
49
  timezone
45
50
  } = (0, _internals.useControlledValueWithTimezone)({
46
- name: 'useMultiInputDateRangeField',
51
+ name: 'useMultiInputDateTimeRangeField',
47
52
  timezone: timezoneProp,
48
53
  value: valueProp,
49
54
  defaultValue,
@@ -55,11 +60,11 @@ const useMultiInputDateTimeRangeField = ({
55
60
  validationError,
56
61
  getValidationErrorForNewValue
57
62
  } = (0, _validation.useValidation)({
58
- props: sharedProps,
63
+ props: sharedPropsWithDefaults,
59
64
  value,
60
65
  timezone,
61
66
  validator: _validation2.validateDateTimeRange,
62
- onError: sharedProps.onError
67
+ onError: sharedPropsWithDefaults.onError
63
68
  });
64
69
 
65
70
  // TODO: Maybe export utility from `useField` instead of copy/pasting the logic
@@ -14,14 +14,19 @@ var _validation2 = require("../../../validation");
14
14
  var _valueManagers = require("../../utils/valueManagers");
15
15
  var _shared = require("./shared");
16
16
  var _useMultiInputFieldSelectedSections = require("../useMultiInputFieldSelectedSections");
17
+ var _managers = require("../../../managers");
17
18
  const useMultiInputTimeRangeField = ({
18
- sharedProps: inSharedProps,
19
+ sharedProps,
19
20
  startTextFieldProps,
20
21
  unstableStartFieldRef,
21
22
  endTextFieldProps,
22
23
  unstableEndFieldRef
23
24
  }) => {
24
- const sharedProps = (0, _internals.useDefaultizedTimeField)(inSharedProps);
25
+ const manager = (0, _managers.useTimeRangeManager)(sharedProps);
26
+ const sharedPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
27
+ manager,
28
+ internalProps: sharedProps
29
+ });
25
30
  const {
26
31
  value: valueProp,
27
32
  defaultValue,
@@ -37,13 +42,13 @@ const useMultiInputTimeRangeField = ({
37
42
  timezone: timezoneProp,
38
43
  enableAccessibleFieldDOMStructure,
39
44
  autoFocus
40
- } = sharedProps;
45
+ } = sharedPropsWithDefaults;
41
46
  const {
42
47
  value,
43
48
  handleValueChange,
44
49
  timezone
45
50
  } = (0, _internals.useControlledValueWithTimezone)({
46
- name: 'useMultiInputDateRangeField',
51
+ name: 'useMultiInputTimeRangeField',
47
52
  timezone: timezoneProp,
48
53
  value: valueProp,
49
54
  defaultValue,
@@ -55,11 +60,11 @@ const useMultiInputTimeRangeField = ({
55
60
  validationError,
56
61
  getValidationErrorForNewValue
57
62
  } = (0, _validation.useValidation)({
58
- props: sharedProps,
59
- validator: _validation2.validateTimeRange,
63
+ props: sharedPropsWithDefaults,
60
64
  value,
61
65
  timezone,
62
- onError: sharedProps.onError
66
+ validator: _validation2.validateTimeRange,
67
+ onError: sharedPropsWithDefaults.onError
63
68
  });
64
69
 
65
70
  // TODO: Maybe export utility from `useField` instead of copy/pasting the logic
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useNullablePickerRangePositionContext = useNullablePickerRangePositionContext;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _usePickerRangePositionContext = require("../../hooks/usePickerRangePositionContext");
10
+ /**
11
+ * Returns information about the range position of the picker that wraps the current component.
12
+ * If no picker wraps the current component, returns `null`.
13
+ */
14
+ function useNullablePickerRangePositionContext() {
15
+ return React.useContext(_usePickerRangePositionContext.PickerRangePositionContext);
16
+ }
@@ -14,6 +14,7 @@ var _styles = require("@mui/material/styles");
14
14
  var _PickersLayout = require("@mui/x-date-pickers/PickersLayout");
15
15
  var _internals = require("@mui/x-date-pickers/internals");
16
16
  var _useRangePosition = require("../useRangePosition");
17
+ var _usePickerRangePositionContext = require("../../../hooks/usePickerRangePositionContext");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  const _excluded = ["props", "ref"];
19
20
  const PickerStaticLayout = (0, _styles.styled)(_PickersLayout.PickersLayout)(({
@@ -43,12 +44,8 @@ const useStaticRangePicker = _ref => {
43
44
  displayStaticWrapperAs,
44
45
  autoFocus
45
46
  } = props;
47
+ const rangePositionResponse = (0, _useRangePosition.useRangePosition)(props);
46
48
  const {
47
- rangePosition,
48
- onRangePositionChange
49
- } = (0, _useRangePosition.useRangePosition)(props);
50
- const {
51
- layoutProps,
52
49
  providerProps,
53
50
  renderCurrentView
54
51
  } = (0, _internals.usePicker)((0, _extends2.default)({}, pickerParams, {
@@ -56,29 +53,22 @@ const useStaticRangePicker = _ref => {
56
53
  autoFocusView: autoFocus ?? false,
57
54
  fieldRef: undefined,
58
55
  localeText,
59
- additionalViewProps: {
60
- rangePosition,
61
- onRangePositionChange
62
- },
63
56
  variant: displayStaticWrapperAs
64
57
  }));
65
58
  const Layout = slots?.layout ?? PickerStaticLayout;
66
- const slotPropsForLayout = (0, _extends2.default)({}, slotProps, {
67
- toolbar: (0, _extends2.default)({}, slotProps?.toolbar, {
68
- rangePosition,
69
- onRangePositionChange
70
- })
71
- });
72
- const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerProvider, (0, _extends2.default)({}, providerProps, {
73
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, layoutProps, slotProps?.layout, {
74
- slots: slots,
75
- slotProps: slotPropsForLayout,
76
- sx: [...(Array.isArray(sx) ? sx : [sx]), ...(Array.isArray(slotProps?.layout?.sx) ? slotProps.layout.sx : [slotProps?.layout?.sx])],
77
- className: (0, _clsx.default)(className, slotProps?.layout?.className),
78
- ref: ref,
79
- children: renderCurrentView()
59
+ const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_usePickerRangePositionContext.PickerRangePositionContext.Provider, {
60
+ value: rangePositionResponse,
61
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerProvider, (0, _extends2.default)({}, providerProps, {
62
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
63
+ slots: slots,
64
+ slotProps: slotProps,
65
+ sx: [...(Array.isArray(sx) ? sx : [sx]), ...(Array.isArray(slotProps?.layout?.sx) ? slotProps.layout.sx : [slotProps?.layout?.sx])],
66
+ className: (0, _clsx.default)(className, slotProps?.layout?.className),
67
+ ref: ref,
68
+ children: renderCurrentView()
69
+ }))
80
70
  }))
81
- }));
71
+ });
82
72
  return {
83
73
  renderPicker
84
74
  };
@@ -15,7 +15,8 @@ function calculateRangeChange({
15
15
  shouldMergeDateAndTime = false,
16
16
  referenceDate
17
17
  }) {
18
- const [start, end] = range;
18
+ const start = !utils.isValid(range[0]) ? null : range[0];
19
+ const end = !utils.isValid(range[1]) ? null : range[1];
19
20
  if (shouldMergeDateAndTime && selectedDate) {
20
21
  // If there is a date already selected, then we want to keep its time
21
22
  if (start && rangePosition === 'start') {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getReleaseInfo = void 0;
7
7
  var _utils = require("@mui/utils");
8
8
  const getReleaseInfo = () => {
9
- const releaseInfo = "MTczNDU2NjQwMDAwMA==";
9
+ const releaseInfo = "MTczNjM3NzIwMDAwMA==";
10
10
  if (process.env.NODE_ENV !== 'production') {
11
11
  // A simple hack to set the value in the test environment (has no build step).
12
12
  // eslint-disable-next-line no-useless-concat
@@ -19,8 +19,8 @@ const rangeValueManager = exports.rangeValueManager = {
19
19
  referenceDate: referenceDateProp
20
20
  } = _ref,
21
21
  params = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
22
- const shouldKeepStartDate = value[0] != null && params.utils.isValid(value[0]);
23
- const shouldKeepEndDate = value[1] != null && params.utils.isValid(value[1]);
22
+ const shouldKeepStartDate = params.utils.isValid(value[0]);
23
+ const shouldKeepEndDate = params.utils.isValid(value[1]);
24
24
  if (shouldKeepStartDate && shouldKeepEndDate) {
25
25
  return value;
26
26
  }
@@ -33,8 +33,8 @@ const rangeValueManager = exports.rangeValueManager = {
33
33
  hasError: error => error[0] != null || error[1] != null,
34
34
  defaultErrorState: [null, null],
35
35
  getTimezone: (utils, value) => {
36
- const timezoneStart = value[0] == null || !utils.isValid(value[0]) ? null : utils.getTimezone(value[0]);
37
- const timezoneEnd = value[1] == null || !utils.isValid(value[1]) ? null : utils.getTimezone(value[1]);
36
+ const timezoneStart = utils.isValid(value[0]) ? utils.getTimezone(value[0]) : null;
37
+ const timezoneEnd = utils.isValid(value[1]) ? utils.getTimezone(value[1]) : null;
38
38
  if (timezoneStart != null && timezoneEnd != null && timezoneStart !== timezoneEnd) {
39
39
  throw new Error('MUI X: The timezone of the start and the end date should be the same.');
40
40
  }
@@ -46,8 +46,8 @@ const getRangeFieldValueManager = ({
46
46
  dateSeparator = '–'
47
47
  }) => ({
48
48
  updateReferenceValue: (utils, value, prevReferenceValue) => {
49
- const shouldKeepStartDate = value[0] != null && utils.isValid(value[0]);
50
- const shouldKeepEndDate = value[1] != null && utils.isValid(value[1]);
49
+ const shouldKeepStartDate = utils.isValid(value[0]);
50
+ const shouldKeepEndDate = utils.isValid(value[1]);
51
51
  if (!shouldKeepStartDate && !shouldKeepEndDate) {
52
52
  return prevReferenceValue;
53
53
  }
@@ -118,7 +118,7 @@ const getRangeFieldValueManager = ({
118
118
  },
119
119
  getNewValuesFromNewActiveDate: newActiveDate => ({
120
120
  value: updateDateInRange(newActiveDate, state.value),
121
- referenceValue: newActiveDate == null || !utils.isValid(newActiveDate) ? state.referenceValue : updateDateInRange(newActiveDate, state.referenceValue)
121
+ referenceValue: !utils.isValid(newActiveDate) ? state.referenceValue : updateDateInRange(newActiveDate, state.referenceValue)
122
122
  })
123
123
  };
124
124
  }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useDateRangeManager", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useDateRangeManager.useDateRangeManager;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "useDateTimeRangeManager", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _useDateTimeRangeManager.useDateTimeRangeManager;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useTimeRangeManager", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _useTimeRangeManager.useTimeRangeManager;
22
+ }
23
+ });
24
+ var _useDateRangeManager = require("./useDateRangeManager");
25
+ var _useTimeRangeManager = require("./useTimeRangeManager");
26
+ var _useDateTimeRangeManager = require("./useDateTimeRangeManager");
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.useDateRangeManager = useDateRangeManager;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _internals = require("@mui/x-date-pickers/internals");
13
+ var _valueManagers = require("../internals/utils/valueManagers");
14
+ var _validation = require("../validation");
15
+ function useDateRangeManager(parameters = {}) {
16
+ const {
17
+ enableAccessibleFieldDOMStructure = true,
18
+ dateSeparator
19
+ } = parameters;
20
+ return React.useMemo(() => ({
21
+ valueType: 'date',
22
+ validator: _validation.validateDateRange,
23
+ internal_valueManager: _valueManagers.rangeValueManager,
24
+ internal_fieldValueManager: (0, _valueManagers.getRangeFieldValueManager)({
25
+ dateSeparator
26
+ }),
27
+ internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
28
+ internal_applyDefaultsToFieldInternalProps: ({
29
+ internalProps,
30
+ utils,
31
+ defaultDates
32
+ }) => (0, _extends2.default)({}, internalProps, (0, _internals.getDateFieldInternalPropsDefaults)({
33
+ defaultDates,
34
+ utils,
35
+ internalProps
36
+ }))
37
+ }), [enableAccessibleFieldDOMStructure, dateSeparator]);
38
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.useDateTimeRangeManager = useDateTimeRangeManager;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _internals = require("@mui/x-date-pickers/internals");
13
+ var _valueManagers = require("../internals/utils/valueManagers");
14
+ var _validation = require("../validation");
15
+ function useDateTimeRangeManager(parameters = {}) {
16
+ const {
17
+ enableAccessibleFieldDOMStructure = true,
18
+ dateSeparator
19
+ } = parameters;
20
+ return React.useMemo(() => ({
21
+ valueType: 'date-time',
22
+ validator: _validation.validateDateTimeRange,
23
+ internal_valueManager: _valueManagers.rangeValueManager,
24
+ internal_fieldValueManager: (0, _valueManagers.getRangeFieldValueManager)({
25
+ dateSeparator
26
+ }),
27
+ internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
28
+ internal_applyDefaultsToFieldInternalProps: ({
29
+ internalProps,
30
+ utils,
31
+ defaultDates
32
+ }) => (0, _extends2.default)({}, internalProps, (0, _internals.getDateTimeFieldInternalPropsDefaults)({
33
+ internalProps,
34
+ utils,
35
+ defaultDates
36
+ }))
37
+ }), [enableAccessibleFieldDOMStructure, dateSeparator]);
38
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.useTimeRangeManager = useTimeRangeManager;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _internals = require("@mui/x-date-pickers/internals");
13
+ var _valueManagers = require("../internals/utils/valueManagers");
14
+ var _validation = require("../validation");
15
+ function useTimeRangeManager(parameters = {}) {
16
+ const {
17
+ enableAccessibleFieldDOMStructure = true,
18
+ dateSeparator
19
+ } = parameters;
20
+ return React.useMemo(() => ({
21
+ valueType: 'time',
22
+ validator: _validation.validateTimeRange,
23
+ internal_valueManager: _valueManagers.rangeValueManager,
24
+ internal_fieldValueManager: (0, _valueManagers.getRangeFieldValueManager)({
25
+ dateSeparator
26
+ }),
27
+ internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
28
+ internal_applyDefaultsToFieldInternalProps: ({
29
+ internalProps,
30
+ utils
31
+ }) => (0, _extends2.default)({}, internalProps, (0, _internals.getTimeFieldInternalPropsDefaults)({
32
+ utils,
33
+ internalProps
34
+ }))
35
+ }), [enableAccessibleFieldDOMStructure, dateSeparator]);
36
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers-pro",
3
- "version": "8.0.0-alpha.5",
3
+ "version": "8.0.0-alpha.7",
4
4
  "description": "The Pro plan edition of the Date and Time Picker components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -37,9 +37,9 @@
37
37
  "clsx": "^2.1.1",
38
38
  "prop-types": "^15.8.1",
39
39
  "react-transition-group": "^4.4.5",
40
- "@mui/x-date-pickers": "8.0.0-alpha.5",
41
- "@mui/x-license": "8.0.0-alpha.5",
42
- "@mui/x-internals": "8.0.0-alpha.5"
40
+ "@mui/x-date-pickers": "8.0.0-alpha.7",
41
+ "@mui/x-internals": "8.0.0-alpha.7",
42
+ "@mui/x-license": "8.0.0-alpha.7"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@emotion/react": "^11.9.0",
@@ -47,7 +47,7 @@
47
47
  "@mui/material": "^5.15.14 || ^6.0.0",
48
48
  "@mui/system": "^5.15.14 || ^6.0.0",
49
49
  "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0",
50
- "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0",
50
+ "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0",
51
51
  "dayjs": "^1.10.7",
52
52
  "luxon": "^3.0.2",
53
53
  "moment": "^2.29.4",