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

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 (199) hide show
  1. package/CHANGELOG.md +115 -0
  2. package/DateRangeCalendar/DateRangeCalendar.js +4 -4
  3. package/DateRangePicker/DateRangePickerToolbar.js +3 -3
  4. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -3
  5. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
  6. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -7
  7. package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
  8. package/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
  9. package/MultiInputDateRangeField/index.d.ts +5 -3
  10. package/MultiInputDateRangeField/index.js +2 -2
  11. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.d.ts +6 -0
  12. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  13. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +9 -4
  14. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
  15. package/MultiInputDateTimeRangeField/index.d.ts +5 -3
  16. package/MultiInputDateTimeRangeField/index.js +2 -2
  17. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.d.ts +6 -0
  18. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  19. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +9 -4
  20. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
  21. package/MultiInputTimeRangeField/index.d.ts +5 -3
  22. package/MultiInputTimeRangeField/index.js +2 -2
  23. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.d.ts +6 -0
  24. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  25. package/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
  26. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -17
  27. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  28. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -1
  29. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
  30. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -18
  31. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  32. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -1
  33. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
  34. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -18
  35. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  36. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -1
  37. package/hooks/index.d.ts +1 -0
  38. package/hooks/index.js +2 -1
  39. package/hooks/useMultiInputRangeField/index.d.ts +1 -0
  40. package/hooks/useMultiInputRangeField/index.js +1 -0
  41. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
  42. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  43. package/{internals/hooks/useMultiInputFieldSelectedSections.d.ts → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts} +3 -4
  44. package/{modern/internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  45. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
  46. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  47. package/index.js +1 -1
  48. package/internals/hooks/models/index.d.ts +1 -1
  49. package/internals/hooks/models/useRangePicker.d.ts +4 -6
  50. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +32 -42
  51. package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +15 -6
  52. package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
  53. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +23 -32
  54. package/internals/hooks/useRangePosition.d.ts +1 -1
  55. package/internals/hooks/useRangePosition.js +1 -1
  56. package/internals/models/dateTimeRange.d.ts +1 -6
  57. package/internals/models/fields.d.ts +1 -2
  58. package/internals/models/index.d.ts +0 -1
  59. package/internals/models/index.js +0 -1
  60. package/internals/models/managers.d.ts +3 -0
  61. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
  62. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
  63. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
  64. package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
  65. package/internals/utils/createMultiInputRangeField/index.js +2 -0
  66. package/internals/utils/releaseInfo.js +1 -1
  67. package/managers/index.d.ts +3 -3
  68. package/managers/useDateRangeManager.d.ts +1 -1
  69. package/managers/useDateRangeManager.js +3 -1
  70. package/managers/useDateTimeRangeManager.d.ts +1 -1
  71. package/managers/useDateTimeRangeManager.js +3 -1
  72. package/managers/useTimeRangeManager.d.ts +1 -1
  73. package/managers/useTimeRangeManager.js +3 -1
  74. package/models/fields.d.ts +1 -2
  75. package/models/index.d.ts +0 -2
  76. package/models/index.js +0 -2
  77. package/modern/DateRangeCalendar/DateRangeCalendar.js +4 -4
  78. package/modern/DateRangePicker/DateRangePickerToolbar.js +3 -3
  79. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -3
  80. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
  81. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -7
  82. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
  83. package/modern/MultiInputDateRangeField/index.js +2 -2
  84. package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  85. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
  86. package/modern/MultiInputDateTimeRangeField/index.js +2 -2
  87. package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  88. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
  89. package/modern/MultiInputTimeRangeField/index.js +2 -2
  90. package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  91. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
  92. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -1
  93. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
  94. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -1
  95. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
  96. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -1
  97. package/modern/hooks/index.js +2 -1
  98. package/modern/hooks/useMultiInputRangeField/index.js +1 -0
  99. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  100. package/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  101. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  102. package/modern/index.js +1 -1
  103. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +32 -42
  104. package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
  105. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +23 -32
  106. package/modern/internals/hooks/useRangePosition.js +1 -1
  107. package/modern/internals/models/index.js +0 -1
  108. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
  109. package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
  110. package/modern/internals/utils/releaseInfo.js +1 -1
  111. package/modern/managers/useDateRangeManager.js +3 -1
  112. package/modern/managers/useDateTimeRangeManager.js +3 -1
  113. package/modern/managers/useTimeRangeManager.js +3 -1
  114. package/modern/models/index.js +0 -2
  115. package/node/DateRangeCalendar/DateRangeCalendar.js +4 -4
  116. package/node/DateRangePicker/DateRangePickerToolbar.js +3 -3
  117. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -3
  118. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
  119. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -7
  120. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +11 -119
  121. package/node/MultiInputDateRangeField/index.js +3 -9
  122. package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
  123. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +11 -119
  124. package/node/MultiInputDateTimeRangeField/index.js +3 -9
  125. package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
  126. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +12 -120
  127. package/node/MultiInputTimeRangeField/index.js +3 -9
  128. package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
  129. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +19 -29
  130. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -1
  131. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +19 -29
  132. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -1
  133. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +19 -29
  134. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -1
  135. package/node/hooks/index.js +8 -1
  136. package/node/hooks/useMultiInputRangeField/index.js +12 -0
  137. package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
  138. package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
  139. package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
  140. package/node/index.js +1 -1
  141. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +31 -41
  142. package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +41 -54
  143. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +22 -31
  144. package/node/internals/hooks/useRangePosition.js +1 -1
  145. package/node/internals/models/index.js +0 -11
  146. package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +140 -0
  147. package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
  148. package/node/internals/utils/releaseInfo.js +1 -1
  149. package/node/managers/useDateRangeManager.js +3 -1
  150. package/node/managers/useDateTimeRangeManager.js +3 -1
  151. package/node/managers/useTimeRangeManager.js +3 -1
  152. package/node/models/index.js +0 -22
  153. package/package.json +4 -4
  154. package/themeAugmentation/overrides.d.ts +6 -4
  155. package/themeAugmentation/props.d.ts +2 -2
  156. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -55
  157. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -56
  158. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -56
  159. package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
  160. package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  161. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
  162. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -118
  163. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
  164. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -118
  165. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
  166. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
  167. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -118
  168. package/internals/models/timeRange.d.ts +0 -6
  169. package/internals/models/timeRange.js +0 -1
  170. package/models/dateRange.d.ts +0 -7
  171. package/models/dateRange.js +0 -1
  172. package/models/multiInputRangeFieldClasses.d.ts +0 -7
  173. package/models/multiInputRangeFieldClasses.js +0 -1
  174. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  175. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  176. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  177. package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  178. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -118
  179. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -118
  180. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  181. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -118
  182. package/modern/internals/models/timeRange.js +0 -1
  183. package/modern/models/dateRange.js +0 -1
  184. package/modern/models/multiInputRangeFieldClasses.js +0 -1
  185. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
  186. package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
  187. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -126
  188. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -126
  189. package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
  190. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -126
  191. package/node/internals/models/timeRange.js +0 -5
  192. package/node/models/dateRange.js +0 -5
  193. package/node/models/multiInputRangeFieldClasses.js +0 -5
  194. /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  195. /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  196. /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
  197. /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  198. /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  199. /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
@@ -1,48 +1,11 @@
1
1
  'use client';
2
2
 
3
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className", "classes"];
6
- import * as React from 'react';
7
3
  import PropTypes from 'prop-types';
8
- import { clsx } from 'clsx';
9
- import Stack from '@mui/material/Stack';
10
- import MuiTextField from '@mui/material/TextField';
11
- import Typography from '@mui/material/Typography';
12
- import { styled, useThemeProps } from '@mui/material/styles';
13
- import useSlotProps from '@mui/utils/useSlotProps';
14
- import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
15
- import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
16
- import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
17
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
18
- import { useMultiInputTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js";
19
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
- export const multiInputTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputTimeRangeField', ['root', 'separator']);
21
- export const getMultiInputTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputTimeRangeField', slot);
22
- const useUtilityClasses = classes => {
23
- const slots = {
24
- root: ['root'],
25
- separator: ['separator']
26
- };
27
- return composeClasses(slots, getMultiInputTimeRangeFieldUtilityClass, classes);
28
- };
29
- const MultiInputTimeRangeFieldRoot = styled(/*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
30
- ref: ref,
31
- spacing: 2,
32
- direction: "row",
33
- alignItems: "center"
34
- }, props))), {
35
- name: 'MuiMultiInputTimeRangeField',
36
- slot: 'Root',
37
- overridesResolver: (props, styles) => styles.root
38
- })({});
39
- const MultiInputTimeRangeFieldSeparator = styled(Typography, {
40
- name: 'MuiMultiInputTimeRangeField',
41
- slot: 'Separator',
42
- overridesResolver: (props, styles) => styles.separator
43
- })({
44
- lineHeight: '1.4375em' // 23px
45
- });
4
+ import { useTimeRangeManager } from "../managers/index.js";
5
+ import {
6
+ // The alias is needed to have the doc gen working.
7
+ createMultiInputRangeField as createMultiInputTimeRangeField } from "../internals/utils/createMultiInputRangeField/index.js";
8
+ import { getMultiInputTimeRangeFieldUtilityClass } from "./multiInputTimeRangeFieldClasses.js";
46
9
  /**
47
10
  * Demos:
48
11
  *
@@ -53,80 +16,12 @@ const MultiInputTimeRangeFieldSeparator = styled(Typography, {
53
16
  *
54
17
  * - [MultiInputTimeRangeField API](https://mui.com/x/api/multi-input-time-range-field/)
55
18
  */
56
- const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInputTimeRangeField(inProps, ref) {
57
- const themeProps = useThemeProps({
58
- props: inProps,
59
- name: 'MuiMultiInputTimeRangeField'
60
- });
61
- const {
62
- internalProps,
63
- forwardedProps
64
- } = useSplitFieldProps(themeProps, 'time');
65
- const {
66
- slots,
67
- slotProps,
68
- unstableStartFieldRef,
69
- unstableEndFieldRef,
70
- className,
71
- classes: classesProp
72
- } = forwardedProps,
73
- otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
74
- const ownerState = useFieldOwnerState(themeProps);
75
- const classes = useUtilityClasses(classesProp);
76
- const Root = slots?.root ?? MultiInputTimeRangeFieldRoot;
77
- const rootProps = useSlotProps({
78
- elementType: Root,
79
- externalSlotProps: slotProps?.root,
80
- externalForwardedProps: otherForwardedProps,
81
- additionalProps: {
82
- ref
83
- },
84
- ownerState,
85
- className: clsx(className, classes.root)
86
- });
87
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
88
- const startTextFieldProps = useSlotProps({
89
- elementType: TextField,
90
- externalSlotProps: slotProps?.textField,
91
- ownerState: _extends({}, ownerState, {
92
- position: 'start'
93
- })
94
- });
95
- const endTextFieldProps = useSlotProps({
96
- elementType: TextField,
97
- externalSlotProps: slotProps?.textField,
98
- ownerState: _extends({}, ownerState, {
99
- position: 'end'
100
- })
101
- });
102
- const Separator = slots?.separator ?? MultiInputTimeRangeFieldSeparator;
103
- const separatorProps = useSlotProps({
104
- elementType: Separator,
105
- externalSlotProps: slotProps?.separator,
106
- additionalProps: {
107
- children: ` ${internalProps.dateSeparator ?? '–'} `
108
- },
109
- ownerState,
110
- className: classes.separator
111
- });
112
- const fieldResponse = useMultiInputTimeRangeField({
113
- sharedProps: internalProps,
114
- startTextFieldProps,
115
- endTextFieldProps,
116
- unstableStartFieldRef,
117
- unstableEndFieldRef
118
- });
119
- const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
120
- const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
121
- return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
122
- children: [/*#__PURE__*/_jsx(TextField, _extends({
123
- fullWidth: true
124
- }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
125
- fullWidth: true
126
- }, endDateProps))]
127
- }));
19
+ const MultiInputTimeRangeField = createMultiInputTimeRangeField({
20
+ name: 'MuiMultiInputTimeRangeField',
21
+ getUtilityClass: getMultiInputTimeRangeFieldUtilityClass,
22
+ useManager: useTimeRangeManager
128
23
  });
