@mui/x-date-pickers-pro 8.0.0-alpha.6 → 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.
- package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.d.ts +1 -1
- package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.d.ts +1 -1
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
- package/CHANGELOG.md +242 -1
- package/DateRangeCalendar/DateRangeCalendar.js +12 -10
- package/DateRangePicker/DateRangePicker.js +1 -1
- package/DateRangePicker/DateRangePicker.types.d.ts +5 -0
- package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
- package/DateRangePicker/DateRangePickerToolbar.js +27 -19
- package/DateRangePicker/shared.d.ts +1 -1
- package/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
- package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +3 -4
- package/DateTimeRangePicker/DateTimeRangePickerTabs.js +10 -9
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -3
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +29 -31
- package/DateTimeRangePicker/shared.d.ts +2 -2
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
- package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +5 -0
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
- package/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
- package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
- package/MultiInputDateRangeField/index.d.ts +5 -3
- package/MultiInputDateRangeField/index.js +2 -2
- package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.d.ts +6 -0
- package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +9 -4
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
- package/MultiInputDateTimeRangeField/index.d.ts +5 -3
- package/MultiInputDateTimeRangeField/index.js +2 -2
- package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.d.ts +6 -0
- package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +9 -4
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
- package/MultiInputTimeRangeField/index.d.ts +5 -3
- package/MultiInputTimeRangeField/index.js +2 -2
- package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.d.ts +6 -0
- package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
- package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -17
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -18
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -18
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
- package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -2
- package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +2 -0
- package/hooks/package.json +6 -0
- package/hooks/useMultiInputRangeField/index.d.ts +1 -0
- package/hooks/useMultiInputRangeField/index.js +1 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +17 -0
- package/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
- package/hooks/usePickerRangePositionContext.d.ts +7 -0
- package/hooks/usePickerRangePositionContext.js +15 -0
- package/index.d.ts +2 -0
- package/index.js +4 -2
- package/internals/hooks/models/index.d.ts +1 -1
- package/internals/hooks/models/useRangePicker.d.ts +6 -8
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +40 -67
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +3 -5
- package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +18 -9
- package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +33 -56
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +3 -5
- package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
- package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/internals/hooks/useRangePosition.d.ts +2 -2
- package/internals/hooks/useRangePosition.js +1 -1
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
- package/internals/models/dateTimeRange.d.ts +1 -6
- package/internals/models/fields.d.ts +1 -2
- package/internals/models/index.d.ts +0 -1
- package/internals/models/index.js +0 -1
- package/internals/models/managers.d.ts +3 -0
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
- package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
- package/internals/utils/createMultiInputRangeField/index.js +2 -0
- package/internals/utils/date-range-manager.js +2 -1
- package/internals/utils/releaseInfo.js +1 -1
- package/internals/utils/valueManagers.js +7 -7
- package/managers/index.d.ts +6 -0
- package/managers/index.js +3 -0
- package/managers/package.json +6 -0
- package/managers/useDateRangeManager.d.ts +15 -0
- package/managers/useDateRangeManager.js +33 -0
- package/managers/useDateTimeRangeManager.d.ts +15 -0
- package/managers/useDateTimeRangeManager.js +33 -0
- package/managers/useTimeRangeManager.d.ts +15 -0
- package/managers/useTimeRangeManager.js +31 -0
- package/models/fields.d.ts +1 -2
- package/models/index.d.ts +0 -2
- package/models/index.js +0 -2
- package/models/range.d.ts +0 -1
- package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +12 -10
- package/modern/DateRangePicker/DateRangePicker.js +1 -1
- package/modern/DateRangePicker/DateRangePickerToolbar.js +27 -19
- package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
- package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +10 -9
- package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +29 -31
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
- package/modern/MultiInputDateRangeField/index.js +2 -2
- package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
- package/modern/MultiInputDateTimeRangeField/index.js +2 -2
- package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
- package/modern/MultiInputTimeRangeField/index.js +2 -2
- package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
- package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
- package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
- package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
- package/modern/hooks/index.js +2 -0
- package/modern/hooks/useMultiInputRangeField/index.js +1 -0
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
- package/modern/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
- package/modern/hooks/usePickerRangePositionContext.js +15 -0
- package/modern/index.js +4 -2
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +40 -67
- package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +33 -56
- package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/modern/internals/hooks/useRangePosition.js +1 -1
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
- package/modern/internals/models/index.js +0 -1
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
- package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
- package/modern/internals/utils/date-range-manager.js +2 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/internals/utils/valueManagers.js +7 -7
- package/modern/managers/index.js +3 -0
- package/modern/managers/useDateRangeManager.js +33 -0
- package/modern/managers/useDateTimeRangeManager.js +33 -0
- package/modern/managers/useTimeRangeManager.js +31 -0
- package/modern/models/index.js +0 -2
- package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/node/DateRangeCalendar/DateRangeCalendar.js +12 -10
- package/node/DateRangePicker/DateRangePicker.js +1 -1
- package/node/DateRangePicker/DateRangePickerToolbar.js +26 -18
- package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
- package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +10 -9
- package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +29 -31
- package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
- package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
- package/node/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +11 -119
- package/node/MultiInputDateRangeField/index.js +3 -9
- package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +11 -119
- package/node/MultiInputDateTimeRangeField/index.js +3 -9
- package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +12 -120
- package/node/MultiInputTimeRangeField/index.js +3 -9
- package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +19 -29
- package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
- package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +19 -29
- package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
- package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +19 -29
- package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
- package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
- package/node/hooks/index.js +19 -0
- package/node/hooks/useMultiInputRangeField/index.js +12 -0
- package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
- package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
- package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
- package/node/hooks/usePickerRangePositionContext.js +22 -0
- package/node/index.js +23 -1
- package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +39 -66
- package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +41 -54
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +32 -55
- package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
- package/node/internals/hooks/useRangePosition.js +1 -1
- package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
- package/node/internals/models/index.js +0 -11
- package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +140 -0
- package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
- package/node/internals/utils/date-range-manager.js +2 -1
- package/node/internals/utils/releaseInfo.js +1 -1
- package/node/internals/utils/valueManagers.js +7 -7
- package/node/managers/index.js +26 -0
- package/node/managers/useDateRangeManager.js +40 -0
- package/node/managers/useDateTimeRangeManager.js +40 -0
- package/node/managers/useTimeRangeManager.js +38 -0
- package/node/models/index.js +0 -22
- package/package.json +5 -5
- package/themeAugmentation/overrides.d.ts +6 -4
- package/themeAugmentation/props.d.ts +2 -2
- package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -55
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -56
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -56
- package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -20
- package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
- package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
- package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
- package/internals/models/timeRange.d.ts +0 -6
- package/internals/models/timeRange.js +0 -1
- package/models/dateRange.d.ts +0 -7
- package/models/dateRange.js +0 -1
- package/models/multiInputRangeFieldClasses.d.ts +0 -7
- package/models/multiInputRangeFieldClasses.js +0 -1
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
- package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
- package/modern/internals/models/timeRange.js +0 -1
- package/modern/models/dateRange.js +0 -1
- package/modern/models/multiInputRangeFieldClasses.js +0 -1
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
- package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -121
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -121
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -121
- package/node/internals/models/timeRange.js +0 -5
- package/node/models/dateRange.js +0 -5
- package/node/models/multiInputRangeFieldClasses.js +0 -5
- /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
- /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
- /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
- /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
- /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
- /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
|
@@ -13,9 +13,10 @@ var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
|
13
13
|
var _xLicense = require("@mui/x-license");
|
|
14
14
|
var _PickersLayout = require("@mui/x-date-pickers/PickersLayout");
|
|
15
15
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
16
|
-
var
|
|
16
|
+
var _useEnrichedRangePickerField = require("../useEnrichedRangePickerField");
|
|
17
17
|
var _releaseInfo = require("../../utils/releaseInfo");
|
|
18
18
|
var _useRangePosition = require("../useRangePosition");
|
|
19
|
+
var _usePickerRangePositionContext = require("../../../hooks/usePickerRangePositionContext");
|
|
19
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
21
|
const _excluded = ["props"];
|
|
21
22
|
const releaseInfo = (0, _releaseInfo.getReleaseInfo)();
|
|
@@ -30,60 +31,46 @@ const useDesktopRangePicker = _ref => {
|
|
|
30
31
|
slotProps,
|
|
31
32
|
className,
|
|
32
33
|
sx,
|
|
33
|
-
format,
|
|
34
|
-
formatDensity,
|
|
35
|
-
enableAccessibleFieldDOMStructure,
|
|
36
|
-
selectedSections,
|
|
37
|
-
onSelectedSectionsChange,
|
|
38
|
-
timezone,
|
|
39
34
|
label,
|
|
40
35
|
inputRef,
|
|
41
36
|
name,
|
|
42
37
|
readOnly,
|
|
43
|
-
disabled,
|
|
44
38
|
autoFocus,
|
|
45
39
|
disableOpenPicker,
|
|
46
40
|
localeText,
|
|
47
41
|
reduceAnimations
|
|
48
42
|
} = props;
|
|
49
43
|
const fieldContainerRef = React.useRef(null);
|
|
50
|
-
const anchorRef = React.useRef(null);
|
|
51
44
|
const popperRef = React.useRef(null);
|
|
52
45
|
const startFieldRef = React.useRef(null);
|
|
53
46
|
const endFieldRef = React.useRef(null);
|
|
54
47
|
const singleInputFieldRef = React.useRef(null);
|
|
55
48
|
const initialView = React.useRef(props.openTo ?? null);
|
|
56
49
|
const fieldType = slots.field.fieldType ?? 'multi-input';
|
|
57
|
-
const
|
|
58
|
-
rangePosition,
|
|
59
|
-
onRangePositionChange
|
|
60
|
-
} = (0, _useRangePosition.useRangePosition)(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
|
|
50
|
+
const rangePositionResponse = (0, _useRangePosition.useRangePosition)(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
|
|
61
51
|
let fieldRef;
|
|
62
52
|
if (fieldType === 'single-input') {
|
|
63
53
|
fieldRef = singleInputFieldRef;
|
|
64
|
-
} else if (rangePosition === 'start') {
|
|
54
|
+
} else if (rangePositionResponse.rangePosition === 'start') {
|
|
65
55
|
fieldRef = startFieldRef;
|
|
66
56
|
} else {
|
|
67
57
|
fieldRef = endFieldRef;
|
|
68
58
|
}
|
|
69
59
|
const {
|
|
70
|
-
layoutProps,
|
|
71
60
|
providerProps,
|
|
72
61
|
renderCurrentView,
|
|
73
62
|
shouldRestoreFocus,
|
|
74
|
-
fieldProps: pickerFieldProps,
|
|
75
63
|
ownerState
|
|
76
64
|
} = (0, _internals.usePicker)((0, _extends2.default)({}, pickerParams, {
|
|
77
65
|
props,
|
|
78
66
|
variant: 'desktop',
|
|
79
67
|
autoFocusView: false,
|
|
80
68
|
fieldRef,
|
|
81
|
-
localeText
|
|
82
|
-
additionalViewProps: {
|
|
83
|
-
rangePosition,
|
|
84
|
-
onRangePositionChange
|
|
85
|
-
}
|
|
69
|
+
localeText
|
|
86
70
|
}));
|
|
71
|
+
|
|
72
|
+
// Temporary hack to hide the opening button on the range pickers until we have migrate them to the new opening logic.
|
|
73
|
+
providerProps.contextValue.triggerStatus = 'hidden';
|
|
87
74
|
React.useEffect(() => {
|
|
88
75
|
if (providerProps.contextValue.view) {
|
|
89
76
|
initialView.current = providerProps.contextValue.view;
|
|
@@ -107,17 +94,7 @@ const useDesktopRangePicker = _ref => {
|
|
|
107
94
|
additionalProps: (0, _extends2.default)({
|
|
108
95
|
// Internal props
|
|
109
96
|
readOnly,
|
|
110
|
-
|
|
111
|
-
format,
|
|
112
|
-
formatDensity,
|
|
113
|
-
enableAccessibleFieldDOMStructure,
|
|
114
|
-
selectedSections,
|
|
115
|
-
onSelectedSectionsChange,
|
|
116
|
-
timezone,
|
|
117
|
-
autoFocus: autoFocus && !props.open
|
|
118
|
-
}, pickerFieldProps, {
|
|
119
|
-
// onChange and value
|
|
120
|
-
|
|
97
|
+
autoFocus: autoFocus && !props.open,
|
|
121
98
|
// Forwarded props
|
|
122
99
|
className,
|
|
123
100
|
sx,
|
|
@@ -129,58 +106,54 @@ const useDesktopRangePicker = _ref => {
|
|
|
129
106
|
}),
|
|
130
107
|
ownerState
|
|
131
108
|
});
|
|
132
|
-
const
|
|
109
|
+
const enrichedFieldResponse = (0, _useEnrichedRangePickerField.useEnrichedRangePickerField)((0, _extends2.default)({
|
|
133
110
|
variant: 'desktop',
|
|
134
111
|
fieldType,
|
|
135
112
|
// These direct access to `providerProps` will go away once the range fields handle the picker opening
|
|
136
|
-
|
|
137
|
-
|
|
113
|
+
contextValue: providerProps.contextValue,
|
|
114
|
+
fieldPrivateContextValue: providerProps.fieldPrivateContextValue,
|
|
138
115
|
readOnly,
|
|
139
116
|
disableOpenPicker,
|
|
140
117
|
label,
|
|
141
118
|
localeText,
|
|
142
119
|
onBlur: handleBlur,
|
|
143
|
-
rangePosition,
|
|
144
|
-
onRangePositionChange,
|
|
145
120
|
pickerSlotProps: slotProps,
|
|
146
121
|
pickerSlots: slots,
|
|
147
122
|
fieldProps,
|
|
148
|
-
anchorRef,
|
|
123
|
+
anchorRef: providerProps.contextValue.triggerRef,
|
|
149
124
|
startFieldRef,
|
|
150
125
|
endFieldRef,
|
|
151
126
|
singleInputFieldRef,
|
|
152
127
|
currentView: providerProps.contextValue.view !== props.openTo ? providerProps.contextValue.view : undefined,
|
|
153
|
-
initialView: initialView.current ?? undefined
|
|
154
|
-
|
|
155
|
-
});
|
|
156
|
-
const slotPropsForLayout = (0, _extends2.default)({}, slotProps, {
|
|
157
|
-
tabs: (0, _extends2.default)({}, slotProps?.tabs, {
|
|
158
|
-
rangePosition,
|
|
159
|
-
onRangePositionChange
|
|
160
|
-
}),
|
|
161
|
-
toolbar: (0, _extends2.default)({}, slotProps?.toolbar, {
|
|
162
|
-
rangePosition,
|
|
163
|
-
onRangePositionChange
|
|
164
|
-
})
|
|
165
|
-
});
|
|
128
|
+
initialView: initialView.current ?? undefined
|
|
129
|
+
}, rangePositionResponse));
|
|
166
130
|
const Layout = slots?.layout ?? _PickersLayout.PickersLayout;
|
|
167
|
-
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
containerRef: popperRef,
|
|
172
|
-
anchorEl: anchorRef.current,
|
|
173
|
-
onBlur: handleBlur,
|
|
131
|
+
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerProvider, (0, _extends2.default)({}, providerProps, {
|
|
132
|
+
// This override will go away once the range fields handle the picker opening
|
|
133
|
+
fieldPrivateContextValue: (0, _extends2.default)({}, providerProps.fieldPrivateContextValue, enrichedFieldResponse.fieldPrivateContextValue),
|
|
134
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerFieldUIContextProvider, {
|
|
174
135
|
slots: slots,
|
|
175
136
|
slotProps: slotProps,
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
137
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_usePickerRangePositionContext.PickerRangePositionContext.Provider, {
|
|
138
|
+
value: rangePositionResponse,
|
|
139
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, enrichedFieldResponse.fieldProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersPopper, {
|
|
140
|
+
role: "tooltip",
|
|
141
|
+
placement: "bottom-start",
|
|
142
|
+
containerRef: popperRef,
|
|
143
|
+
anchorEl: providerProps.contextValue.triggerRef.current,
|
|
144
|
+
onBlur: handleBlur,
|
|
145
|
+
slots: slots,
|
|
146
|
+
slotProps: slotProps,
|
|
147
|
+
shouldRestoreFocus: shouldRestoreFocus,
|
|
148
|
+
reduceAnimations: reduceAnimations,
|
|
149
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
|
|
150
|
+
slots: slots,
|
|
151
|
+
slotProps: slotProps,
|
|
152
|
+
children: renderCurrentView()
|
|
153
|
+
}))
|
|
154
|
+
})]
|
|
155
|
+
})
|
|
156
|
+
})
|
|
184
157
|
}));
|
|
185
158
|
return {
|
|
186
159
|
renderPicker
|
package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js}
RENAMED
|
@@ -5,7 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.useEnrichedRangePickerField = void 0;
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
@@ -16,15 +16,14 @@ var _hooks = require("@mui/x-date-pickers/hooks");
|
|
|
16
16
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
17
17
|
const _excluded = ["clearable", "onClear"];
|
|
18
18
|
const useMultiInputFieldSlotProps = ({
|
|
19
|
+
contextValue,
|
|
19
20
|
variant,
|
|
20
|
-
open,
|
|
21
|
-
setOpen,
|
|
22
21
|
readOnly,
|
|
23
22
|
labelId,
|
|
24
23
|
disableOpenPicker,
|
|
25
24
|
onBlur,
|
|
26
25
|
rangePosition,
|
|
27
|
-
|
|
26
|
+
setRangePosition,
|
|
28
27
|
localeText: inLocaleText,
|
|
29
28
|
pickerSlotProps,
|
|
30
29
|
pickerSlots,
|
|
@@ -32,7 +31,6 @@ const useMultiInputFieldSlotProps = ({
|
|
|
32
31
|
anchorRef,
|
|
33
32
|
currentView,
|
|
34
33
|
initialView,
|
|
35
|
-
onViewChange,
|
|
36
34
|
startFieldRef,
|
|
37
35
|
endFieldRef
|
|
38
36
|
}) => {
|
|
@@ -41,7 +39,7 @@ const useMultiInputFieldSlotProps = ({
|
|
|
41
39
|
const handleEndFieldRef = (0, _useForkRef.default)(fieldProps.unstableEndFieldRef, endFieldRef);
|
|
42
40
|
const previousRangePosition = React.useRef(rangePosition);
|
|
43
41
|
React.useEffect(() => {
|
|
44
|
-
if (!open || variant === 'mobile') {
|
|
42
|
+
if (!contextValue.open || variant === 'mobile') {
|
|
45
43
|
return;
|
|
46
44
|
}
|
|
47
45
|
const currentFieldRef = rangePosition === 'start' ? startFieldRef : endFieldRef;
|
|
@@ -57,36 +55,36 @@ const useMultiInputFieldSlotProps = ({
|
|
|
57
55
|
// use the current view or `0` when the range position has just been swapped
|
|
58
56
|
previousRangePosition.current === rangePosition ? currentView : 0);
|
|
59
57
|
previousRangePosition.current = rangePosition;
|
|
60
|
-
}, [rangePosition, open, currentView, startFieldRef, endFieldRef, variant]);
|
|
58
|
+
}, [rangePosition, contextValue.open, currentView, startFieldRef, endFieldRef, variant]);
|
|
61
59
|
const openRangeStartSelection = event => {
|
|
62
60
|
event.stopPropagation();
|
|
63
|
-
|
|
61
|
+
setRangePosition('start');
|
|
64
62
|
if (!readOnly && !disableOpenPicker) {
|
|
65
63
|
event.preventDefault();
|
|
66
|
-
setOpen(true);
|
|
64
|
+
contextValue.setOpen(true);
|
|
67
65
|
}
|
|
68
66
|
};
|
|
69
67
|
const openRangeEndSelection = event => {
|
|
70
68
|
event.stopPropagation();
|
|
71
|
-
|
|
69
|
+
setRangePosition('end');
|
|
72
70
|
if (!readOnly && !disableOpenPicker) {
|
|
73
71
|
event.preventDefault();
|
|
74
|
-
setOpen(true);
|
|
72
|
+
contextValue.setOpen(true);
|
|
75
73
|
}
|
|
76
74
|
};
|
|
77
75
|
const handleFocusStart = () => {
|
|
78
|
-
if (open) {
|
|
79
|
-
|
|
76
|
+
if (contextValue.open) {
|
|
77
|
+
setRangePosition('start');
|
|
80
78
|
if (previousRangePosition.current !== 'start' && initialView) {
|
|
81
|
-
|
|
79
|
+
contextValue.setView?.(initialView);
|
|
82
80
|
}
|
|
83
81
|
}
|
|
84
82
|
};
|
|
85
83
|
const handleFocusEnd = () => {
|
|
86
|
-
if (open) {
|
|
87
|
-
|
|
84
|
+
if (contextValue.open) {
|
|
85
|
+
setRangePosition('end');
|
|
88
86
|
if (previousRangePosition.current !== 'end' && initialView) {
|
|
89
|
-
|
|
87
|
+
contextValue.setView?.(initialView);
|
|
90
88
|
}
|
|
91
89
|
}
|
|
92
90
|
};
|
|
@@ -105,8 +103,8 @@ const useMultiInputFieldSlotProps = ({
|
|
|
105
103
|
label: inLocaleText?.start ?? translations.start,
|
|
106
104
|
onKeyDown: (0, _internals.onSpaceOrEnter)(openRangeStartSelection),
|
|
107
105
|
onFocus: handleFocusStart,
|
|
108
|
-
focused: open ? rangePosition === 'start' : undefined
|
|
109
|
-
}, !readOnly && !
|
|
106
|
+
focused: contextValue.open ? rangePosition === 'start' : undefined
|
|
107
|
+
}, !readOnly && !contextValue.disabled && {
|
|
110
108
|
onClick: openRangeStartSelection
|
|
111
109
|
}, variant === 'mobile' && {
|
|
112
110
|
readOnly: true
|
|
@@ -121,8 +119,8 @@ const useMultiInputFieldSlotProps = ({
|
|
|
121
119
|
label: inLocaleText?.end ?? translations.end,
|
|
122
120
|
onKeyDown: (0, _internals.onSpaceOrEnter)(openRangeEndSelection),
|
|
123
121
|
onFocus: handleFocusEnd,
|
|
124
|
-
focused: open ? rangePosition === 'end' : undefined
|
|
125
|
-
}, !readOnly && !
|
|
122
|
+
focused: contextValue.open ? rangePosition === 'end' : undefined
|
|
123
|
+
}, !readOnly && !contextValue.disabled && {
|
|
126
124
|
onClick: openRangeEndSelection
|
|
127
125
|
}, variant === 'mobile' && {
|
|
128
126
|
readOnly: true
|
|
@@ -153,29 +151,29 @@ const useMultiInputFieldSlotProps = ({
|
|
|
153
151
|
slots,
|
|
154
152
|
slotProps
|
|
155
153
|
});
|
|
156
|
-
return
|
|
154
|
+
return {
|
|
155
|
+
fieldProps: enrichedFieldProps,
|
|
156
|
+
fieldPrivateContextValue: {}
|
|
157
|
+
};
|
|
157
158
|
};
|
|
158
159
|
const useSingleInputFieldSlotProps = ({
|
|
160
|
+
contextValue,
|
|
161
|
+
fieldPrivateContextValue,
|
|
159
162
|
variant,
|
|
160
|
-
open,
|
|
161
|
-
setOpen,
|
|
162
163
|
readOnly,
|
|
163
164
|
labelId,
|
|
164
165
|
disableOpenPicker,
|
|
165
166
|
label,
|
|
166
167
|
onBlur,
|
|
167
168
|
rangePosition,
|
|
168
|
-
|
|
169
|
+
setRangePosition,
|
|
169
170
|
singleInputFieldRef,
|
|
170
|
-
pickerSlots,
|
|
171
|
-
pickerSlotProps,
|
|
172
171
|
fieldProps,
|
|
173
|
-
anchorRef,
|
|
174
172
|
currentView
|
|
175
173
|
}) => {
|
|
176
174
|
const handleFieldRef = (0, _useForkRef.default)(fieldProps.unstableFieldRef, singleInputFieldRef);
|
|
177
175
|
React.useEffect(() => {
|
|
178
|
-
if (!open || !singleInputFieldRef.current || variant === 'mobile') {
|
|
176
|
+
if (!contextValue.open || !singleInputFieldRef.current || variant === 'mobile') {
|
|
179
177
|
return;
|
|
180
178
|
}
|
|
181
179
|
if (singleInputFieldRef.current.isFieldFocused()) {
|
|
@@ -188,7 +186,7 @@ const useSingleInputFieldSlotProps = ({
|
|
|
188
186
|
const newSelectedSection = rangePosition === 'start' ? sections.indexOf(currentView) : sections.lastIndexOf(currentView);
|
|
189
187
|
singleInputFieldRef.current?.focusField(newSelectedSection);
|
|
190
188
|
}
|
|
191
|
-
}, [rangePosition, open, currentView, singleInputFieldRef, variant]);
|
|
189
|
+
}, [rangePosition, contextValue.open, currentView, singleInputFieldRef, variant]);
|
|
192
190
|
const updateRangePosition = () => {
|
|
193
191
|
if (!singleInputFieldRef.current?.isFieldFocused()) {
|
|
194
192
|
return;
|
|
@@ -197,52 +195,41 @@ const useSingleInputFieldSlotProps = ({
|
|
|
197
195
|
const activeSectionIndex = singleInputFieldRef.current?.getActiveSectionIndex();
|
|
198
196
|
const domRangePosition = activeSectionIndex == null || activeSectionIndex < sections.length / 2 ? 'start' : 'end';
|
|
199
197
|
if (domRangePosition != null && domRangePosition !== rangePosition) {
|
|
200
|
-
|
|
198
|
+
setRangePosition(domRangePosition);
|
|
201
199
|
}
|
|
202
200
|
};
|
|
203
201
|
const handleSelectedSectionsChange = (0, _useEventCallback.default)(selectedSection => {
|
|
204
202
|
setTimeout(updateRangePosition);
|
|
205
|
-
|
|
203
|
+
fieldPrivateContextValue.onSelectedSectionsChange?.(selectedSection);
|
|
206
204
|
});
|
|
207
205
|
const openPicker = event => {
|
|
208
206
|
event.stopPropagation();
|
|
209
207
|
if (!readOnly && !disableOpenPicker) {
|
|
210
208
|
event.preventDefault();
|
|
211
|
-
setOpen(true);
|
|
209
|
+
contextValue.setOpen(true);
|
|
212
210
|
}
|
|
213
211
|
};
|
|
214
|
-
const slots = (0, _extends2.default)({}, fieldProps.slots, {
|
|
215
|
-
textField: pickerSlots?.textField,
|
|
216
|
-
clearButton: pickerSlots?.clearButton,
|
|
217
|
-
clearIcon: pickerSlots?.clearIcon
|
|
218
|
-
});
|
|
219
|
-
const slotProps = (0, _extends2.default)({}, fieldProps.slotProps, {
|
|
220
|
-
textField: pickerSlotProps?.textField,
|
|
221
|
-
clearButton: pickerSlotProps?.clearButton,
|
|
222
|
-
clearIcon: pickerSlotProps?.clearIcon
|
|
223
|
-
});
|
|
224
212
|
const enrichedFieldProps = (0, _extends2.default)({}, fieldProps, {
|
|
225
|
-
slots,
|
|
226
|
-
slotProps,
|
|
227
213
|
label,
|
|
228
214
|
unstableFieldRef: handleFieldRef,
|
|
229
215
|
onKeyDown: (0, _internals.onSpaceOrEnter)(openPicker, fieldProps.onKeyDown),
|
|
230
|
-
onSelectedSectionsChange: handleSelectedSectionsChange,
|
|
231
216
|
onBlur,
|
|
232
|
-
|
|
233
|
-
ref: anchorRef
|
|
234
|
-
}, fieldProps?.InputProps),
|
|
235
|
-
focused: open ? true : undefined
|
|
217
|
+
focused: contextValue.open ? true : undefined
|
|
236
218
|
}, labelId != null && {
|
|
237
219
|
id: labelId
|
|
238
220
|
}, variant === 'mobile' && {
|
|
239
221
|
readOnly: true
|
|
240
|
-
}, !readOnly && !
|
|
222
|
+
}, !readOnly && !contextValue.disabled && {
|
|
241
223
|
onClick: openPicker
|
|
242
224
|
});
|
|
243
|
-
return
|
|
225
|
+
return {
|
|
226
|
+
fieldProps: enrichedFieldProps,
|
|
227
|
+
fieldPrivateContextValue: {
|
|
228
|
+
onSelectedSectionsChange: handleSelectedSectionsChange
|
|
229
|
+
}
|
|
230
|
+
};
|
|
244
231
|
};
|
|
245
|
-
const
|
|
232
|
+
const useEnrichedRangePickerField = params => {
|
|
246
233
|
/* eslint-disable react-hooks/rules-of-hooks */
|
|
247
234
|
if (process.env.NODE_ENV !== 'production') {
|
|
248
235
|
const fieldTypeRef = React.useRef(params.fieldType);
|
|
@@ -256,4 +243,4 @@ const useEnrichedRangePickerFieldProps = params => {
|
|
|
256
243
|
return useSingleInputFieldSlotProps(params);
|
|
257
244
|
/* eslint-enable react-hooks/rules-of-hooks */
|
|
258
245
|
};
|
|
259
|
-
exports.
|
|
246
|
+
exports.useEnrichedRangePickerField = useEnrichedRangePickerField;
|
|
@@ -15,9 +15,10 @@ var _PickersLayout = require("@mui/x-date-pickers/PickersLayout");
|
|
|
15
15
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
16
16
|
var _hooks = require("@mui/x-date-pickers/hooks");
|
|
17
17
|
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
18
|
-
var
|
|
18
|
+
var _useEnrichedRangePickerField = require("../useEnrichedRangePickerField");
|
|
19
19
|
var _releaseInfo = require("../../utils/releaseInfo");
|
|
20
20
|
var _useRangePosition = require("../useRangePosition");
|
|
21
|
+
var _usePickerRangePositionContext = require("../../../hooks/usePickerRangePositionContext");
|
|
21
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
23
|
const _excluded = ["props"];
|
|
23
24
|
const releaseInfo = (0, _releaseInfo.getReleaseInfo)();
|
|
@@ -32,17 +33,10 @@ const useMobileRangePicker = _ref => {
|
|
|
32
33
|
slotProps: innerSlotProps,
|
|
33
34
|
className,
|
|
34
35
|
sx,
|
|
35
|
-
format,
|
|
36
|
-
formatDensity,
|
|
37
|
-
enableAccessibleFieldDOMStructure,
|
|
38
|
-
selectedSections,
|
|
39
|
-
onSelectedSectionsChange,
|
|
40
|
-
timezone,
|
|
41
36
|
label,
|
|
42
37
|
inputRef,
|
|
43
38
|
name,
|
|
44
39
|
readOnly,
|
|
45
|
-
disabled,
|
|
46
40
|
disableOpenPicker,
|
|
47
41
|
localeText
|
|
48
42
|
} = props;
|
|
@@ -50,37 +44,31 @@ const useMobileRangePicker = _ref => {
|
|
|
50
44
|
const endFieldRef = React.useRef(null);
|
|
51
45
|
const singleInputFieldRef = React.useRef(null);
|
|
52
46
|
const fieldType = slots.field.fieldType ?? 'multi-input';
|
|
53
|
-
const
|
|
54
|
-
rangePosition,
|
|
55
|
-
onRangePositionChange
|
|
56
|
-
} = (0, _useRangePosition.useRangePosition)(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
|
|
47
|
+
const rangePositionResponse = (0, _useRangePosition.useRangePosition)(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
|
|
57
48
|
const labelId = (0, _useId.default)();
|
|
58
49
|
const contextTranslations = (0, _hooks.usePickerTranslations)();
|
|
59
50
|
let fieldRef;
|
|
60
51
|
if (fieldType === 'single-input') {
|
|
61
52
|
fieldRef = singleInputFieldRef;
|
|
62
|
-
} else if (rangePosition === 'start') {
|
|
53
|
+
} else if (rangePositionResponse.rangePosition === 'start') {
|
|
63
54
|
fieldRef = startFieldRef;
|
|
64
55
|
} else {
|
|
65
56
|
fieldRef = endFieldRef;
|
|
66
57
|
}
|
|
67
58
|
const {
|
|
68
|
-
layoutProps,
|
|
69
59
|
providerProps,
|
|
70
60
|
renderCurrentView,
|
|
71
|
-
fieldProps: pickerFieldProps,
|
|
72
61
|
ownerState
|
|
73
62
|
} = (0, _internals.usePicker)((0, _extends2.default)({}, pickerParams, {
|
|
74
63
|
props,
|
|
75
64
|
variant: 'mobile',
|
|
76
65
|
autoFocusView: true,
|
|
77
66
|
fieldRef,
|
|
78
|
-
localeText
|
|
79
|
-
additionalViewProps: {
|
|
80
|
-
rangePosition,
|
|
81
|
-
onRangePositionChange
|
|
82
|
-
}
|
|
67
|
+
localeText
|
|
83
68
|
}));
|
|
69
|
+
|
|
70
|
+
// Temporary hack to hide the opening button on the range pickers until we have migrate them to the new opening logic.
|
|
71
|
+
providerProps.contextValue.triggerStatus = 'hidden';
|
|
84
72
|
const Field = slots.field;
|
|
85
73
|
const fieldProps = (0, _useSlotProps.default)({
|
|
86
74
|
elementType: Field,
|
|
@@ -88,16 +76,6 @@ const useMobileRangePicker = _ref => {
|
|
|
88
76
|
additionalProps: (0, _extends2.default)({
|
|
89
77
|
// Internal props
|
|
90
78
|
readOnly: readOnly ?? true,
|
|
91
|
-
disabled,
|
|
92
|
-
format,
|
|
93
|
-
formatDensity,
|
|
94
|
-
enableAccessibleFieldDOMStructure,
|
|
95
|
-
selectedSections,
|
|
96
|
-
onSelectedSectionsChange,
|
|
97
|
-
timezone
|
|
98
|
-
}, pickerFieldProps, {
|
|
99
|
-
// onChange and value
|
|
100
|
-
|
|
101
79
|
// Forwarded props
|
|
102
80
|
className,
|
|
103
81
|
sx
|
|
@@ -109,37 +87,24 @@ const useMobileRangePicker = _ref => {
|
|
|
109
87
|
ownerState
|
|
110
88
|
});
|
|
111
89
|
const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
|
|
112
|
-
const
|
|
90
|
+
const enrichedFieldResponse = (0, _useEnrichedRangePickerField.useEnrichedRangePickerField)((0, _extends2.default)({
|
|
113
91
|
variant: 'mobile',
|
|
114
92
|
fieldType,
|
|
115
93
|
// These direct access to `providerProps` will go away once the range fields handle the picker opening
|
|
116
|
-
|
|
117
|
-
|
|
94
|
+
contextValue: providerProps.contextValue,
|
|
95
|
+
fieldPrivateContextValue: providerProps.fieldPrivateContextValue,
|
|
118
96
|
readOnly,
|
|
119
97
|
labelId,
|
|
120
98
|
disableOpenPicker,
|
|
121
99
|
label,
|
|
122
100
|
localeText,
|
|
123
|
-
rangePosition,
|
|
124
|
-
onRangePositionChange,
|
|
125
101
|
pickerSlots: slots,
|
|
126
102
|
pickerSlotProps: innerSlotProps,
|
|
127
103
|
fieldProps,
|
|
128
104
|
startFieldRef,
|
|
129
105
|
endFieldRef,
|
|
130
106
|
singleInputFieldRef
|
|
131
|
-
});
|
|
132
|
-
const slotPropsForLayout = (0, _extends2.default)({}, innerSlotProps, {
|
|
133
|
-
tabs: (0, _extends2.default)({}, innerSlotProps?.tabs, {
|
|
134
|
-
rangePosition,
|
|
135
|
-
onRangePositionChange
|
|
136
|
-
}),
|
|
137
|
-
toolbar: (0, _extends2.default)({}, innerSlotProps?.toolbar, {
|
|
138
|
-
titleId: labelId,
|
|
139
|
-
rangePosition,
|
|
140
|
-
onRangePositionChange
|
|
141
|
-
})
|
|
142
|
-
});
|
|
107
|
+
}, rangePositionResponse));
|
|
143
108
|
const Layout = slots?.layout ?? _PickersLayout.PickersLayout;
|
|
144
109
|
const finalLocaleText = (0, _extends2.default)({}, contextTranslations, localeText);
|
|
145
110
|
let labelledById = pickerParams.valueType === 'date-time' ? `${labelId}-start-toolbar ${labelId}-end-toolbar` : labelId;
|
|
@@ -158,20 +123,32 @@ const useMobileRangePicker = _ref => {
|
|
|
158
123
|
labelledById = labels.length > 0 ? labels.join(' ') : undefined;
|
|
159
124
|
}
|
|
160
125
|
const slotProps = (0, _extends2.default)({}, innerSlotProps, {
|
|
126
|
+
toolbar: (0, _extends2.default)({}, innerSlotProps?.toolbar, {
|
|
127
|
+
titleId: labelId
|
|
128
|
+
}),
|
|
161
129
|
mobilePaper: (0, _extends2.default)({
|
|
162
130
|
'aria-labelledby': labelledById
|
|
163
131
|
}, innerSlotProps?.mobilePaper)
|
|
164
132
|
});
|
|
165
|
-
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.
|
|
166
|
-
|
|
133
|
+
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerProvider, (0, _extends2.default)({}, providerProps, {
|
|
134
|
+
// This override will go away once the range fields handle the picker opening
|
|
135
|
+
fieldPrivateContextValue: (0, _extends2.default)({}, providerProps.fieldPrivateContextValue, enrichedFieldResponse.fieldPrivateContextValue),
|
|
136
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerFieldUIContextProvider, {
|
|
167
137
|
slots: slots,
|
|
168
138
|
slotProps: slotProps,
|
|
169
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
139
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_usePickerRangePositionContext.PickerRangePositionContext.Provider, {
|
|
140
|
+
value: rangePositionResponse,
|
|
141
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, enrichedFieldResponse.fieldProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersModalDialog, {
|
|
142
|
+
slots: slots,
|
|
143
|
+
slotProps: slotProps,
|
|
144
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
|
|
145
|
+
slots: slots,
|
|
146
|
+
slotProps: slotProps,
|
|
147
|
+
children: renderCurrentView()
|
|
148
|
+
}))
|
|
149
|
+
})]
|
|
150
|
+
})
|
|
151
|
+
})
|
|
175
152
|
}));
|
|
176
153
|
return {
|
|
177
154
|
renderPicker
|
|
@@ -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
|
+
}
|