@mui/x-date-pickers-pro 8.0.0-alpha.1 → 8.0.0-alpha.10
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 +1903 -231
- package/DateRangeCalendar/DateRangeCalendar.js +15 -13
- package/DateRangePicker/DateRangePicker.js +1 -4
- package/DateRangePicker/DateRangePicker.types.d.ts +6 -2
- package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
- package/DateRangePicker/DateRangePickerToolbar.js +33 -41
- package/DateRangePicker/shared.d.ts +4 -3
- package/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
- package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +1 -2
- package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +4 -5
- package/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -5
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
- package/DateTimeRangePicker/shared.d.ts +6 -5
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
- package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +7 -2
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +2 -3
- package/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
- package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +2 -2
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +2 -3
- package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
- 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 +15 -121
- 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 +16 -122
- 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/README.md +8 -5
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
- package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -16
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -17
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -17
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
- package/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
- package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +2 -2
- 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/{modern/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 +8 -11
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +8 -10
- package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +25 -16
- package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -9
- package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
- package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/internals/hooks/useRangePosition.d.ts +4 -3
- package/internals/hooks/useRangePosition.js +1 -1
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -12
- package/internals/models/dateTimeRange.d.ts +1 -6
- package/internals/models/fields.d.ts +7 -11
- 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 +136 -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-fields-utils.d.ts +6 -6
- package/internals/utils/date-range-manager.js +2 -1
- package/internals/utils/releaseInfo.js +1 -1
- package/internals/utils/valueManagers.d.ts +4 -3
- 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 +7 -11
- package/models/index.d.ts +1 -2
- package/models/index.js +1 -2
- package/models/range.d.ts +0 -2
- package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +15 -13
- package/modern/DateRangePicker/DateRangePicker.js +1 -4
- package/modern/DateRangePicker/DateRangePickerToolbar.js +33 -41
- package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
- package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
- package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
- package/modern/MultiInputDateRangeField/index.js +2 -2
- package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
- package/modern/MultiInputDateTimeRangeField/index.js +2 -2
- package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
- package/modern/MultiInputTimeRangeField/index.js +2 -2
- package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
- package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
- package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
- package/modern/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
- 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/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/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 +68 -100
- package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
- package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/modern/internals/hooks/useRangePosition.js +1 -1
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
- package/modern/internals/models/index.js +0 -1
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -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 +1 -2
- package/modern/validation/validateDateRange.js +8 -0
- package/modern/validation/validateDateTimeRange.js +4 -0
- package/modern/validation/validateTimeRange.js +8 -0
- package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/node/DateRangeCalendar/DateRangeCalendar.js +14 -12
- package/node/DateRangePicker/DateRangePicker.js +1 -4
- package/node/DateRangePicker/DateRangePickerToolbar.js +31 -39
- package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
- package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +33 -31
- package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
- package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +80 -108
- package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
- package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
- package/node/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
- package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +14 -124
- package/node/MultiInputDateRangeField/index.js +3 -9
- package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +14 -124
- package/node/MultiInputDateTimeRangeField/index.js +3 -9
- package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -125
- package/node/MultiInputTimeRangeField/index.js +3 -9
- package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +22 -32
- package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
- package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +22 -32
- package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
- package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +22 -32
- package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
- package/node/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
- 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 +68 -100
- package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +52 -65
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
- package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
- package/node/internals/hooks/useRangePosition.js +1 -1
- package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +16 -29
- package/node/internals/models/index.js +0 -11
- package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +143 -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/node/validation/validateDateRange.js +8 -0
- package/node/validation/validateDateTimeRange.js +4 -0
- package/node/validation/validateTimeRange.js +8 -0
- package/package.json +6 -6
- package/themeAugmentation/overrides.d.ts +6 -4
- package/themeAugmentation/props.d.ts +2 -2
- package/validation/validateDateRange.d.ts +9 -1
- package/validation/validateDateRange.js +8 -0
- package/validation/validateDateTimeRange.d.ts +6 -2
- package/validation/validateDateTimeRange.js +4 -0
- package/validation/validateTimeRange.d.ts +9 -1
- package/validation/validateTimeRange.js +8 -0
- package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -53
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -54
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -54
- package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -21
- 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,16 +1,18 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["props"]
|
|
3
|
+
const _excluded = ["props"],
|
|
4
|
+
_excluded2 = ["ownerState"];
|
|
4
5
|
import * as React from 'react';
|
|
5
6
|
import useSlotProps from '@mui/utils/useSlotProps';
|
|
6
7
|
import { useLicenseVerifier } from '@mui/x-license';
|
|
7
8
|
import { PickersLayout } from '@mui/x-date-pickers/PickersLayout';
|
|
8
|
-
import { usePicker, PickersModalDialog, PickerProvider } from '@mui/x-date-pickers/internals';
|
|
9
|
+
import { usePicker, PickersModalDialog, PickerProvider, PickerFieldUIContextProvider } from '@mui/x-date-pickers/internals';
|
|
9
10
|
import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
|
|
10
11
|
import useId from '@mui/utils/useId';
|
|
11
|
-
import {
|
|
12
|
+
import { useEnrichedRangePickerField } from "../useEnrichedRangePickerField.js";
|
|
12
13
|
import { getReleaseInfo } from "../../utils/releaseInfo.js";
|
|
13
14
|
import { useRangePosition } from "../useRangePosition.js";
|
|
15
|
+
import { PickerRangePositionContext } from "../../../hooks/usePickerRangePositionContext.js";
|
|
14
16
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
17
|
const releaseInfo = getReleaseInfo();
|
|
16
18
|
export const useMobileRangePicker = _ref => {
|
|
@@ -22,107 +24,70 @@ export const useMobileRangePicker = _ref => {
|
|
|
22
24
|
const {
|
|
23
25
|
slots,
|
|
24
26
|
slotProps: innerSlotProps,
|
|
25
|
-
className,
|
|
26
|
-
sx,
|
|
27
|
-
format,
|
|
28
|
-
formatDensity,
|
|
29
|
-
enableAccessibleFieldDOMStructure,
|
|
30
|
-
selectedSections,
|
|
31
|
-
onSelectedSectionsChange,
|
|
32
|
-
timezone,
|
|
33
27
|
label,
|
|
34
28
|
inputRef,
|
|
35
|
-
name,
|
|
36
29
|
readOnly,
|
|
37
|
-
disabled,
|
|
38
30
|
disableOpenPicker,
|
|
39
31
|
localeText
|
|
40
32
|
} = props;
|
|
41
33
|
const startFieldRef = React.useRef(null);
|
|
42
34
|
const endFieldRef = React.useRef(null);
|
|
35
|
+
const singleInputFieldRef = React.useRef(null);
|
|
43
36
|
const fieldType = slots.field.fieldType ?? 'multi-input';
|
|
44
|
-
const
|
|
45
|
-
rangePosition,
|
|
46
|
-
onRangePositionChange
|
|
47
|
-
} = useRangePosition(props, fieldType === 'single-input' ? startFieldRef : undefined);
|
|
37
|
+
const rangePositionResponse = useRangePosition(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
|
|
48
38
|
const labelId = useId();
|
|
49
39
|
const contextTranslations = usePickerTranslations();
|
|
40
|
+
let fieldRef;
|
|
41
|
+
if (fieldType === 'single-input') {
|
|
42
|
+
fieldRef = singleInputFieldRef;
|
|
43
|
+
} else if (rangePositionResponse.rangePosition === 'start') {
|
|
44
|
+
fieldRef = startFieldRef;
|
|
45
|
+
} else {
|
|
46
|
+
fieldRef = endFieldRef;
|
|
47
|
+
}
|
|
50
48
|
const {
|
|
51
|
-
open,
|
|
52
|
-
actions,
|
|
53
|
-
layoutProps,
|
|
54
49
|
providerProps,
|
|
55
50
|
renderCurrentView,
|
|
56
|
-
fieldProps: pickerFieldProps,
|
|
57
51
|
ownerState
|
|
58
52
|
} = usePicker(_extends({}, pickerParams, {
|
|
59
53
|
props,
|
|
60
54
|
variant: 'mobile',
|
|
61
55
|
autoFocusView: true,
|
|
62
|
-
fieldRef
|
|
63
|
-
localeText
|
|
64
|
-
additionalViewProps: {
|
|
65
|
-
rangePosition,
|
|
66
|
-
onRangePositionChange
|
|
67
|
-
}
|
|
56
|
+
fieldRef,
|
|
57
|
+
localeText
|
|
68
58
|
}));
|
|
69
|
-
const Field = slots.field;
|
|
70
|
-
const fieldProps = useSlotProps({
|
|
71
|
-
elementType: Field,
|
|
72
|
-
externalSlotProps: innerSlotProps?.field,
|
|
73
|
-
additionalProps: _extends({
|
|
74
|
-
// Internal props
|
|
75
|
-
readOnly: readOnly ?? true,
|
|
76
|
-
disabled,
|
|
77
|
-
format,
|
|
78
|
-
formatDensity,
|
|
79
|
-
enableAccessibleFieldDOMStructure,
|
|
80
|
-
selectedSections,
|
|
81
|
-
onSelectedSectionsChange,
|
|
82
|
-
timezone
|
|
83
|
-
}, pickerFieldProps, {
|
|
84
|
-
// onChange and value
|
|
85
59
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
60
|
+
// Temporary hack to hide the opening button on the range pickers until we have migrate them to the new opening logic.
|
|
61
|
+
providerProps.contextValue.triggerStatus = 'hidden';
|
|
62
|
+
const Field = slots.field;
|
|
63
|
+
const _useSlotProps = useSlotProps({
|
|
64
|
+
elementType: Field,
|
|
65
|
+
externalSlotProps: innerSlotProps?.field,
|
|
66
|
+
additionalProps: {
|
|
67
|
+
// Internal props
|
|
68
|
+
readOnly: readOnly ?? true
|
|
69
|
+
},
|
|
70
|
+
ownerState
|
|
93
71
|
}),
|
|
94
|
-
|
|
95
|
-
});
|
|
72
|
+
fieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
96
73
|
const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
|
|
97
|
-
const
|
|
74
|
+
const enrichedFieldResponse = useEnrichedRangePickerField(_extends({
|
|
98
75
|
variant: 'mobile',
|
|
99
76
|
fieldType,
|
|
100
|
-
|
|
101
|
-
|
|
77
|
+
// These direct access to `providerProps` will go away once the range fields handle the picker opening
|
|
78
|
+
contextValue: providerProps.contextValue,
|
|
79
|
+
fieldPrivateContextValue: providerProps.fieldPrivateContextValue,
|
|
102
80
|
readOnly,
|
|
103
81
|
labelId,
|
|
104
82
|
disableOpenPicker,
|
|
105
|
-
label,
|
|
106
83
|
localeText,
|
|
107
|
-
rangePosition,
|
|
108
|
-
onRangePositionChange,
|
|
109
84
|
pickerSlots: slots,
|
|
110
85
|
pickerSlotProps: innerSlotProps,
|
|
111
86
|
fieldProps,
|
|
112
87
|
startFieldRef,
|
|
113
|
-
endFieldRef
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
tabs: _extends({}, innerSlotProps?.tabs, {
|
|
117
|
-
rangePosition,
|
|
118
|
-
onRangePositionChange
|
|
119
|
-
}),
|
|
120
|
-
toolbar: _extends({}, innerSlotProps?.toolbar, {
|
|
121
|
-
titleId: labelId,
|
|
122
|
-
rangePosition,
|
|
123
|
-
onRangePositionChange
|
|
124
|
-
})
|
|
125
|
-
});
|
|
88
|
+
endFieldRef,
|
|
89
|
+
singleInputFieldRef
|
|
90
|
+
}, rangePositionResponse));
|
|
126
91
|
const Layout = slots?.layout ?? PickersLayout;
|
|
127
92
|
const finalLocaleText = _extends({}, contextTranslations, localeText);
|
|
128
93
|
let labelledById = pickerParams.valueType === 'date-time' ? `${labelId}-start-toolbar ${labelId}-end-toolbar` : labelId;
|
|
@@ -141,21 +106,33 @@ export const useMobileRangePicker = _ref => {
|
|
|
141
106
|
labelledById = labels.length > 0 ? labels.join(' ') : undefined;
|
|
142
107
|
}
|
|
143
108
|
const slotProps = _extends({}, innerSlotProps, {
|
|
109
|
+
toolbar: _extends({}, innerSlotProps?.toolbar, {
|
|
110
|
+
titleId: labelId
|
|
111
|
+
}),
|
|
144
112
|
mobilePaper: _extends({
|
|
145
113
|
'aria-labelledby': labelledById
|
|
146
114
|
}, innerSlotProps?.mobilePaper)
|
|
147
115
|
});
|
|
148
|
-
const renderPicker = () => /*#__PURE__*/
|
|
149
|
-
|
|
150
|
-
|
|
116
|
+
const renderPicker = () => /*#__PURE__*/_jsx(PickerProvider, _extends({}, providerProps, {
|
|
117
|
+
// This override will go away once the range fields handle the picker opening
|
|
118
|
+
fieldPrivateContextValue: _extends({}, providerProps.fieldPrivateContextValue, enrichedFieldResponse.fieldPrivateContextValue),
|
|
119
|
+
children: /*#__PURE__*/_jsx(PickerFieldUIContextProvider, {
|
|
151
120
|
slots: slots,
|
|
152
121
|
slotProps: slotProps,
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
children:
|
|
157
|
-
|
|
158
|
-
|
|
122
|
+
inputRef: inputRef,
|
|
123
|
+
children: /*#__PURE__*/_jsxs(PickerRangePositionContext.Provider, {
|
|
124
|
+
value: rangePositionResponse,
|
|
125
|
+
children: [/*#__PURE__*/_jsx(Field, _extends({}, enrichedFieldResponse.fieldProps)), /*#__PURE__*/_jsx(PickersModalDialog, {
|
|
126
|
+
slots: slots,
|
|
127
|
+
slotProps: slotProps,
|
|
128
|
+
children: /*#__PURE__*/_jsx(Layout, _extends({}, slotProps?.layout, {
|
|
129
|
+
slots: slots,
|
|
130
|
+
slotProps: slotProps,
|
|
131
|
+
children: renderCurrentView()
|
|
132
|
+
}))
|
|
133
|
+
})]
|
|
134
|
+
})
|
|
135
|
+
})
|
|
159
136
|
}));
|
|
160
137
|
return {
|
|
161
138
|
renderPicker
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
import { PickersModalDialogSlots, PickersModalDialogSlotProps, UsePickerViewsProps, DateOrTimeViewWithMeridiem } from '@mui/x-date-pickers/internals';
|
|
2
|
-
import { RangeOnlyPickerProps,
|
|
3
|
-
export interface UseMobileRangePickerSlots
|
|
2
|
+
import { RangeOnlyPickerProps, UseRangePickerParams, UseRangePickerProps, UseRangePickerSlotProps, UseRangePickerSlots } from '../models/useRangePicker';
|
|
3
|
+
export interface UseMobileRangePickerSlots extends UseRangePickerSlots, PickersModalDialogSlots {
|
|
4
4
|
}
|
|
5
|
-
export interface UseMobileRangePickerSlotProps<
|
|
5
|
+
export interface UseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, PickersModalDialogSlotProps {
|
|
6
6
|
}
|
|
7
7
|
export interface MobileRangeOnlyPickerProps extends RangeOnlyPickerProps {
|
|
8
8
|
}
|
|
9
|
-
export interface UseMobileRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerViewsProps<any, TView, any
|
|
9
|
+
export interface UseMobileRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerViewsProps<any, TView, any>> extends UseRangePickerProps<TView, TError, TExternalProps> {
|
|
10
10
|
/**
|
|
11
11
|
* Overridable component slots.
|
|
12
12
|
* @default {}
|
|
13
13
|
*/
|
|
14
|
-
slots: UseMobileRangePickerSlots
|
|
14
|
+
slots: UseMobileRangePickerSlots;
|
|
15
15
|
/**
|
|
16
16
|
* The props used for each component slot.
|
|
17
17
|
* @default {}
|
|
18
18
|
*/
|
|
19
|
-
slotProps?: UseMobileRangePickerSlotProps<
|
|
19
|
+
slotProps?: UseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
20
20
|
}
|
|
21
|
-
export interface
|
|
22
|
-
}
|
|
23
|
-
export interface UseMobileRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseMobileRangePickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends UseRangePickerParams<TView, TExternalProps, MobileRangePickerAdditionalViewProps> {
|
|
21
|
+
export interface UseMobileRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseMobileRangePickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends UseRangePickerParams<TView, TExternalProps> {
|
|
24
22
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns information about the range position of the picker that wraps the current component.
|
|
3
|
+
* If no picker wraps the current component, returns `null`.
|
|
4
|
+
*/
|
|
5
|
+
export declare function useNullablePickerRangePositionContext(): import("./useRangePosition").UseRangePositionResponse | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PickerRangePositionContext } from "../../hooks/usePickerRangePositionContext.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Returns information about the range position of the picker that wraps the current component.
|
|
6
|
+
* If no picker wraps the current component, returns `null`.
|
|
7
|
+
*/
|
|
8
|
+
export function useNullablePickerRangePositionContext() {
|
|
9
|
+
return React.useContext(PickerRangePositionContext);
|
|
10
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { FieldRef } from '@mui/x-date-pickers/models';
|
|
3
|
-
import {
|
|
3
|
+
import { PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
4
|
+
import { RangePosition } from '../../models';
|
|
4
5
|
export interface UseRangePositionProps {
|
|
5
6
|
/**
|
|
6
7
|
* The position in the currently edited date range.
|
|
@@ -21,6 +22,6 @@ export interface UseRangePositionProps {
|
|
|
21
22
|
}
|
|
22
23
|
export interface UseRangePositionResponse {
|
|
23
24
|
rangePosition: RangePosition;
|
|
24
|
-
|
|
25
|
+
setRangePosition: (newPosition: RangePosition) => void;
|
|
25
26
|
}
|
|
26
|
-
export declare const useRangePosition: (props: UseRangePositionProps, singleInputFieldRef?: React.RefObject<FieldRef<
|
|
27
|
+
export declare const useRangePosition: (props: UseRangePositionProps, singleInputFieldRef?: React.RefObject<FieldRef<PickerRangeValue> | null>) => UseRangePositionResponse;
|
|
@@ -5,6 +5,6 @@ import { UseStaticRangePickerParams, UseStaticRangePickerProps } from './useStat
|
|
|
5
5
|
* Hook managing all the range static pickers:
|
|
6
6
|
* - StaticDateRangePicker
|
|
7
7
|
*/
|
|
8
|
-
export declare const useStaticRangePicker: <TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseStaticRangePickerProps<TView, any, TExternalProps>>({ props,
|
|
8
|
+
export declare const useStaticRangePicker: <TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseStaticRangePickerProps<TView, any, TExternalProps>>({ props, ...pickerParams }: UseStaticRangePickerParams<TView, TExternalProps>) => {
|
|
9
9
|
renderPicker: () => React.JSX.Element;
|
|
10
10
|
};
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["props"
|
|
3
|
+
const _excluded = ["props"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import clsx from 'clsx';
|
|
6
6
|
import { styled } from '@mui/material/styles';
|
|
7
7
|
import { PickersLayout } from '@mui/x-date-pickers/PickersLayout';
|
|
8
|
-
import { usePicker, DIALOG_WIDTH, PickerProvider } from '@mui/x-date-pickers/internals';
|
|
8
|
+
import { usePicker, DIALOG_WIDTH, PickerProvider, mergeSx } from '@mui/x-date-pickers/internals';
|
|
9
9
|
import { useRangePosition } from "../useRangePosition.js";
|
|
10
|
+
import { PickerRangePositionContext } from "../../../hooks/usePickerRangePositionContext.js";
|
|
10
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
12
|
const PickerStaticLayout = styled(PickersLayout)(({
|
|
12
13
|
theme
|
|
@@ -22,25 +23,18 @@ const PickerStaticLayout = styled(PickersLayout)(({
|
|
|
22
23
|
*/
|
|
23
24
|
export const useStaticRangePicker = _ref => {
|
|
24
25
|
let {
|
|
25
|
-
props
|
|
26
|
-
ref
|
|
26
|
+
props
|
|
27
27
|
} = _ref,
|
|
28
28
|
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
29
29
|
const {
|
|
30
30
|
localeText,
|
|
31
31
|
slots,
|
|
32
32
|
slotProps,
|
|
33
|
-
className,
|
|
34
|
-
sx,
|
|
35
33
|
displayStaticWrapperAs,
|
|
36
34
|
autoFocus
|
|
37
35
|
} = props;
|
|
36
|
+
const rangePositionResponse = useRangePosition(props);
|
|
38
37
|
const {
|
|
39
|
-
rangePosition,
|
|
40
|
-
onRangePositionChange
|
|
41
|
-
} = useRangePosition(props);
|
|
42
|
-
const {
|
|
43
|
-
layoutProps,
|
|
44
38
|
providerProps,
|
|
45
39
|
renderCurrentView
|
|
46
40
|
} = usePicker(_extends({}, pickerParams, {
|
|
@@ -48,29 +42,22 @@ export const useStaticRangePicker = _ref => {
|
|
|
48
42
|
autoFocusView: autoFocus ?? false,
|
|
49
43
|
fieldRef: undefined,
|
|
50
44
|
localeText,
|
|
51
|
-
additionalViewProps: {
|
|
52
|
-
rangePosition,
|
|
53
|
-
onRangePositionChange
|
|
54
|
-
},
|
|
55
45
|
variant: displayStaticWrapperAs
|
|
56
46
|
}));
|
|
57
47
|
const Layout = slots?.layout ?? PickerStaticLayout;
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
className: clsx(className, slotProps?.layout?.className),
|
|
70
|
-
ref: ref,
|
|
71
|
-
children: renderCurrentView()
|
|
48
|
+
const renderPicker = () => /*#__PURE__*/_jsx(PickerRangePositionContext.Provider, {
|
|
49
|
+
value: rangePositionResponse,
|
|
50
|
+
children: /*#__PURE__*/_jsx(PickerProvider, _extends({}, providerProps, {
|
|
51
|
+
children: /*#__PURE__*/_jsx(Layout, _extends({}, slotProps?.layout, {
|
|
52
|
+
slots: slots,
|
|
53
|
+
slotProps: slotProps,
|
|
54
|
+
sx: mergeSx(providerProps.contextValue.rootSx, slotProps?.layout?.sx),
|
|
55
|
+
className: clsx(providerProps.contextValue.rootClassName, slotProps?.layout?.className),
|
|
56
|
+
ref: providerProps.contextValue.rootRef,
|
|
57
|
+
children: renderCurrentView()
|
|
58
|
+
}))
|
|
72
59
|
}))
|
|
73
|
-
})
|
|
60
|
+
});
|
|
74
61
|
return {
|
|
75
62
|
renderPicker
|
|
76
63
|
};
|
|
@@ -1,31 +1,25 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { BasePickerProps, UsePickerParams, ExportedBaseToolbarProps, StaticOnlyPickerProps, DateOrTimeViewWithMeridiem, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
3
2
|
import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps } from '@mui/x-date-pickers/PickersLayout';
|
|
4
|
-
import { RangeFieldSection } from '../../../models';
|
|
5
3
|
import { UseRangePositionProps } from '../useRangePosition';
|
|
6
|
-
export interface UseStaticRangePickerSlots
|
|
4
|
+
export interface UseStaticRangePickerSlots extends ExportedPickersLayoutSlots<PickerRangeValue> {
|
|
7
5
|
}
|
|
8
|
-
export interface UseStaticRangePickerSlotProps
|
|
6
|
+
export interface UseStaticRangePickerSlotProps extends ExportedPickersLayoutSlotProps<PickerRangeValue> {
|
|
9
7
|
toolbar?: ExportedBaseToolbarProps;
|
|
10
8
|
}
|
|
11
9
|
export interface StaticRangeOnlyPickerProps extends StaticOnlyPickerProps, UseRangePositionProps {
|
|
12
10
|
}
|
|
13
|
-
export interface UseStaticRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UseStaticRangePickerProps<TView, any, TExternalProps>> extends BasePickerProps<PickerRangeValue, TView, TError, TExternalProps
|
|
11
|
+
export interface UseStaticRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UseStaticRangePickerProps<TView, any, TExternalProps>> extends BasePickerProps<PickerRangeValue, TView, TError, TExternalProps>, StaticRangeOnlyPickerProps {
|
|
14
12
|
/**
|
|
15
13
|
* Overridable components.
|
|
16
14
|
* @default {}
|
|
17
15
|
*/
|
|
18
|
-
slots?: UseStaticRangePickerSlots
|
|
16
|
+
slots?: UseStaticRangePickerSlots;
|
|
19
17
|
/**
|
|
20
18
|
* The props used for each component slot.
|
|
21
19
|
* @default {}
|
|
22
20
|
*/
|
|
23
|
-
slotProps?: UseStaticRangePickerSlotProps
|
|
21
|
+
slotProps?: UseStaticRangePickerSlotProps;
|
|
24
22
|
}
|
|
25
|
-
export interface UseStaticRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseStaticRangePickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParams<PickerRangeValue, TView,
|
|
23
|
+
export interface UseStaticRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseStaticRangePickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParams<PickerRangeValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'ref'> {
|
|
26
24
|
props: TExternalProps;
|
|
27
|
-
/**
|
|
28
|
-
* Ref to pass to the root element
|
|
29
|
-
*/
|
|
30
|
-
ref: React.Ref<HTMLDivElement> | undefined;
|
|
31
25
|
}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { UseFieldInternalProps, DateOrTimeViewWithMeridiem, AmPmProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
3
|
-
import { DateTimeRangeValidationError, RangeFieldSection, RangeFieldSeparatorProps } from '../../models';
|
|
4
|
-
import { ExportedValidateDateTimeRangeProps } from '../../validation/validateDateTimeRange';
|
|
5
|
-
export interface UseDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<Omit<UseFieldInternalProps<PickerRangeValue, RangeFieldSection, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError>, 'unstableFieldRef'>, 'format'>, RangeFieldSeparatorProps, ExportedValidateDateTimeRangeProps, AmPmProps {
|
|
6
|
-
}
|
|
1
|
+
import { DateOrTimeViewWithMeridiem } from '@mui/x-date-pickers/internals';
|
|
7
2
|
export type DateTimeRangePickerView = Exclude<DateOrTimeViewWithMeridiem, 'month' | 'year'>;
|
|
8
3
|
export type DateTimeRangePickerViewExternal = Exclude<DateTimeRangePickerView, 'meridiem'>;
|
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
import { SxProps } from '@mui/material/styles';
|
|
2
1
|
import { SlotComponentProps } from '@mui/utils';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { FieldSection } from '@mui/x-date-pickers/models';
|
|
2
|
+
import { PickerRangeValue, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
3
|
+
import { FieldOwnerState } from '@mui/x-date-pickers/models';
|
|
6
4
|
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
7
|
-
import type { MultiInputFieldRefs, MultiInputFieldSlotRootProps,
|
|
5
|
+
import type { MultiInputFieldRefs, MultiInputFieldSlotRootProps, RangePosition } from '../../models';
|
|
8
6
|
/**
|
|
9
7
|
* Props the multi input field can receive when used inside a picker.
|
|
10
8
|
* Only contains what the MUI components are passing to the field, not what users can pass using the `props.slotProps.field`.
|
|
11
9
|
*/
|
|
12
|
-
export interface BaseMultiInputFieldProps
|
|
13
|
-
className: string | undefined;
|
|
14
|
-
sx: SxProps<any> | undefined;
|
|
10
|
+
export interface BaseMultiInputFieldProps extends Pick<UseFieldInternalProps<PickerRangeValue, boolean, unknown>, 'readOnly' | 'autoFocus'>, MultiInputFieldRefs {
|
|
15
11
|
slots?: {
|
|
16
12
|
root?: React.ElementType;
|
|
17
13
|
separator?: React.ElementType;
|
|
18
14
|
textField?: React.ElementType;
|
|
19
15
|
};
|
|
20
16
|
slotProps?: {
|
|
21
|
-
root?: SlotComponentProps<React.ElementType<MultiInputFieldSlotRootProps>, {},
|
|
22
|
-
textField?: SlotComponentProps<typeof PickersTextField, {}, {
|
|
17
|
+
root?: SlotComponentProps<React.ElementType<MultiInputFieldSlotRootProps>, {}, FieldOwnerState>;
|
|
18
|
+
textField?: SlotComponentProps<typeof PickersTextField, {}, FieldOwnerState & {
|
|
23
19
|
position?: RangePosition;
|
|
24
|
-
}
|
|
20
|
+
}>;
|
|
25
21
|
};
|
|
26
22
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { CreateMultiInputRangeFieldParameters, CreateMultiInputRangeFieldReturnValue } from './createMultiInputRangeField.types';
|
|
2
|
+
import { PickerAnyRangeManager } from '../../models/managers';
|
|
3
|
+
export declare function createMultiInputRangeField<TManager extends PickerAnyRangeManager>({ useManager, name, getUtilityClass, }: CreateMultiInputRangeFieldParameters<TManager>): CreateMultiInputRangeFieldReturnValue<TManager>;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
|
+
const _excluded = ["slots", "slotProps", "className", "classes"];
|
|
6
|
+
import * as React from 'react';
|
|
7
|
+
import clsx from 'clsx';
|
|
8
|
+
import Stack from '@mui/material/Stack';
|
|
9
|
+
import MuiTextField from '@mui/material/TextField';
|
|
10
|
+
import Typography from '@mui/material/Typography';
|
|
11
|
+
import { styled, useThemeProps } from '@mui/material/styles';
|
|
12
|
+
import composeClasses from '@mui/utils/composeClasses';
|
|
13
|
+
import useSlotProps from '@mui/utils/useSlotProps';
|
|
14
|
+
import useForkRef from '@mui/utils/useForkRef';
|
|
15
|
+
import { cleanFieldResponse, useFieldOwnerState, useNullablePickerContext } from '@mui/x-date-pickers/internals';
|
|
16
|
+
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
17
|
+
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
18
|
+
import { useMultiInputRangeField } from "../../../hooks/useMultiInputRangeField/index.js";
|
|
19
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
+
export function createMultiInputRangeField({
|
|
21
|
+
useManager,
|
|
22
|
+
name,
|
|
23
|
+
getUtilityClass
|
|
24
|
+
}) {
|
|
25
|
+
const useUtilityClasses = classes => {
|
|
26
|
+
const slots = {
|
|
27
|
+
root: ['root'],
|
|
28
|
+
separator: ['separator']
|
|
29
|
+
};
|
|
30
|
+
return composeClasses(slots, getUtilityClass, classes);
|
|
31
|
+
};
|
|
32
|
+
const MultiInputRangeFieldRoot = styled(/*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
|
|
33
|
+
ref: ref,
|
|
34
|
+
spacing: 2,
|
|
35
|
+
direction: "row",
|
|
36
|
+
alignItems: "center"
|
|
37
|
+
}, props))), {
|
|
38
|
+
name,
|
|
39
|
+
slot: 'Root',
|
|
40
|
+
overridesResolver: (props, styles) => styles.root
|
|
41
|
+
})({});
|
|
42
|
+
const MultiInputRangeFieldSeparator = styled(Typography, {
|
|
43
|
+
name,
|
|
44
|
+
slot: 'Separator',
|
|
45
|
+
overridesResolver: (props, styles) => styles.separator
|
|
46
|
+
})({
|
|
47
|
+
lineHeight: '1.4375em' // 23px
|
|
48
|
+
});
|
|
49
|
+
const MultiInputRangeField = /*#__PURE__*/React.forwardRef(function MultiInputRangeField(props, ref) {
|
|
50
|
+
const themeProps = useThemeProps({
|
|
51
|
+
props,
|
|
52
|
+
// eslint-disable-next-line material-ui/mui-name-matches-component-name
|
|
53
|
+
name
|
|
54
|
+
});
|
|
55
|
+
const manager = useManager({
|
|
56
|
+
enableAccessibleFieldDOMStructure: props.enableAccessibleFieldDOMStructure,
|
|
57
|
+
dateSeparator: props.dateSeparator
|
|
58
|
+
});
|
|
59
|
+
const {
|
|
60
|
+
internalProps,
|
|
61
|
+
forwardedProps
|
|
62
|
+
} = useSplitFieldProps(themeProps, manager.valueType);
|
|
63
|
+
const {
|
|
64
|
+
slots,
|
|
65
|
+
slotProps,
|
|
66
|
+
className,
|
|
67
|
+
classes: classesProp
|
|
68
|
+
} = forwardedProps,
|
|
69
|
+
otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
|
|
70
|
+
const classes = useUtilityClasses(classesProp);
|
|
71
|
+
const ownerState = useFieldOwnerState(internalProps);
|
|
72
|
+
const pickerContext = useNullablePickerContext();
|
|
73
|
+
const handleRef = useForkRef(ref, pickerContext?.rootRef);
|
|
74
|
+
const Root = slots?.root ?? MultiInputRangeFieldRoot;
|
|
75
|
+
const rootProps = useSlotProps({
|
|
76
|
+
elementType: Root,
|
|
77
|
+
externalSlotProps: slotProps?.root,
|
|
78
|
+
externalForwardedProps: otherForwardedProps,
|
|
79
|
+
additionalProps: {
|
|
80
|
+
ref: handleRef
|
|
81
|
+
},
|
|
82
|
+
ownerState,
|
|
83
|
+
className: clsx(className, classes.root)
|
|
84
|
+
});
|
|
85
|
+
const startTextFieldProps = useSlotProps({
|
|
86
|
+
elementType: PickersTextField,
|
|
87
|
+
externalSlotProps: slotProps?.textField,
|
|
88
|
+
ownerState: _extends({}, ownerState, {
|
|
89
|
+
position: 'start'
|
|
90
|
+
})
|
|
91
|
+
});
|
|
92
|
+
const endTextFieldProps = useSlotProps({
|
|
93
|
+
elementType: PickersTextField,
|
|
94
|
+
externalSlotProps: slotProps?.textField,
|
|
95
|
+
ownerState: _extends({}, ownerState, {
|
|
96
|
+
position: 'end'
|
|
97
|
+
})
|
|
98
|
+
});
|
|
99
|
+
const {
|
|
100
|
+
startDate,
|
|
101
|
+
endDate,
|
|
102
|
+
enableAccessibleFieldDOMStructure
|
|
103
|
+
} = useMultiInputRangeField({
|
|
104
|
+
manager,
|
|
105
|
+
internalProps,
|
|
106
|
+
startForwardedProps: startTextFieldProps,
|
|
107
|
+
endForwardedProps: endTextFieldProps
|
|
108
|
+
});
|
|
109
|
+
const Separator = slots?.separator ?? MultiInputRangeFieldSeparator;
|
|
110
|
+
const separatorProps = useSlotProps({
|
|
111
|
+
elementType: Separator,
|
|
112
|
+
externalSlotProps: slotProps?.separator,
|
|
113
|
+
additionalProps: {
|
|
114
|
+
children: internalProps.dateSeparator ?? '–'
|
|
115
|
+
},
|
|
116
|
+
ownerState,
|
|
117
|
+
className: classes.separator
|
|
118
|
+
});
|
|
119
|
+
const {
|
|
120
|
+
textFieldProps: startDateProps
|
|
121
|
+
} = cleanFieldResponse(startDate);
|
|
122
|
+
const {
|
|
123
|
+
textFieldProps: endDateProps
|
|
124
|
+
} = cleanFieldResponse(endDate);
|
|
125
|
+
const TextField = slots?.textField ?? (enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
126
|
+
return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
|
|
127
|
+
children: [/*#__PURE__*/_jsx(TextField, _extends({
|
|
128
|
+
fullWidth: true
|
|
129
|
+
}, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
|
|
130
|
+
fullWidth: true
|
|
131
|
+
}, endDateProps))]
|
|
132
|
+
}));
|
|
133
|
+
});
|
|
134
|
+
MultiInputRangeField.fieldType = 'multi-input';
|
|
135
|
+
return MultiInputRangeField;
|
|
136
|
+
}
|