129
- process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
24
+ MultiInputTimeRangeField.propTypes = {
130
25
  // ----------------------------- Warning --------------------------------
131
26
  // | These PropTypes are generated from the TypeScript type definitions |
132
27
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
@@ -138,6 +33,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
138
33
  ampm: PropTypes.bool,
139
34
  /**
140
35
  * If `true`, the `input` element is focused during the first mount.
36
+ * @default false
141
37
  */
142
38
  autoFocus: PropTypes.bool,
143
39
  /**
@@ -288,7 +184,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
288
184
  */
289
185
  slotProps: PropTypes.object,
290
186
  /**
291
- * Overridable slots.
187
+ * Overridable component slots.
292
188
  * @default {}
293
189
  */
294
190
  slots: PropTypes.object,
@@ -327,5 +223,5 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
327
223
  * Used when the component is controlled.
328
224
  */
329
225
  value: PropTypes.arrayOf(PropTypes.object)
330
- } : void 0;
226
+ };
331
227
  export { MultiInputTimeRangeField };
@@ -1,2 +1,2 @@
1
- export { MultiInputTimeRangeField, getMultiInputTimeRangeFieldUtilityClass, multiInputTimeRangeFieldClasses } from "./MultiInputTimeRangeField.js";
2
- export { useMultiInputTimeRangeField as unstable_useMultiInputTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js";
1
+ export { MultiInputTimeRangeField } from "./MultiInputTimeRangeField.js";
2
+ export { multiInputTimeRangeFieldClasses, getMultiInputTimeRangeFieldUtilityClass } from "./multiInputTimeRangeFieldClasses.js";
@@ -0,0 +1,4 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
+ export const multiInputTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputTimeRangeField', ['root', 'separator']);
4
+ export const getMultiInputTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputTimeRangeField', slot);
@@ -1,17 +1,13 @@
1
1
  'use client';
2
2
 
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
4
+ const _excluded = ["slots", "slotProps"];
6
5
  import * as React from 'react';
7
6
  import PropTypes from 'prop-types';
8
- import MuiTextField from '@mui/material/TextField';
9
7
  import { useThemeProps } from '@mui/material/styles';
10
- import useSlotProps from '@mui/utils/useSlotProps';
11
8
  import { refType } from '@mui/utils';
12
- import { useClearableField } from '@mui/x-date-pickers/hooks';
13
- import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
14
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
9
+ import { DateRangeIcon } from '@mui/x-date-pickers/icons';
10
+ import { PickerFieldUI, useFieldTextFieldProps } from '@mui/x-date-pickers/internals';
15
11
  import { useSingleInputDateRangeField } from "./useSingleInputDateRangeField.js";
16
12
  import { jsx as _jsx } from "react/jsx-runtime";
17
13
  /**
@@ -31,33 +27,21 @@ const SingleInputDateRangeField = /*#__PURE__*/React.forwardRef(function SingleI
31
27
  });
