@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
|
@@ -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"
|
|
4
|
+
const _excluded = ["slots", "slotProps"];
|
|
6
5
|
import * as React from 'react';
|
|
7
6
|
import PropTypes from 'prop-types';
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
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
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import { PickerRangeValue, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
6
|
-
import { BuiltInFieldTextFieldProps, FieldOwnerState } from '@mui/x-date-pickers/models';
|
|
7
|
-
import { ExportedUseClearableFieldProps, UseClearableFieldSlots, UseClearableFieldSlotProps } from '@mui/x-date-pickers/hooks';
|
|
8
|
-
import { UseDateTimeRangeFieldProps } from '../internals/models';
|
|
9
|
-
import { DateTimeRangeValidationError } from '../models';
|
|
10
|
-
export interface UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, ExportedUseClearableFieldProps, Pick<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError>, 'unstableFieldRef'> {
|
|
1
|
+
import { ExportedPickerFieldUIProps, PickerFieldUISlots, PickerFieldUISlotProps } from '@mui/x-date-pickers/internals';
|
|
2
|
+
import { BuiltInFieldTextFieldProps } from '@mui/x-date-pickers/models';
|
|
3
|
+
import { DateTimeRangeManagerFieldInternalProps } from '../managers/useDateTimeRangeManager';
|
|
4
|
+
export interface UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends DateTimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, Omit<ExportedPickerFieldUIProps, 'openPickerButtonPosition'> {
|
|
11
5
|
}
|
|
12
6
|
export type SingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = Omit<BuiltInFieldTextFieldProps<TEnableAccessibleFieldDOMStructure>, keyof UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
|
|
13
7
|
/**
|
|
@@ -21,13 +15,7 @@ export type SingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructur
|
|
|
21
15
|
*/
|
|
22
16
|
slotProps?: SingleInputDateTimeRangeFieldSlotProps;
|
|
23
17
|
};
|
|
24
|
-
export interface SingleInputDateTimeRangeFieldSlots extends
|
|
25
|
-
/**
|
|
26
|
-
* Form control with an input to render the value.
|
|
27
|
-
* @default <PickersTextField />, or <TextField /> from '@mui/material' if `enableAccessibleFieldDOMStructure` is `false`.
|
|
28
|
-
*/
|
|
29
|
-
textField?: React.ElementType;
|
|
18
|
+
export interface SingleInputDateTimeRangeFieldSlots extends PickerFieldUISlots {
|
|
30
19
|
}
|
|
31
|
-
export interface SingleInputDateTimeRangeFieldSlotProps extends
|
|
32
|
-
textField?: SlotComponentPropsFromProps<PickersTextFieldProps | TextFieldProps, {}, FieldOwnerState>;
|
|
20
|
+
export interface SingleInputDateTimeRangeFieldSlotProps extends PickerFieldUISlotProps {
|
|
33
21
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseSingleInputDateTimeRangeFieldProps } from './SingleInputDateTimeRangeField.types';
|
|
2
|
-
export declare const useSingleInputDateTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(
|
|
2
|
+
export declare const useSingleInputDateTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "enableAccessibleFieldDOMStructure" | "unstableFieldRef" | "referenceDate" | "formatDensity" | "shouldRespectLeadingZeros" | "selectedSections" | "onSelectedSectionsChange" | "timezone" | "ampm" | "disableFuture" | "maxDate" | "disablePast" | "minDate" | "minTime" | "maxTime" | "minutesStep" | "shouldDisableTime" | "disableIgnoringDatePartForTimeValidation" | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "minDateTime" | "maxDateTime" | "unstableStartFieldRef" | "unstableEndFieldRef" | "dateSeparator">>;
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import { useField, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
|
|
3
|
+
import { useField, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
|
|
5
4
|
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const props = useDefaultizedDateTimeField(inProps);
|
|
5
|
+
import { useDateTimeRangeManager } from "../managers/index.js";
|
|
6
|
+
export const useSingleInputDateTimeRangeField = props => {
|
|
7
|
+
const manager = useDateTimeRangeManager(props);
|
|
10
8
|
const {
|
|
11
9
|
forwardedProps,
|
|
12
10
|
internalProps
|
|
13
11
|
} = useSplitFieldProps(props, 'date-time');
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
|
|
13
|
+
manager,
|
|
14
|
+
internalProps
|
|
15
|
+
});
|
|
17
16
|
return useField({
|
|
18
17
|
forwardedProps,
|
|
19
|
-
internalProps,
|
|
20
|
-
valueManager:
|
|
21
|
-
fieldValueManager,
|
|
22
|
-
validator:
|
|
23
|
-
valueType:
|
|
18
|
+
internalProps: internalPropsWithDefaults,
|
|
19
|
+
valueManager: manager.internal_valueManager,
|
|
20
|
+
fieldValueManager: manager.internal_fieldValueManager,
|
|
21
|
+
validator: manager.validator,
|
|
22
|
+
valueType: manager.valueType,
|
|
23
|
+
getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
|
|
24
24
|
});
|
|
25
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"
|
|
4
|
+
const _excluded = ["slots", "slotProps"];
|
|
6
5
|
import * as React from 'react';
|
|
7
6
|
import PropTypes from 'prop-types';
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
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
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
|
|
6
|
-
import { PickersTextFieldProps } from '@mui/x-date-pickers/PickersTextField';
|
|
7
|
-
import { ExportedUseClearableFieldProps, UseClearableFieldSlots, UseClearableFieldSlotProps } from '@mui/x-date-pickers/hooks';
|
|
8
|
-
import { UseTimeRangeFieldProps } from '../internals/models';
|
|
9
|
-
import { TimeRangeValidationError } from '../models';
|
|
10
|
-
export interface UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, ExportedUseClearableFieldProps, Pick<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TimeRangeValidationError>, 'unstableFieldRef'> {
|
|
1
|
+
import { ExportedPickerFieldUIProps, PickerFieldUISlots, PickerFieldUISlotProps } from '@mui/x-date-pickers/internals';
|
|
2
|
+
import { BuiltInFieldTextFieldProps } from '@mui/x-date-pickers/models';
|
|
3
|
+
import { TimeRangeManagerFieldInternalProps } from '../managers/useTimeRangeManager';
|
|
4
|
+
export interface UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends TimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, Omit<ExportedPickerFieldUIProps, 'openPickerButtonPosition'> {
|
|
11
5
|
}
|
|
12
6
|
export type SingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = Omit<BuiltInFieldTextFieldProps<TEnableAccessibleFieldDOMStructure>, keyof UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
|
|
13
7
|
/**
|
|
@@ -21,13 +15,7 @@ export type SingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure ex
|
|
|
21
15
|
*/
|
|
22
16
|
slotProps?: SingleInputTimeRangeFieldSlotProps;
|
|
23
17
|
};
|
|
24
|
-
export interface SingleInputTimeRangeFieldSlots extends
|
|
25
|
-
/**
|
|
26
|
-
* Form control with an input to render the value.
|
|
27
|
-
* @default <PickersTextField />, or <TextField /> from '@mui/material' if `enableAccessibleFieldDOMStructure` is `false`.
|
|
28
|
-
*/
|
|
29
|
-
textField?: React.ElementType;
|
|
18
|
+
export interface SingleInputTimeRangeFieldSlots extends PickerFieldUISlots {
|
|
30
19
|
}
|
|
31
|
-
export interface SingleInputTimeRangeFieldSlotProps extends
|
|
32
|
-
textField?: SlotComponentPropsFromProps<PickersTextFieldProps | TextFieldProps, {}, FieldOwnerState>;
|
|
20
|
+
export interface SingleInputTimeRangeFieldSlotProps extends PickerFieldUISlotProps {
|
|
33
21
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseSingleInputTimeRangeFieldProps } from './SingleInputTimeRangeField.types';
|
|
2
|
-
export declare const useSingleInputTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(
|
|
2
|
+
export declare const useSingleInputTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "enableAccessibleFieldDOMStructure" | "unstableFieldRef" | "referenceDate" | "formatDensity" | "shouldRespectLeadingZeros" | "selectedSections" | "onSelectedSectionsChange" | "timezone" | "ampm" | keyof import("@mui/x-date-pickers/internals").BaseTimeValidationProps | keyof import("@mui/x-date-pickers/internals").TimeValidationProps | "unstableStartFieldRef" | "unstableEndFieldRef" | "dateSeparator">>;
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import { useField, useDefaultizedTimeField } from '@mui/x-date-pickers/internals';
|
|
3
|
+
import { useField, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
|
|
5
4
|
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const props = useDefaultizedTimeField(inProps);
|
|
5
|
+
import { useTimeRangeManager } from "../managers/index.js";
|
|
6
|
+
export const useSingleInputTimeRangeField = props => {
|
|
7
|
+
const manager = useTimeRangeManager(props);
|
|
10
8
|
const {
|
|
11
9
|
forwardedProps,
|
|
12
10
|
internalProps
|
|
13
11
|
} = useSplitFieldProps(props, 'time');
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
|
|
13
|
+
manager,
|
|
14
|
+
internalProps
|
|
15
|
+
});
|
|
17
16
|
return useField({
|
|
18
17
|
forwardedProps,
|
|
19
|
-
internalProps,
|
|
20
|
-
valueManager:
|
|
21
|
-
fieldValueManager,
|
|
22
|
-
validator:
|
|
23
|
-
valueType:
|
|
18
|
+
internalProps: internalPropsWithDefaults,
|
|
19
|
+
valueManager: manager.internal_valueManager,
|
|
20
|
+
fieldValueManager: manager.internal_fieldValueManager,
|
|
21
|
+
validator: manager.validator,
|
|
22
|
+
valueType: manager.valueType,
|
|
23
|
+
getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
|
|
24
24
|
});
|
|
25
25
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DateOrTimeViewWithMeridiem } from '@mui/x-date-pickers/internals';
|
|
3
3
|
import { DateRangeCalendarProps } from '../DateRangeCalendar';
|
|
4
|
-
export interface DateRangeViewRendererProps<TView extends DateOrTimeViewWithMeridiem> extends Omit<DateRangeCalendarProps, 'views'> {
|
|
4
|
+
export interface DateRangeViewRendererProps<TView extends DateOrTimeViewWithMeridiem> extends Omit<DateRangeCalendarProps, 'views' | 'onRangePositionChange' | 'rangePosition' | 'defaultRangePosition'> {
|
|
5
5
|
views: readonly TView[];
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* We don't pass all the props down to `DateRangeCalendar`,
|
|
9
9
|
* because otherwise some unwanted props would be passed to the HTML element.
|
|
10
10
|
*/
|
|
11
|
-
export declare const renderDateRangeViewCalendar: ({ value, defaultValue, referenceDate, onChange, className, classes, disableFuture, disablePast, minDate, maxDate, shouldDisableDate, reduceAnimations, onMonthChange,
|
|
11
|
+
export declare const renderDateRangeViewCalendar: ({ value, defaultValue, referenceDate, onChange, className, classes, disableFuture, disablePast, minDate, maxDate, shouldDisableDate, reduceAnimations, onMonthChange, calendars, currentMonthCalendarPosition, slots, slotProps, loading, renderLoading, disableHighlightToday, readOnly, disabled, showDaysOutsideCurrentMonth, dayOfWeekFormatter, disableAutoMonthSwitching, sx, autoFocus, fixedWeekNumber, disableDragEditing, displayWeekNumber, timezone, availableRangePositions, views, view, onViewChange, }: DateRangeViewRendererProps<"day">) => React.JSX.Element;
|
|
@@ -19,9 +19,6 @@ export const renderDateRangeViewCalendar = ({
|
|
|
19
19
|
shouldDisableDate,
|
|
20
20
|
reduceAnimations,
|
|
21
21
|
onMonthChange,
|
|
22
|
-
rangePosition,
|
|
23
|
-
defaultRangePosition,
|
|
24
|
-
onRangePositionChange,
|
|
25
22
|
calendars,
|
|
26
23
|
currentMonthCalendarPosition,
|
|
27
24
|
slots,
|
|
@@ -58,9 +55,6 @@ export const renderDateRangeViewCalendar = ({
|
|
|
58
55
|
shouldDisableDate: shouldDisableDate,
|
|
59
56
|
reduceAnimations: reduceAnimations,
|
|
60
57
|
onMonthChange: onMonthChange,
|
|
61
|
-
rangePosition: rangePosition,
|
|
62
|
-
defaultRangePosition: defaultRangePosition,
|
|
63
|
-
onRangePositionChange: onRangePositionChange,
|
|
64
58
|
calendars: calendars,
|
|
65
59
|
currentMonthCalendarPosition: currentMonthCalendarPosition,
|
|
66
60
|
slots: slots,
|
package/hooks/index.d.ts
ADDED
package/hooks/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useMultiInputRangeField } from './useMultiInputRangeField';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useMultiInputRangeField } from "./useMultiInputRangeField.js";
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerFieldInternalProps, UseFieldResponse } from '@mui/x-date-pickers/internals';
|
|
2
|
+
import { PickerAnyRangeManager } from '../../internals/models/managers';
|
|
3
|
+
/**
|
|
4
|
+
* Basic example:
|
|
5
|
+
*
|
|
6
|
+
* ```tsx
|
|
7
|
+
* import Box from '@mui/material/Box';
|
|
8
|
+
* import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
9
|
+
* import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
10
|
+
* import { useDateRangeManager } from '@mui/x-date-pickers-pro/managers';
|
|
11
|
+
*
|
|
12
|
+
* function MultiInputField(props) {
|
|
13
|
+
* const manager = useDateRangeManager();
|
|
14
|
+
* const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
|
|
15
|
+
* const { startDate, endDate } = useMultiInputRangeField({
|
|
16
|
+
* manager,
|
|
17
|
+
* internalProps,
|
|
18
|
+
* startForwardedProps: forwardedProps,
|
|
19
|
+
* endForwardedProps: forwardedProps,
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* return (
|
|
23
|
+
* <Box {...forwardedProps}>
|
|
24
|
+
* <PickersTextField {...startDate} />
|
|
25
|
+
* <span>{' – '}</span>
|
|
26
|
+
* <PickersTextField {...endDate} />
|
|
27
|
+
* </Box>
|
|
28
|
+
* );
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @param {UseMultiInputRangeFieldParameters<TManager, TForwardedProps>} parameters The parameters of the hook.
|
|
33
|
+
* @param {TManager} parameters.manager The manager of the field.
|
|
34
|
+
* @param {PickerManagerFieldInternalProps<TManager>} parameters.internalProps The internal props of the field.
|
|
35
|
+
* @param {TForwardedProps} parameters.startForwardedProps The forwarded props of the start field.
|
|
36
|
+
* @param {TForwardedProps} parameters.endForwardedProps The forwarded props of the end field.
|
|
37
|
+
* @returns {UseMultiInputRangeFieldReturnValue<TManager, TForwardedProps>} The props to pass to the start and the end components.
|
|
38
|
+
*/
|
|
39
|
+
export declare function useMultiInputRangeField<TManager extends PickerAnyRangeManager, TForwardedProps extends {
|
|
40
|
+
[key: string]: any;
|
|
41
|
+
}>(parameters: UseMultiInputRangeFieldParameters<TManager, TForwardedProps>): UseMultiInputRangeFieldReturnValue<TManager, TForwardedProps>;
|
|
42
|
+
interface UseMultiInputRangeFieldParameters<TManager extends PickerAnyRangeManager, TForwardedProps extends {}> {
|
|
43
|
+
manager: TManager;
|
|
44
|
+
internalProps: PickerManagerFieldInternalProps<TManager>;
|
|
45
|
+
startForwardedProps: TForwardedProps;
|
|
46
|
+
endForwardedProps: TForwardedProps;
|
|
47
|
+
}
|
|
48
|
+
interface UseMultiInputRangeFieldReturnValue<TManager extends PickerAnyRangeManager, TForwardedProps extends {}> {
|
|
49
|
+
startDate: Omit<UseFieldResponse<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TForwardedProps>, 'clearable' | 'onClear'>;
|
|
50
|
+
endDate: Omit<UseFieldResponse<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TForwardedProps>, 'clearable' | 'onClear'>;
|
|
51
|
+
enableAccessibleFieldDOMStructure: PickerManagerEnableAccessibleFieldDOMStructure<TManager>;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PickerRangeValue, PickerValue, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
3
|
+
import { FieldRef, FieldSelectedSections } from '@mui/x-date-pickers/models';
|
|
4
|
+
import { MultiInputFieldRefs } from '../../models';
|
|
5
|
+
interface UseMultiInputRangeFieldSelectedSectionsParameters extends Pick<UseFieldInternalProps<PickerRangeValue, any, any>, 'selectedSections' | 'onSelectedSectionsChange'>, MultiInputFieldRefs {
|
|
6
|
+
}
|
|
7
|
+
interface UseMultiInputFieldSelectedSectionsResponseItem {
|
|
8
|
+
unstableFieldRef?: React.Ref<FieldRef<PickerValue>>;
|
|
9
|
+
selectedSections: FieldSelectedSections;
|
|
10
|
+
onSelectedSectionsChange: (newSelectedSections: FieldSelectedSections) => void;
|
|
11
|
+
}
|
|
12
|
+
interface UseMultiInputFieldSelectedSectionsResponse {
|
|
13
|
+
start: UseMultiInputFieldSelectedSectionsResponseItem;
|
|
14
|
+
end: UseMultiInputFieldSelectedSectionsResponseItem;
|
|
15
|
+
}
|
|
16
|
+
export declare const useMultiInputRangeFieldSelectedSections: (parameters: UseMultiInputRangeFieldSelectedSectionsParameters) => UseMultiInputFieldSelectedSectionsResponse;
|
|
17
|
+
export {};
|