@mui/x-date-pickers-pro 8.0.0-alpha.1 → 8.0.0-alpha.11
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 +2007 -230
- package/DateRangeCalendar/DateRangeCalendar.js +73 -46
- 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 +6 -8
- package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +2 -2
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -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/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
- 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 +73 -46
- 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 +6 -8
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -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/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
- 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 +72 -45
- 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 +6 -8
- package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -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/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
- 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,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: "baseline"
|
|
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
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { TypographyProps } from '@mui/material/Typography';
|
|
2
|
+
import type { StackProps } from '@mui/material/Stack';
|
|
3
|
+
import type { TextFieldProps } from '@mui/material/TextField';
|
|
4
|
+
import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
|
|
5
|
+
import { PickersTextFieldProps } from '@mui/x-date-pickers/PickersTextField';
|
|
6
|
+
import { FieldOwnerState } from '@mui/x-date-pickers/models';
|
|
7
|
+
import { PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
8
|
+
import { FieldType, MultiInputFieldRefs, RangeFieldSeparatorProps, RangePosition } from '../../../models';
|
|
9
|
+
import { PickerAnyRangeManager } from '../../models/managers';
|
|
10
|
+
export type MultiInputRangeFieldProps<TManager extends PickerAnyRangeManager> = MultiInputFieldRefs & RangeFieldSeparatorProps & Omit<PickerManagerFieldInternalProps<TManager>, 'unstableFieldRef' | 'clearable' | 'onClear'> & Omit<StackProps, 'position' | keyof PickerManagerFieldInternalProps<TManager>> & {
|
|
11
|
+
/**
|
|
12
|
+
* If `true`, the field is focused during the first mount.
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
autoFocus?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Override or extend the styles applied to the component.
|
|
19
|
+
*/
|
|
20
|
+
classes?: Partial<MultiInputRangeFieldClasses>;
|
|
21
|
+
/**
|
|
22
|
+
* Overridable component slots.
|
|
23
|
+
* @default {}
|
|
24
|
+
*/
|
|
25
|
+
slots?: MultiInputRangeFieldSlots;
|
|
26
|
+
/**
|
|
27
|
+
* The props used for each component slot.
|
|
28
|
+
* @default {}
|
|
29
|
+
*/
|
|
30
|
+
slotProps?: MultiInputRangeFieldSlotProps;
|
|
31
|
+
};
|
|
32
|
+
export interface MultiInputRangeFieldSlots {
|
|
33
|
+
/**
|
|
34
|
+
* Element rendered at the root.
|
|
35
|
+
* @default MultiInputRangeFieldRoot
|
|
36
|
+
*/
|
|
37
|
+
root?: React.ElementType;
|
|
38
|
+
/**
|
|
39
|
+
* Form control with an input to render a date.
|
|
40
|
+
* It is rendered twice: once for the start date and once for the end date.
|
|
41
|
+
* @default <PickersTextField />, or <TextField /> from '@mui/material' if `enableAccessibleFieldDOMStructure` is `false`.
|
|
42
|
+
*/
|
|
43
|
+
textField?: React.ElementType;
|
|
44
|
+
/**
|
|
45
|
+
* Element rendered between the two inputs.
|
|
46
|
+
* @default MultiInputRangeFieldSeparator
|
|
47
|
+
*/
|
|
48
|
+
separator?: React.ElementType;
|
|
49
|
+
}
|
|
50
|
+
export interface MultiInputRangeFieldSlotProps {
|
|
51
|
+
root?: SlotComponentPropsFromProps<StackProps, {}, FieldOwnerState>;
|
|
52
|
+
textField?: SlotComponentPropsFromProps<PickersTextFieldProps | TextFieldProps, {}, FieldOwnerState & {
|
|
53
|
+
position: RangePosition;
|
|
54
|
+
}>;
|
|
55
|
+
separator?: SlotComponentPropsFromProps<TypographyProps, {}, FieldOwnerState>;
|
|
56
|
+
}
|
|
57
|
+
export interface MultiInputRangeFieldClasses {
|
|
58
|
+
/** Styles applied to the root element. */
|
|
59
|
+
root: string;
|
|
60
|
+
/** Styles applied to the separator element. */
|
|
61
|
+
separator: string;
|
|
62
|
+
}
|
|
63
|
+
export interface CreateMultiInputRangeFieldParameters<TManager extends PickerAnyRangeManager> {
|
|
64
|
+
name: string;
|
|
65
|
+
getUtilityClass: (slot: string) => string;
|
|
66
|
+
useManager: (params: RangeFieldSeparatorProps & {
|
|
67
|
+
enableAccessibleFieldDOMStructure: PickerManagerEnableAccessibleFieldDOMStructure<TManager>;
|
|
68
|
+
}) => TManager;
|
|
69
|
+
}
|
|
70
|
+
export type CreateMultiInputRangeFieldReturnValue<TManager extends PickerAnyRangeManager> = ((props: MultiInputRangeFieldProps<TManager> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
71
|
+
fieldType?: FieldType;
|
|
72
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { createMultiInputRangeField } from './createMultiInputRangeField';
|
|
2
|
+
export type { MultiInputRangeFieldProps, MultiInputRangeFieldSlots, MultiInputRangeFieldSlotProps, MultiInputRangeFieldClasses, } from './createMultiInputRangeField.types';
|
|
3
|
+
export { useMultiInputRangeField as unstable_useMultiInputRangeField } from '../../../hooks/useMultiInputRangeField/useMultiInputRangeField';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const splitDateRangeSections: (sections:
|
|
3
|
-
startDate:
|
|
4
|
-
endDate:
|
|
1
|
+
import { FieldRangeSection } from '@mui/x-date-pickers/internals';
|
|
2
|
+
export declare const splitDateRangeSections: (sections: FieldRangeSection[]) => {
|
|
3
|
+
startDate: FieldRangeSection[];
|
|
4
|
+
endDate: FieldRangeSection[];
|
|
5
5
|
};
|
|
6
|
-
export declare const removeLastSeparator: (dateSections:
|
|
6
|
+
export declare const removeLastSeparator: (dateSections: FieldRangeSection[]) => (FieldRangeSection | {
|
|
7
7
|
separator: null;
|
|
8
|
-
dateName: import("
|
|
8
|
+
dateName: import("@mui/x-date-pickers/internals").RangePosition;
|
|
9
9
|
value: string;
|
|
10
10
|
format: string;
|
|
11
11
|
maxLength: number | null;
|
|
@@ -8,7 +8,8 @@ export function calculateRangeChange({
|
|
|
8
8
|
shouldMergeDateAndTime = false,
|
|
9
9
|
referenceDate
|
|
10
10
|
}) {
|
|
11
|
-
const
|
|
11
|
+
const start = !utils.isValid(range[0]) ? null : range[0];
|
|
12
|
+
const end = !utils.isValid(range[1]) ? null : range[1];
|
|
12
13
|
if (shouldMergeDateAndTime && selectedDate) {
|
|
13
14
|
// If there is a date already selected, then we want to keep its time
|
|
14
15
|
if (start && rangePosition === 'start') {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTczODg4MjgwMDAwMA==";
|
|
4
4
|
if (process.env.NODE_ENV !== 'production') {
|
|
5
5
|
// A simple hack to set the value in the test environment (has no build step).
|
|
6
6
|
// eslint-disable-next-line no-useless-concat
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { PickerValueManager, FieldValueManager, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
2
|
-
import type { DateRangeValidationError, DateTimeRangeValidationError, TimeRangeValidationError
|
|
3
|
-
|
|
2
|
+
import type { DateRangeValidationError, DateTimeRangeValidationError, TimeRangeValidationError } from '../../models';
|
|
3
|
+
type RangePickerValueManager<TError extends DateRangeValidationError | TimeRangeValidationError | DateTimeRangeValidationError = any> = PickerValueManager<PickerRangeValue, TError>;
|
|
4
4
|
export declare const rangeValueManager: RangePickerValueManager;
|
|
5
5
|
export declare const getRangeFieldValueManager: ({ dateSeparator, }: {
|
|
6
6
|
dateSeparator: string | undefined;
|
|
7
|
-
}) => FieldValueManager<PickerRangeValue
|
|
7
|
+
}) => FieldValueManager<PickerRangeValue>;
|
|
8
|
+
export {};
|
|
@@ -12,8 +12,8 @@ export const rangeValueManager = {
|
|
|
12
12
|
referenceDate: referenceDateProp
|
|
13
13
|
} = _ref,
|
|
14
14
|
params = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
15
|
-
const shouldKeepStartDate =
|
|
16
|
-
const shouldKeepEndDate =
|
|
15
|
+
const shouldKeepStartDate = params.utils.isValid(value[0]);
|
|
16
|
+
const shouldKeepEndDate = params.utils.isValid(value[1]);
|
|
17
17
|
if (shouldKeepStartDate && shouldKeepEndDate) {
|
|
18
18
|
return value;
|
|
19
19
|
}
|
|
@@ -26,8 +26,8 @@ export const rangeValueManager = {
|
|
|
26
26
|
hasError: error => error[0] != null || error[1] != null,
|
|
27
27
|
defaultErrorState: [null, null],
|
|
28
28
|
getTimezone: (utils, value) => {
|
|
29
|
-
const timezoneStart =
|
|
30
|
-
const timezoneEnd =
|
|
29
|
+
const timezoneStart = utils.isValid(value[0]) ? utils.getTimezone(value[0]) : null;
|
|
30
|
+
const timezoneEnd = utils.isValid(value[1]) ? utils.getTimezone(value[1]) : null;
|
|
31
31
|
if (timezoneStart != null && timezoneEnd != null && timezoneStart !== timezoneEnd) {
|
|
32
32
|
throw new Error('MUI X: The timezone of the start and the end date should be the same.');
|
|
33
33
|
}
|
|
@@ -39,8 +39,8 @@ export const getRangeFieldValueManager = ({
|
|
|
39
39
|
dateSeparator = '–'
|
|
40
40
|
}) => ({
|
|
41
41
|
updateReferenceValue: (utils, value, prevReferenceValue) => {
|
|
42
|
-
const shouldKeepStartDate =
|
|
43
|
-
const shouldKeepEndDate =
|
|
42
|
+
const shouldKeepStartDate = utils.isValid(value[0]);
|
|
43
|
+
const shouldKeepEndDate = utils.isValid(value[1]);
|
|
44
44
|
if (!shouldKeepStartDate && !shouldKeepEndDate) {
|
|
45
45
|
return prevReferenceValue;
|
|
46
46
|
}
|
|
@@ -111,7 +111,7 @@ export const getRangeFieldValueManager = ({
|
|
|
111
111
|
},
|
|
112
112
|
getNewValuesFromNewActiveDate: newActiveDate => ({
|
|
113
113
|
value: updateDateInRange(newActiveDate, state.value),
|
|
114
|
-
referenceValue:
|
|
114
|
+
referenceValue: !utils.isValid(newActiveDate) ? state.referenceValue : updateDateInRange(newActiveDate, state.referenceValue)
|
|
115
115
|
})
|
|
116
116
|
};
|
|
117
117
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { useDateRangeManager } from './useDateRangeManager';
|
|
2
|
+
export type { UseDateRangeManagerReturnValue, UseDateRangeManagerParameters, DateRangeManagerFieldInternalProps, } from './useDateRangeManager';
|
|
3
|
+
export { useTimeRangeManager } from './useTimeRangeManager';
|
|
4
|
+
export type { UseTimeRangeManagerReturnValue, UseTimeRangeManagerParameters, TimeRangeManagerFieldInternalProps, } from './useTimeRangeManager';
|
|
5
|
+
export { useDateTimeRangeManager } from './useDateTimeRangeManager';
|
|
6
|
+
export type { UseDateTimeRangeManagerReturnValue, UseDateTimeRangeManagerParameters, DateTimeRangeManagerFieldInternalProps, } from './useDateTimeRangeManager';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { MakeOptional } from '@mui/x-internals/types';
|
|
2
|
+
import { PickerManager } from '@mui/x-date-pickers/models';
|
|
3
|
+
import { PickerRangeValue, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
4
|
+
import { DateRangeValidationError, RangeFieldSeparatorProps } from '../models';
|
|
5
|
+
import { ExportedValidateDateRangeProps, ValidateDateRangeProps } from '../validation/validateDateRange';
|
|
6
|
+
export declare function useDateRangeManager<TEnableAccessibleFieldDOMStructure extends boolean = true>(parameters?: UseDateRangeManagerParameters<TEnableAccessibleFieldDOMStructure>): UseDateRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure>;
|
|
7
|
+
export interface UseDateRangeManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> extends RangeFieldSeparatorProps {
|
|
8
|
+
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
9
|
+
}
|
|
10
|
+
export type UseDateRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateRangeValidationError, DateRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, DateRangeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure>>;
|
|
11
|
+
export interface DateRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateRangeValidationError>, 'format'>, RangeFieldSeparatorProps, ExportedValidateDateRangeProps {
|
|
12
|
+
}
|
|
13
|
+
interface DateRangeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateRangeValidationError>, ValidateDateRangeProps, RangeFieldSeparatorProps {
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { getDateFieldInternalPropsDefaults } from '@mui/x-date-pickers/internals';
|
|
6
|
+
import { getRangeFieldValueManager, rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
7
|
+
import { validateDateRange } from "../validation/index.js";
|
|
8
|
+
export function useDateRangeManager(parameters = {}) {
|
|
9
|
+
const {
|
|
10
|
+
enableAccessibleFieldDOMStructure = true,
|
|
11
|
+
dateSeparator
|
|
12
|
+
} = parameters;
|
|
13
|
+
return React.useMemo(() => ({
|
|
14
|
+
valueType: 'date',
|
|
15
|
+
validator: validateDateRange,
|
|
16
|
+
internal_valueManager: rangeValueManager,
|
|
17
|
+
internal_fieldValueManager: getRangeFieldValueManager({
|
|
18
|
+
dateSeparator
|
|
19
|
+
}),
|
|
20
|
+
internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
|
|
21
|
+
internal_applyDefaultsToFieldInternalProps: ({
|
|
22
|
+
internalProps,
|
|
23
|
+
utils,
|
|
24
|
+
defaultDates
|
|
25
|
+
}) => _extends({}, internalProps, getDateFieldInternalPropsDefaults({
|
|
26
|
+
defaultDates,
|
|
27
|
+
utils,
|
|
28
|
+
internalProps
|
|
29
|
+
})),
|
|
30
|
+
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
31
|
+
internal_getOpenPickerButtonAriaLabel: () => ''
|
|
32
|
+
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
33
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { MakeOptional } from '@mui/x-internals/types';
|
|
2
|
+
import { PickerManager } from '@mui/x-date-pickers/models';
|
|
3
|
+
import { AmPmProps, PickerRangeValue, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
4
|
+
import { DateTimeRangeValidationError, RangeFieldSeparatorProps } from '../models';
|
|
5
|
+
import { ExportedValidateDateTimeRangeProps, ValidateDateTimeRangeProps } from '../validation/validateDateTimeRange';
|
|
6
|
+
export declare function useDateTimeRangeManager<TEnableAccessibleFieldDOMStructure extends boolean = true>(parameters?: UseDateTimeRangeManagerParameters<TEnableAccessibleFieldDOMStructure>): UseDateTimeRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure>;
|
|
7
|
+
export interface UseDateTimeRangeManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> extends RangeFieldSeparatorProps {
|
|
8
|
+
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
9
|
+
}
|
|
10
|
+
export type UseDateTimeRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError, DateTimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, DateTimeRangeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure>>;
|
|
11
|
+
export interface DateTimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError>, 'format'>, ExportedValidateDateTimeRangeProps, AmPmProps, RangeFieldSeparatorProps {
|
|
12
|
+
}
|
|
13
|
+
interface DateTimeRangeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError>, ValidateDateTimeRangeProps, RangeFieldSeparatorProps {
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { getDateTimeFieldInternalPropsDefaults } from '@mui/x-date-pickers/internals';
|
|
6
|
+
import { getRangeFieldValueManager, rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
7
|
+
import { validateDateTimeRange } from "../validation/index.js";
|
|
8
|
+
export function useDateTimeRangeManager(parameters = {}) {
|
|
9
|
+
const {
|
|
10
|
+
enableAccessibleFieldDOMStructure = true,
|
|
11
|
+
dateSeparator
|
|
12
|
+
} = parameters;
|
|
13
|
+
return React.useMemo(() => ({
|
|
14
|
+
valueType: 'date-time',
|
|
15
|
+
validator: validateDateTimeRange,
|
|
16
|
+
internal_valueManager: rangeValueManager,
|
|
17
|
+
internal_fieldValueManager: getRangeFieldValueManager({
|
|
18
|
+
dateSeparator
|
|
19
|
+
}),
|
|
20
|
+
internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
|
|
21
|
+
internal_applyDefaultsToFieldInternalProps: ({
|
|
22
|
+
internalProps,
|
|
23
|
+
utils,
|
|
24
|
+
defaultDates
|
|
25
|
+
}) => _extends({}, internalProps, getDateTimeFieldInternalPropsDefaults({
|
|
26
|
+
internalProps,
|
|
27
|
+
utils,
|
|
28
|
+
defaultDates
|
|
29
|
+
})),
|
|
30
|
+
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
31
|
+
internal_getOpenPickerButtonAriaLabel: () => ''
|
|
32
|
+
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
33
|
+
}
|