32
28
  const {
33
29
  slots,
34
- slotProps,
35
- InputProps,
36
- inputProps
30
+ slotProps
37
31
  } = themeProps,
38
32
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
39
- const ownerState = useFieldOwnerState(themeProps);
40
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
41
- const textFieldProps = useSlotProps({
42
- elementType: TextField,
43
- externalSlotProps: slotProps?.textField,
44
- externalForwardedProps: other,
45
- ownerState,
46
- additionalProps: {
47
- ref: inRef
48
- }
33
+ const textFieldProps = useFieldTextFieldProps({
34
+ slotProps,
35
+ ref: inRef,
36
+ externalForwardedProps: other
49
37
  });
50
-
51
- // TODO: Remove when mui/material-ui#35088 will be merged
52
- textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
53
- textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
54
38
  const fieldResponse = useSingleInputDateRangeField(textFieldProps);
55
- const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
56
- const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
57
- slots,
58
- slotProps
59
- }));
60
- return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
39
+ return /*#__PURE__*/_jsx(PickerFieldUI, {
40
+ slots: slots,
41
+ slotProps: slotProps,
42
+ fieldResponse: fieldResponse,
43
+ defaultOpenPickerIcon: DateRangeIcon
44
+ });
61
45
  });
62
46
  SingleInputDateRangeField.fieldType = 'single-input';
63
47
  process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
@@ -76,6 +60,12 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
76
60
  * @default false
77
61
  */
78
62
  clearable: PropTypes.bool,
63
+ /**
64
+ * The position at which the clear button is placed.
65
+ * If the field is not clearable, the button is not rendered.
66
+ * @default 'end'
67
+ */
68
+ clearButtonPosition: PropTypes.oneOf(['end', 'start']),
79
69
  /**
80
70
  * The color of the component.
81
71
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -19,6 +19,7 @@ export const useSingleInputDateRangeField = props => {
19
19
  valueManager: manager.internal_valueManager,
20
20
  fieldValueManager: manager.internal_fieldValueManager,
21
21
  validator: manager.validator,
22
- valueType: manager.valueType
22
+ valueType: manager.valueType,
23
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
23
24
  });
24
25
  };
@@ -1,17 +1,13 @@
1
1
  'use client';
2
2
 
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
4
+ const _excluded = ["slots", "slotProps"];
6
5
  import * as React from 'react';
7
6
  import PropTypes from 'prop-types';
8
- import MuiTextField from '@mui/material/TextField';
9
- import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
10
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
7
+ import { DateRangeIcon } from '@mui/x-date-pickers/icons';
8
+ import { PickerFieldUI, useFieldTextFieldProps } from '@mui/x-date-pickers/internals';
11
9
  import { useThemeProps } from '@mui/material/styles';
12
10
  import { refType } from '@mui/utils';
13
- import useSlotProps from '@mui/utils/useSlotProps';
14
- import { useClearableField } from '@mui/x-date-pickers/hooks';
15
11
  import { useSingleInputDateTimeRangeField } from "./useSingleInputDateTimeRangeField.js";
16
12
  import { jsx as _jsx } from "react/jsx-runtime";
17
13
  /**
@@ -31,33 +27,21 @@ const SingleInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Sin
31
27
  });
32
28
  const {
33
29
  slots,
34
- slotProps,
35
- InputProps,
36
- inputProps
30
+ slotProps
37
31
  } = themeProps,
38
32
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
39
- const ownerState = useFieldOwnerState(themeProps);
40
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
41
- const textFieldProps = useSlotProps({
42
- elementType: TextField,
43
- externalSlotProps: slotProps?.textField,
44
- externalForwardedProps: other,
45
- ownerState,
46
- additionalProps: {
47
- ref: inRef
48
- }
33
+ const textFieldProps = useFieldTextFieldProps({
34
+ slotProps,
35
+ ref: inRef,
36
+ externalForwardedProps: other
49
37
  });
50
-
51
- // TODO: Remove when mui/material-ui#35088 will be merged
52
- textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
53
- textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
54
38
  const fieldResponse = useSingleInputDateTimeRangeField(textFieldProps);
55
- const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
56
- const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
57
- slots,
58
- slotProps
59
- }));
60
- return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
39
+ return /*#__PURE__*/_jsx(PickerFieldUI, {
40
+ slots: slots,
41
+ slotProps: slotProps,
42
+ fieldResponse: fieldResponse,
43
+ defaultOpenPickerIcon: DateRangeIcon
44
+ });
61
45
  });
62
46
  SingleInputDateTimeRangeField.fieldType = 'single-input';
63
47
  process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes = {
@@ -81,6 +65,12 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
81
65
  * @default false
82
66
  */
83
67
  clearable: PropTypes.bool,
68
+ /**
69
+ * The position at which the clear button is placed.
70
+ * If the field is not clearable, the button is not rendered.
71
+ * @default 'end'
72
+ */
73
+ clearButtonPosition: PropTypes.oneOf(['end', 'start']),
84
74
  /**
85
75
  * The color of the component.
86
76
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -19,6 +19,7 @@ export const useSingleInputDateTimeRangeField = props => {
19
19
  valueManager: manager.internal_valueManager,
20
20
  fieldValueManager: manager.internal_fieldValueManager,
21
21
  validator: manager.validator,
22
- valueType: manager.valueType
22
+ valueType: manager.valueType,
23
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
23
24
  });
24
25
  };
@@ -1,16 +1,12 @@
1
1
  'use client';
2
2
 
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
4
+ const _excluded = ["slots", "slotProps"];
6
5
  import * as React from 'react';
7
6
  import PropTypes from 'prop-types';
8
- import MuiTextField from '@mui/material/TextField';
9
- import { useClearableField } from '@mui/x-date-pickers/hooks';
10
- import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
11
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
7
+ import { ClockIcon } from '@mui/x-date-pickers/icons';
8
+ import { PickerFieldUI, useFieldTextFieldProps } from '@mui/x-date-pickers/internals';
12
9
  import { useThemeProps } from '@mui/material/styles';
13
- import useSlotProps from '@mui/utils/useSlotProps';
14
10
  import { refType } from '@mui/utils';
15
11
  import { useSingleInputTimeRangeField } from "./useSingleInputTimeRangeField.js";
16
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -31,33 +27,21 @@ const SingleInputTimeRangeField = /*#__PURE__*/React.forwardRef(function SingleI
31
27
  });
32
28
  const {
33
29
  slots,
34
- slotProps,
35
- InputProps,
36
- inputProps
30
+ slotProps
37
31
  } = themeProps,
38
32
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
39
- const ownerState = useFieldOwnerState(themeProps);
40
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
41
- const textFieldProps = useSlotProps({
42
- elementType: TextField,
43
- externalSlotProps: slotProps?.textField,
44
- externalForwardedProps: other,
45
- ownerState,
46
- additionalProps: {
47
- ref: inRef
48
- }
33
+ const textFieldProps = useFieldTextFieldProps({
34
+ slotProps,
35
+ ref: inRef,
36
+ externalForwardedProps: other
49
37
  });
50
-
51
- // TODO: Remove when mui/material-ui#35088 will be merged
52
- textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
53
- textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
54
38
  const fieldResponse = useSingleInputTimeRangeField(textFieldProps);
55
- const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
56
- const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
57
- slots,
58
- slotProps
59
- }));
60
- return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
39
+ return /*#__PURE__*/_jsx(PickerFieldUI, {
40
+ slots: slots,
41
+ slotProps: slotProps,
42
+ fieldResponse: fieldResponse,
43
+ defaultOpenPickerIcon: ClockIcon
44
+ });
61
45
  });
62
46
  SingleInputTimeRangeField.fieldType = 'single-input';
63
47
  process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
@@ -81,6 +65,12 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
81
65
  * @default false
82
66
  */
83
67
  clearable: PropTypes.bool,
68
+ /**
69
+ * The position at which the clear button is placed.
70
+ * If the field is not clearable, the button is not rendered.
71
+ * @default 'end'
72
+ */
73
+ clearButtonPosition: PropTypes.oneOf(['end', 'start']),
84
74
  /**
85
75
  * The color of the component.
86
76
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -19,6 +19,7 @@ export const useSingleInputTimeRangeField = props => {
19
19
  valueManager: manager.internal_valueManager,
20
20
  fieldValueManager: manager.internal_fieldValueManager,
21
21
  validator: manager.validator,
22
- valueType: manager.valueType
22
+ valueType: manager.valueType,
23
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
23
24
  });
24
25
  };
@@ -1 +1,2 @@
1
- export { usePickerRangePositionContext } from "./usePickerRangePositionContext.js";
1
+ export { usePickerRangePositionContext } from "./usePickerRangePositionContext.js";
2
+ export { useMultiInputRangeField as unstable_useMultiInputRangeField } from "./useMultiInputRangeField/index.js";
@@ -0,0 +1 @@
1
+ export { useMultiInputRangeField } from "./useMultiInputRangeField.js";
@@ -0,0 +1,149 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import useEventCallback from '@mui/utils/useEventCallback';
5
+ import { useControlledValueWithTimezone, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
6
+ import { useValidation } from '@mui/x-date-pickers/validation';
7
+ import { useMultiInputRangeFieldTextFieldProps } from "./useMultiInputRangeFieldTextFieldProps.js";
8
+ import { useMultiInputRangeFieldSelectedSections } from "./useMultiInputRangeFieldSelectedSections.js";
9
+ /**
10
+ * Basic example:
11
+ *
12
+ * ```tsx
13
+ * import Box from '@mui/material/Box';
14
+ * import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
15
+ * import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
16
+ * import { useDateRangeManager } from '@mui/x-date-pickers-pro/managers';
17
+ *
18
+ * function MultiInputField(props) {
19
+ * const manager = useDateRangeManager();
20
+ * const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
21
+ * const { startDate, endDate } = useMultiInputRangeField({
22
+ * manager,
23
+ * internalProps,
24
+ * startForwardedProps: forwardedProps,
25
+ * endForwardedProps: forwardedProps,
26
+ * });
27
+ *
28
+ * return (
29
+ * <Box {...forwardedProps}>
30
+ * <PickersTextField {...startDate} />
31
+ * <span>{' – '}</span>
32
+ * <PickersTextField {...endDate} />
33
+ * </Box>
34
+ * );
35
+ * }
36
+ * ```
37
+ *
38
+ * @param {UseMultiInputRangeFieldParameters<TManager, TForwardedProps>} parameters The parameters of the hook.
39
+ * @param {TManager} parameters.manager The manager of the field.
40
+ * @param {PickerManagerFieldInternalProps<TManager>} parameters.internalProps The internal props of the field.
41
+ * @param {TForwardedProps} parameters.startForwardedProps The forwarded props of the start field.
42
+ * @param {TForwardedProps} parameters.endForwardedProps The forwarded props of the end field.
43
+ * @returns {UseMultiInputRangeFieldReturnValue<TManager, TForwardedProps>} The props to pass to the start and the end components.
44
+ */
45
+ export function useMultiInputRangeField(parameters) {
46
+ const {
47
+ manager,
48
+ internalProps,
49
+ startForwardedProps,
50
+ endForwardedProps
51
+ } = parameters;
52
+ const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
53
+ manager,
54
+ internalProps
55
+ });
56
+ const {
57
+ value: valueProp,
58
+ defaultValue,
59
+ format,
60
+ formatDensity,
61
+ shouldRespectLeadingZeros,
62
+ onChange,
63
+ disabled,
64
+ readOnly,
65
+ selectedSections,
66
+ onSelectedSectionsChange,
67
+ timezone: timezoneProp,
68
+ enableAccessibleFieldDOMStructure,
69
+ autoFocus,
70
+ referenceDate,
71
+ unstableStartFieldRef,
72
+ unstableEndFieldRef
73
+ } = internalPropsWithDefaults;
74
+ const {
75
+ value,
76
+ handleValueChange,
77
+ timezone
78
+ } = useControlledValueWithTimezone({
79
+ name: 'useMultiInputRangeField',
80
+ timezone: timezoneProp,
81
+ value: valueProp,
82
+ defaultValue,
83
+ referenceDate,
84
+ onChange,
85
+ valueManager: manager.internal_valueManager
86
+ });
87
+ const {
88
+ validationError,
89
+ getValidationErrorForNewValue
90
+ } = useValidation({
91
+ props: internalPropsWithDefaults,
92
+ value,
93
+ timezone,
94
+ validator: manager.validator,
95
+ onError: internalPropsWithDefaults.onError
96
+ });
97
+ const buildChangeHandler = index => {
98
+ return (newSingleValue, rawContext) => {
99
+ const newRange = index === 0 ? [newSingleValue, value[1]] : [value[0], newSingleValue];
100
+ const context = _extends({}, rawContext, {
101
+ validationError: getValidationErrorForNewValue(newRange)
102
+ });
103
+ handleValueChange(newRange, context);
104
+ };
105
+ };
106
+ const handleStartDateChange = useEventCallback(buildChangeHandler(0));
107
+ const handleEndDateChange = useEventCallback(buildChangeHandler(1));
108
+ const selectedSectionsResponse = useMultiInputRangeFieldSelectedSections({
109
+ selectedSections,
110
+ onSelectedSectionsChange,
111
+ unstableStartFieldRef,
112
+ unstableEndFieldRef
113
+ });
114
+ const sharedProps = {
115
+ disabled,
116
+ readOnly,
117
+ timezone,
118
+ format,
119
+ formatDensity,
120
+ shouldRespectLeadingZeros,
121
+ enableAccessibleFieldDOMStructure
122
+ };
123
+ const startDateProps = useMultiInputRangeFieldTextFieldProps({
124
+ valueType: manager.valueType,
125
+ fieldProps: _extends({
126
+ error: !!validationError[0]
127
+ }, startForwardedProps, selectedSectionsResponse.start, sharedProps, {
128
+ value: valueProp === undefined ? undefined : valueProp[0],
129
+ defaultValue: defaultValue === undefined ? undefined : defaultValue[0],
130
+ onChange: handleStartDateChange,
131
+ autoFocus // Do not add on end field.
132
+ })
133
+ });
134
+ const endDateProps = useMultiInputRangeFieldTextFieldProps({
135
+ valueType: manager.valueType,
136
+ fieldProps: _extends({
137
+ error: !!validationError[1]
138
+ }, endForwardedProps, selectedSectionsResponse.end, sharedProps, {
139
+ value: valueProp === undefined ? undefined : valueProp[1],
140
+ defaultValue: defaultValue === undefined ? undefined : defaultValue[1],
141
+ onChange: handleEndDateChange
142
+ })
143
+ });
144
+ return {
145
+ startDate: startDateProps,
146
+ endDate: endDateProps,
147
+ enableAccessibleFieldDOMStructure
148
+ };
149
+ }
@@ -1,10 +1,12 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import useForkRef from '@mui/utils/useForkRef';
3
5
  import useEventCallback from '@mui/utils/useEventCallback';
4
- export const useMultiInputFieldSelectedSections = params => {
6
+ export const useMultiInputRangeFieldSelectedSections = parameters => {
5
7
  const unstableEndFieldRef = React.useRef(null);
6
- const handleUnstableEndFieldRef = useForkRef(params.unstableEndFieldRef, unstableEndFieldRef);
7
- const [startSelectedSection, setStartSelectedSection] = React.useState(params.selectedSections ?? null);
8
+ const handleUnstableEndFieldRef = useForkRef(parameters.unstableEndFieldRef, unstableEndFieldRef);
9
+ const [startSelectedSection, setStartSelectedSection] = React.useState(parameters.selectedSections ?? null);
8
10
  const [endSelectedSection, setEndSelectedSection] = React.useState(null);
9
11
  const getActiveField = () => {
10
12
  if (unstableEndFieldRef.current && unstableEndFieldRef.current.isFieldFocused()) {
@@ -15,25 +17,25 @@ export const useMultiInputFieldSelectedSections = params => {
15
17
  const handleStartSelectedSectionChange = useEventCallback(newSelectedSections => {
16
18
  setStartSelectedSection(newSelectedSections);
17
19
  if (getActiveField() === 'start') {
18
- params.onSelectedSectionsChange?.(newSelectedSections);
20
+ parameters.onSelectedSectionsChange?.(newSelectedSections);
19
21
  }
20
22
  });
21
23
  const handleEndSelectedSectionChange = useEventCallback(newSelectedSections => {
22
24
  setEndSelectedSection(newSelectedSections);
23
25
  if (getActiveField() === 'end') {
24
- params.onSelectedSectionsChange?.(newSelectedSections);
26
+ parameters.onSelectedSectionsChange?.(newSelectedSections);
25
27
  }
26
28
  });
27
29
  const activeField = getActiveField();
28
30
  return {
29
31
  start: {
30
- unstableFieldRef: params.unstableStartFieldRef,
31
- selectedSections: activeField === 'start' && params.selectedSections !== undefined ? params.selectedSections : startSelectedSection,
32
+ unstableFieldRef: parameters.unstableStartFieldRef,
33
+ selectedSections: activeField === 'start' && parameters.selectedSections !== undefined ? parameters.selectedSections : startSelectedSection,
32
34
  onSelectedSectionsChange: handleStartSelectedSectionChange
33
35
  },
34
36
  end: {
35
37
  unstableFieldRef: handleUnstableEndFieldRef,
36
- selectedSections: activeField === 'end' && params.selectedSections !== undefined ? params.selectedSections : endSelectedSection,
38
+ selectedSections: activeField === 'end' && parameters.selectedSections !== undefined ? parameters.selectedSections : endSelectedSection,
37
39
  onSelectedSectionsChange: handleEndSelectedSectionChange
38
40
  }
39
41
  };