@mui/x-date-pickers-pro 7.0.0-beta.1 → 7.0.0-beta.4
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/CHANGELOG.md +437 -4
- package/DateRangeCalendar/DateRangeCalendar.d.ts +2 -1
- package/DateRangeCalendar/DateRangeCalendar.js +9 -7
- package/DateRangeCalendar/DateRangeCalendar.types.d.ts +10 -7
- package/DateRangeCalendar/useDragRange.d.ts +4 -4
- package/DateRangePicker/DateRangePicker.d.ts +2 -1
- package/DateRangePicker/DateRangePicker.js +14 -14
- package/DateRangePicker/DateRangePicker.types.d.ts +5 -4
- package/DateRangePicker/DateRangePickerToolbar.d.ts +6 -2
- package/DateRangePicker/DateRangePickerToolbar.js +7 -1
- package/DateRangePicker/shared.d.ts +6 -5
- package/DateRangePickerDay/DateRangePickerDay.d.ts +3 -2
- package/DateRangePickerDay/DateRangePickerDay.js +2 -2
- package/DateTimeRangePicker/DateTimeRangePicker.d.ts +2 -1
- package/DateTimeRangePicker/DateTimeRangePicker.js +20 -21
- package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +5 -4
- package/DateTimeRangePicker/DateTimeRangePickerTabs.js +7 -1
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +3 -2
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +6 -2
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -1
- package/DateTimeRangePicker/shared.d.ts +6 -5
- package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +2 -1
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +14 -14
- package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +5 -4
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.d.ts +2 -1
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -21
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +5 -4
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePickerLayout.d.ts +2 -1
- package/MobileDateRangePicker/MobileDateRangePicker.d.ts +2 -1
- package/MobileDateRangePicker/MobileDateRangePicker.js +14 -14
- package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +5 -4
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.d.ts +2 -1
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -21
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +5 -4
- package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +2 -1
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +22 -24
- package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +12 -14
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +2 -1
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +26 -28
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +13 -16
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +2 -1
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +22 -24
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +13 -16
- package/SingleInputDateRangeField/SingleInputDateRangeField.d.ts +3 -2
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -15
- package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +11 -13
- package/SingleInputDateRangeField/index.d.ts +1 -1
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +3 -3
- package/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -15
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.d.ts +3 -2
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +21 -19
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +12 -14
- package/SingleInputDateTimeRangeField/index.d.ts +1 -1
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +3 -3
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -20
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.d.ts +3 -2
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +16 -14
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +12 -14
- package/SingleInputTimeRangeField/index.d.ts +1 -1
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +3 -3
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -14
- package/StaticDateRangePicker/StaticDateRangePicker.d.ts +2 -1
- package/StaticDateRangePicker/StaticDateRangePicker.js +5 -6
- package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +4 -3
- package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +3 -2
- package/index.d.ts +7 -2
- package/index.js +8 -2
- package/internals/hooks/models/useRangePicker.d.ts +8 -7
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.d.ts +2 -1
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +17 -8
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +7 -6
- package/internals/hooks/useEnrichedRangePickerFieldProps.d.ts +15 -15
- package/internals/hooks/useEnrichedRangePickerFieldProps.js +37 -40
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.d.ts +2 -1
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +18 -9
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -6
- package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +21 -0
- package/internals/hooks/useMultiInputFieldSelectedSections.js +43 -0
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +2 -1
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +17 -12
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +3 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +23 -31
- package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +4 -4
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +3 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +23 -25
- package/internals/hooks/useRangePosition.d.ts +2 -4
- package/internals/hooks/useRangePosition.js +3 -6
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +2 -1
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -0
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -6
- package/internals/models/dateRange.d.ts +5 -16
- package/internals/models/dateTimeRange.d.ts +5 -6
- package/internals/models/index.d.ts +0 -1
- package/internals/models/index.js +0 -1
- package/internals/models/timeRange.d.ts +4 -6
- package/internals/utils/date-fields-utils.d.ts +1 -5
- package/internals/utils/date-range-manager.d.ts +5 -5
- package/internals/utils/date-utils.d.ts +5 -5
- package/internals/utils/releaseInfo.js +1 -1
- package/internals/utils/validation/validateDateRange.d.ts +2 -2
- package/internals/utils/validation/validateDateTimeRange.d.ts +2 -2
- package/internals/utils/valueManagers.d.ts +3 -3
- package/internals/utils/valueManagers.js +11 -6
- package/models/fields.d.ts +69 -0
- package/models/index.d.ts +1 -0
- package/models/index.js +1 -0
- package/models/range.d.ts +3 -2
- package/modern/DateRangeCalendar/DateRangeCalendar.js +9 -7
- package/modern/DateRangePicker/DateRangePicker.js +14 -14
- package/modern/DateRangePicker/DateRangePickerToolbar.js +7 -1
- package/modern/DateRangePickerDay/DateRangePickerDay.js +2 -2
- package/modern/DateTimeRangePicker/DateTimeRangePicker.js +20 -21
- package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +7 -1
- package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -1
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +14 -14
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -21
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +14 -14
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -21
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +22 -24
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +26 -28
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +22 -24
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -15
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -14
- package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +21 -19
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -19
- package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +16 -14
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -13
- package/modern/StaticDateRangePicker/StaticDateRangePicker.js +5 -6
- package/modern/index.js +8 -2
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +17 -8
- package/modern/internals/hooks/useEnrichedRangePickerFieldProps.js +34 -37
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +18 -9
- package/modern/internals/hooks/useMultiInputFieldSelectedSections.js +40 -0
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +17 -12
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +23 -30
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +23 -24
- package/modern/internals/hooks/useRangePosition.js +3 -6
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -0
- package/modern/internals/models/index.js +0 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/internals/utils/valueManagers.js +11 -6
- package/modern/models/index.js +1 -0
- package/node/DateRangeCalendar/DateRangeCalendar.js +10 -8
- package/node/DateRangePicker/DateRangePicker.js +14 -14
- package/node/DateRangePicker/DateRangePickerToolbar.js +7 -1
- package/node/DateRangePickerDay/DateRangePickerDay.js +3 -3
- package/node/DateTimeRangePicker/DateTimeRangePicker.js +20 -21
- package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +7 -1
- package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -1
- package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +14 -14
- package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -21
- package/node/MobileDateRangePicker/MobileDateRangePicker.js +14 -14
- package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +22 -23
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +22 -24
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +26 -28
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +22 -24
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -15
- package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -16
- package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +24 -22
- package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -21
- package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +16 -14
- package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -15
- package/node/StaticDateRangePicker/StaticDateRangePicker.js +5 -6
- package/node/index.js +18 -9
- package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +18 -9
- package/node/internals/hooks/useEnrichedRangePickerFieldProps.js +33 -36
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +19 -10
- package/node/internals/hooks/useMultiInputFieldSelectedSections.js +50 -0
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +16 -11
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +23 -31
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +23 -25
- package/node/internals/hooks/useRangePosition.js +3 -8
- package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -0
- package/node/internals/models/index.js +0 -11
- package/node/internals/utils/releaseInfo.js +1 -1
- package/node/internals/utils/valueManagers.js +10 -5
- package/node/models/index.js +11 -0
- package/package.json +6 -6
- package/themeAugmentation/props.d.ts +17 -17
- package/internals/models/fields.d.ts +0 -49
- package/legacy/AdapterDateFns/index.js +0 -1
- package/legacy/AdapterDateFnsJalali/index.js +0 -1
- package/legacy/AdapterDateFnsV3/index.js +0 -1
- package/legacy/AdapterDayjs/index.js +0 -1
- package/legacy/AdapterLuxon/index.js +0 -1
- package/legacy/AdapterMoment/index.js +0 -1
- package/legacy/AdapterMomentHijri/index.js +0 -1
- package/legacy/AdapterMomentJalaali/index.js +0 -1
- package/legacy/DateRangeCalendar/DateRangeCalendar.js +0 -764
- package/legacy/DateRangeCalendar/DateRangeCalendar.types.js +0 -1
- package/legacy/DateRangeCalendar/dateRangeCalendarClasses.js +0 -5
- package/legacy/DateRangeCalendar/index.js +0 -2
- package/legacy/DateRangeCalendar/useDragRange.js +0 -258
- package/legacy/DateRangePicker/DateRangePicker.js +0 -334
- package/legacy/DateRangePicker/DateRangePicker.types.js +0 -1
- package/legacy/DateRangePicker/DateRangePickerToolbar.js +0 -127
- package/legacy/DateRangePicker/dateRangePickerToolbarClasses.js +0 -5
- package/legacy/DateRangePicker/index.js +0 -3
- package/legacy/DateRangePicker/shared.js +0 -33
- package/legacy/DateRangePickerDay/DateRangePickerDay.js +0 -366
- package/legacy/DateRangePickerDay/dateRangePickerDayClasses.js +0 -5
- package/legacy/DateRangePickerDay/index.js +0 -2
- package/legacy/DateTimeRangePicker/DateTimeRangePicker.js +0 -413
- package/legacy/DateTimeRangePicker/DateTimeRangePicker.types.js +0 -1
- package/legacy/DateTimeRangePicker/DateTimeRangePickerTabs.js +0 -191
- package/legacy/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +0 -57
- package/legacy/DateTimeRangePicker/DateTimeRangePickerToolbar.js +0 -184
- package/legacy/DateTimeRangePicker/dateTimeRangePickerTabsClasses.js +0 -6
- package/legacy/DateTimeRangePicker/dateTimeRangePickerToolbarClasses.js +0 -5
- package/legacy/DateTimeRangePicker/index.js +0 -5
- package/legacy/DateTimeRangePicker/shared.js +0 -54
- package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -343
- package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.types.js +0 -1
- package/legacy/DesktopDateRangePicker/index.js +0 -1
- package/legacy/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +0 -491
- package/legacy/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.js +0 -1
- package/legacy/DesktopDateTimeRangePicker/DesktopDateTimeRangePickerLayout.js +0 -48
- package/legacy/DesktopDateTimeRangePicker/index.js +0 -1
- package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +0 -339
- package/legacy/MobileDateRangePicker/MobileDateRangePicker.types.js +0 -1
- package/legacy/MobileDateRangePicker/index.js +0 -1
- package/legacy/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +0 -484
- package/legacy/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.js +0 -1
- package/legacy/MobileDateTimeRangePicker/index.js +0 -1
- package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.js +0 -316
- package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
- package/legacy/MultiInputDateRangeField/index.js +0 -2
- package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +0 -357
- package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
- package/legacy/MultiInputDateTimeRangeField/index.js +0 -2
- package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.js +0 -330
- package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
- package/legacy/MultiInputTimeRangeField/index.js +0 -2
- package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.js +0 -307
- package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.types.js +0 -1
- package/legacy/SingleInputDateRangeField/index.js +0 -2
- package/legacy/SingleInputDateRangeField/useSingleInputDateRangeField.js +0 -30
- package/legacy/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +0 -348
- package/legacy/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.js +0 -1
- package/legacy/SingleInputDateTimeRangeField/index.js +0 -2
- package/legacy/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +0 -35
- package/legacy/SingleInputTimeRangeField/SingleInputTimeRangeField.js +0 -321
- package/legacy/SingleInputTimeRangeField/SingleInputTimeRangeField.types.js +0 -1
- package/legacy/SingleInputTimeRangeField/index.js +0 -2
- package/legacy/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +0 -29
- package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +0 -276
- package/legacy/StaticDateRangePicker/StaticDateRangePicker.types.js +0 -1
- package/legacy/StaticDateRangePicker/index.js +0 -1
- package/legacy/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -87
- package/legacy/dateRangeViewRenderers/index.js +0 -1
- package/legacy/index.js +0 -33
- package/legacy/internals/constants/dimensions.js +0 -5
- package/legacy/internals/hooks/models/index.js +0 -1
- package/legacy/internals/hooks/models/useRangePicker.js +0 -1
- package/legacy/internals/hooks/useDesktopRangePicker/index.js +0 -1
- package/legacy/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +0 -154
- package/legacy/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.js +0 -1
- package/legacy/internals/hooks/useEnrichedRangePickerFieldProps.js +0 -258
- package/legacy/internals/hooks/useMobileRangePicker/index.js +0 -1
- package/legacy/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +0 -144
- package/legacy/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.js +0 -1
- package/legacy/internals/hooks/useMultiInputRangeField/shared.js +0 -9
- package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -102
- package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -115
- package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
- package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -109
- package/legacy/internals/hooks/useRangePosition.js +0 -39
- package/legacy/internals/hooks/useStaticRangePicker/index.js +0 -1
- package/legacy/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -76
- package/legacy/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.js +0 -1
- package/legacy/internals/models/dateRange.js +0 -1
- package/legacy/internals/models/dateTimeRange.js +0 -1
- package/legacy/internals/models/index.js +0 -5
- package/legacy/internals/models/rangePickerProps.js +0 -1
- package/legacy/internals/models/timeRange.js +0 -1
- package/legacy/internals/utils/date-fields-utils.js +0 -26
- package/legacy/internals/utils/date-range-manager.js +0 -65
- package/legacy/internals/utils/date-utils.js +0 -12
- package/legacy/internals/utils/releaseInfo.js +0 -13
- package/legacy/internals/utils/validation/validateDateRange.js +0 -45
- package/legacy/internals/utils/validation/validateDateTimeRange.js +0 -45
- package/legacy/internals/utils/validation/validateTimeRange.js +0 -32
- package/legacy/internals/utils/valueManagers.js +0 -135
- package/legacy/locales/index.js +0 -1
- package/legacy/models/index.js +0 -3
- package/legacy/models/multiInputRangeFieldClasses.js +0 -1
- package/legacy/models/range.js +0 -1
- package/legacy/models/validation.js +0 -1
- package/legacy/themeAugmentation/index.js +0 -4
- package/modern/internals/models/fields.js +0 -1
- /package/{internals/models → models}/fields.js +0 -0
- /package/{legacy/internals → modern}/models/fields.js +0 -0
- /package/node/{internals/models → models}/fields.js +0 -0
|
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
3
3
|
const _excluded = ["props"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { useSlotProps } from '@mui/base/utils';
|
|
6
|
-
import { useLicenseVerifier } from '@mui/x-license
|
|
6
|
+
import { useLicenseVerifier } from '@mui/x-license';
|
|
7
7
|
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
|
|
8
8
|
import { PickersLayout } from '@mui/x-date-pickers/PickersLayout';
|
|
9
9
|
import { executeInTheNextEventLoopTick, getActiveElement, usePicker, PickersPopper } from '@mui/x-date-pickers/internals';
|
|
@@ -26,6 +26,9 @@ export const useDesktopRangePicker = _ref => {
|
|
|
26
26
|
sx,
|
|
27
27
|
format,
|
|
28
28
|
formatDensity,
|
|
29
|
+
enableAccessibleFieldDOMStructure,
|
|
30
|
+
selectedSections,
|
|
31
|
+
onSelectedSectionsChange,
|
|
29
32
|
timezone,
|
|
30
33
|
label,
|
|
31
34
|
inputRef,
|
|
@@ -40,12 +43,14 @@ export const useDesktopRangePicker = _ref => {
|
|
|
40
43
|
const fieldContainerRef = React.useRef(null);
|
|
41
44
|
const anchorRef = React.useRef(null);
|
|
42
45
|
const popperRef = React.useRef(null);
|
|
46
|
+
const startFieldRef = React.useRef(null);
|
|
47
|
+
const endFieldRef = React.useRef(null);
|
|
43
48
|
const initialView = React.useRef(props.openTo ?? null);
|
|
49
|
+
const fieldType = slots.field.fieldType ?? 'multi-input';
|
|
44
50
|
const {
|
|
45
51
|
rangePosition,
|
|
46
|
-
onRangePositionChange
|
|
47
|
-
|
|
48
|
-
} = useRangePosition(props);
|
|
52
|
+
onRangePositionChange
|
|
53
|
+
} = useRangePosition(props, fieldType === 'single-input' ? startFieldRef : undefined);
|
|
49
54
|
const {
|
|
50
55
|
open,
|
|
51
56
|
actions,
|
|
@@ -57,6 +62,7 @@ export const useDesktopRangePicker = _ref => {
|
|
|
57
62
|
props,
|
|
58
63
|
wrapperVariant: 'desktop',
|
|
59
64
|
autoFocusView: false,
|
|
65
|
+
fieldRef: rangePosition === 'start' ? startFieldRef : endFieldRef,
|
|
60
66
|
additionalViewProps: {
|
|
61
67
|
rangePosition,
|
|
62
68
|
onRangePositionChange
|
|
@@ -77,7 +83,6 @@ export const useDesktopRangePicker = _ref => {
|
|
|
77
83
|
});
|
|
78
84
|
};
|
|
79
85
|
const Field = slots.field;
|
|
80
|
-
const fieldType = Field.fieldType ?? 'multi-input';
|
|
81
86
|
const fieldProps = useSlotProps({
|
|
82
87
|
elementType: Field,
|
|
83
88
|
externalSlotProps: slotProps?.field,
|
|
@@ -88,13 +93,16 @@ export const useDesktopRangePicker = _ref => {
|
|
|
88
93
|
sx,
|
|
89
94
|
format,
|
|
90
95
|
formatDensity,
|
|
96
|
+
enableAccessibleFieldDOMStructure,
|
|
97
|
+
selectedSections,
|
|
98
|
+
onSelectedSectionsChange,
|
|
91
99
|
timezone,
|
|
92
100
|
autoFocus: autoFocus && !props.open,
|
|
93
101
|
ref: fieldContainerRef
|
|
94
|
-
},
|
|
102
|
+
}, inputRef ? {
|
|
95
103
|
inputRef,
|
|
96
104
|
name
|
|
97
|
-
}),
|
|
105
|
+
} : {}),
|
|
98
106
|
ownerState: props
|
|
99
107
|
});
|
|
100
108
|
const enrichedFieldProps = useEnrichedRangePickerFieldProps({
|
|
@@ -109,11 +117,12 @@ export const useDesktopRangePicker = _ref => {
|
|
|
109
117
|
onBlur: handleBlur,
|
|
110
118
|
rangePosition,
|
|
111
119
|
onRangePositionChange,
|
|
112
|
-
singleInputFieldRef,
|
|
113
120
|
pickerSlotProps: slotProps,
|
|
114
121
|
pickerSlots: slots,
|
|
115
122
|
fieldProps,
|
|
116
123
|
anchorRef,
|
|
124
|
+
startFieldRef,
|
|
125
|
+
endFieldRef,
|
|
117
126
|
currentView: layoutProps.view !== props.openTo ? layoutProps.view : undefined,
|
|
118
127
|
initialView: initialView.current ?? undefined,
|
|
119
128
|
onViewChange: layoutProps.onViewChange
|
|
@@ -5,7 +5,7 @@ import * as React from 'react';
|
|
|
5
5
|
import { resolveComponentProps } from '@mui/base/utils';
|
|
6
6
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
7
7
|
import useForkRef from '@mui/utils/useForkRef';
|
|
8
|
-
import { onSpaceOrEnter, useLocaleText
|
|
8
|
+
import { onSpaceOrEnter, useLocaleText } from '@mui/x-date-pickers/internals';
|
|
9
9
|
const useMultiInputFieldSlotProps = ({
|
|
10
10
|
wrapperVariant,
|
|
11
11
|
open,
|
|
@@ -23,34 +23,32 @@ const useMultiInputFieldSlotProps = ({
|
|
|
23
23
|
anchorRef,
|
|
24
24
|
currentView,
|
|
25
25
|
initialView,
|
|
26
|
-
onViewChange
|
|
26
|
+
onViewChange,
|
|
27
|
+
startFieldRef,
|
|
28
|
+
endFieldRef
|
|
27
29
|
}) => {
|
|
28
30
|
const localeText = useLocaleText();
|
|
29
|
-
const startRef = React.useRef(null);
|
|
30
|
-
const endRef = React.useRef(null);
|
|
31
|
-
const startFieldRef = React.useRef(null);
|
|
32
|
-
const endFieldRef = React.useRef(null);
|
|
33
31
|
const handleStartFieldRef = useForkRef(fieldProps.unstableStartFieldRef, startFieldRef);
|
|
34
|
-
const handleEndFieldRef = useForkRef(fieldProps.
|
|
32
|
+
const handleEndFieldRef = useForkRef(fieldProps.unstableEndFieldRef, endFieldRef);
|
|
35
33
|
const previousRangePosition = React.useRef(rangePosition);
|
|
36
34
|
React.useEffect(() => {
|
|
37
35
|
if (!open) {
|
|
38
36
|
return;
|
|
39
37
|
}
|
|
40
|
-
const currentRef = rangePosition === 'start' ? startRef : endRef;
|
|
41
|
-
currentRef.current?.focus();
|
|
42
38
|
const currentFieldRef = rangePosition === 'start' ? startFieldRef : endFieldRef;
|
|
39
|
+
currentFieldRef.current?.focusField();
|
|
43
40
|
if (!currentFieldRef.current || !currentView) {
|
|
44
41
|
// could happen when the user is switching between the inputs
|
|
45
42
|
previousRangePosition.current = rangePosition;
|
|
46
43
|
return;
|
|
47
44
|
}
|
|
45
|
+
|
|
48
46
|
// bring back focus to the field
|
|
49
47
|
currentFieldRef.current.setSelectedSections(
|
|
50
48
|
// use the current view or `0` when the range position has just been swapped
|
|
51
49
|
previousRangePosition.current === rangePosition ? currentView : 0);
|
|
52
50
|
previousRangePosition.current = rangePosition;
|
|
53
|
-
}, [rangePosition, open, currentView]);
|
|
51
|
+
}, [rangePosition, open, currentView, startFieldRef, endFieldRef]);
|
|
54
52
|
const openRangeStartSelection = event => {
|
|
55
53
|
event.stopPropagation();
|
|
56
54
|
onRangePositionChange('start');
|
|
@@ -89,11 +87,10 @@ const useMultiInputFieldSlotProps = ({
|
|
|
89
87
|
const slotProps = _extends({}, fieldProps.slotProps, {
|
|
90
88
|
textField: ownerState => {
|
|
91
89
|
const resolvedComponentProps = resolveComponentProps(pickerSlotProps?.textField, ownerState);
|
|
92
|
-
let
|
|
90
|
+
let textFieldProps;
|
|
93
91
|
let InputProps;
|
|
94
92
|
if (ownerState.position === 'start') {
|
|
95
|
-
|
|
96
|
-
inputRef: startRef,
|
|
93
|
+
textFieldProps = _extends({
|
|
97
94
|
label: inLocaleText?.start ?? localeText.start,
|
|
98
95
|
onKeyDown: onSpaceOrEnter(openRangeStartSelection),
|
|
99
96
|
onFocus: handleFocusStart,
|
|
@@ -109,8 +106,7 @@ const useMultiInputFieldSlotProps = ({
|
|
|
109
106
|
});
|
|
110
107
|
}
|
|
111
108
|
} else {
|
|
112
|
-
|
|
113
|
-
inputRef: endRef,
|
|
109
|
+
textFieldProps = _extends({
|
|
114
110
|
label: inLocaleText?.end ?? localeText.end,
|
|
115
111
|
onKeyDown: onSpaceOrEnter(openRangeEndSelection),
|
|
116
112
|
onFocus: handleFocusEnd,
|
|
@@ -124,7 +120,7 @@ const useMultiInputFieldSlotProps = ({
|
|
|
124
120
|
}
|
|
125
121
|
return _extends({}, labelId != null && {
|
|
126
122
|
id: `${labelId}-${ownerState.position}`
|
|
127
|
-
},
|
|
123
|
+
}, textFieldProps, resolveComponentProps(pickerSlotProps?.textField, ownerState), {
|
|
128
124
|
InputProps
|
|
129
125
|
});
|
|
130
126
|
},
|
|
@@ -138,12 +134,13 @@ const useMultiInputFieldSlotProps = ({
|
|
|
138
134
|
});
|
|
139
135
|
|
|
140
136
|
/* TODO: remove this when a clearable behavior for multiple input range fields is implemented */
|
|
141
|
-
const
|
|
137
|
+
const _ref = fieldProps,
|
|
138
|
+
restFieldProps = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
142
139
|
const enrichedFieldProps = _extends({}, restFieldProps, {
|
|
143
|
-
slots,
|
|
144
|
-
slotProps,
|
|
145
140
|
unstableStartFieldRef: handleStartFieldRef,
|
|
146
|
-
unstableEndFieldRef: handleEndFieldRef
|
|
141
|
+
unstableEndFieldRef: handleEndFieldRef,
|
|
142
|
+
slots,
|
|
143
|
+
slotProps
|
|
147
144
|
});
|
|
148
145
|
return enrichedFieldProps;
|
|
149
146
|
};
|
|
@@ -152,49 +149,50 @@ const useSingleInputFieldSlotProps = ({
|
|
|
152
149
|
open,
|
|
153
150
|
actions,
|
|
154
151
|
readOnly,
|
|
155
|
-
inputRef: inInputRef,
|
|
156
152
|
labelId,
|
|
157
153
|
disableOpenPicker,
|
|
158
154
|
label,
|
|
159
155
|
onBlur,
|
|
160
156
|
rangePosition,
|
|
161
157
|
onRangePositionChange,
|
|
162
|
-
|
|
158
|
+
startFieldRef,
|
|
159
|
+
endFieldRef,
|
|
163
160
|
pickerSlots,
|
|
164
161
|
pickerSlotProps,
|
|
165
162
|
fieldProps,
|
|
166
163
|
anchorRef,
|
|
167
164
|
currentView
|
|
168
165
|
}) => {
|
|
169
|
-
const
|
|
170
|
-
const handleInputRef = useForkRef(inInputRef, inputRef);
|
|
171
|
-
const handleFieldRef = useForkRef(fieldProps.unstableFieldRef, singleInputFieldRef);
|
|
166
|
+
const handleFieldRef = useForkRef(fieldProps.unstableFieldRef, startFieldRef, endFieldRef);
|
|
172
167
|
React.useEffect(() => {
|
|
173
|
-
if (!open) {
|
|
168
|
+
if (!open || !startFieldRef.current) {
|
|
174
169
|
return;
|
|
175
170
|
}
|
|
176
|
-
|
|
177
|
-
if (!singleInputFieldRef.current || !currentView) {
|
|
171
|
+
if (startFieldRef.current.isFieldFocused()) {
|
|
178
172
|
return;
|
|
179
173
|
}
|
|
180
|
-
|
|
174
|
+
|
|
181
175
|
// bring back focus to the field with the current view section selected
|
|
182
|
-
|
|
183
|
-
|
|
176
|
+
if (currentView) {
|
|
177
|
+
const sections = startFieldRef.current.getSections().map(section => section.type);
|
|
178
|
+
const newSelectedSection = rangePosition === 'start' ? sections.indexOf(currentView) : sections.lastIndexOf(currentView);
|
|
179
|
+
startFieldRef.current?.focusField(newSelectedSection);
|
|
180
|
+
}
|
|
181
|
+
}, [rangePosition, open, currentView, startFieldRef]);
|
|
184
182
|
const updateRangePosition = () => {
|
|
185
|
-
if (!
|
|
183
|
+
if (!startFieldRef.current?.isFieldFocused()) {
|
|
186
184
|
return;
|
|
187
185
|
}
|
|
188
|
-
const sections =
|
|
189
|
-
const activeSectionIndex =
|
|
186
|
+
const sections = startFieldRef.current.getSections();
|
|
187
|
+
const activeSectionIndex = startFieldRef.current?.getActiveSectionIndex();
|
|
190
188
|
const domRangePosition = activeSectionIndex == null || activeSectionIndex < sections.length / 2 ? 'start' : 'end';
|
|
191
189
|
if (domRangePosition != null && domRangePosition !== rangePosition) {
|
|
192
190
|
onRangePositionChange(domRangePosition);
|
|
193
191
|
}
|
|
194
192
|
};
|
|
195
|
-
const handleSelectedSectionsChange = useEventCallback(
|
|
193
|
+
const handleSelectedSectionsChange = useEventCallback(selectedSection => {
|
|
196
194
|
setTimeout(updateRangePosition);
|
|
197
|
-
fieldProps.onSelectedSectionsChange?.(
|
|
195
|
+
fieldProps.onSelectedSectionsChange?.(selectedSection);
|
|
198
196
|
});
|
|
199
197
|
const openPicker = event => {
|
|
200
198
|
event.stopPropagation();
|
|
@@ -217,7 +215,6 @@ const useSingleInputFieldSlotProps = ({
|
|
|
217
215
|
slotProps,
|
|
218
216
|
label,
|
|
219
217
|
unstableFieldRef: handleFieldRef,
|
|
220
|
-
inputRef: handleInputRef,
|
|
221
218
|
onKeyDown: onSpaceOrEnter(openPicker, fieldProps.onKeyDown),
|
|
222
219
|
onSelectedSectionsChange: handleSelectedSectionsChange,
|
|
223
220
|
onBlur,
|
|
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
3
3
|
const _excluded = ["props"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { useSlotProps } from '@mui/base/utils';
|
|
6
|
-
import { useLicenseVerifier } from '@mui/x-license
|
|
6
|
+
import { useLicenseVerifier } from '@mui/x-license';
|
|
7
7
|
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
|
|
8
8
|
import { PickersLayout } from '@mui/x-date-pickers/PickersLayout';
|
|
9
9
|
import { usePicker, PickersModalDialog, useLocaleText } from '@mui/x-date-pickers/internals';
|
|
@@ -27,6 +27,9 @@ export const useMobileRangePicker = _ref => {
|
|
|
27
27
|
sx,
|
|
28
28
|
format,
|
|
29
29
|
formatDensity,
|
|
30
|
+
enableAccessibleFieldDOMStructure,
|
|
31
|
+
selectedSections,
|
|
32
|
+
onSelectedSectionsChange,
|
|
30
33
|
timezone,
|
|
31
34
|
label,
|
|
32
35
|
inputRef,
|
|
@@ -36,11 +39,13 @@ export const useMobileRangePicker = _ref => {
|
|
|
36
39
|
disableOpenPicker,
|
|
37
40
|
localeText
|
|
38
41
|
} = props;
|
|
42
|
+
const startFieldRef = React.useRef(null);
|
|
43
|
+
const endFieldRef = React.useRef(null);
|
|
44
|
+
const fieldType = slots.field.fieldType ?? 'multi-input';
|
|
39
45
|
const {
|
|
40
46
|
rangePosition,
|
|
41
|
-
onRangePositionChange
|
|
42
|
-
|
|
43
|
-
} = useRangePosition(props);
|
|
47
|
+
onRangePositionChange
|
|
48
|
+
} = useRangePosition(props, fieldType === 'single-input' ? startFieldRef : undefined);
|
|
44
49
|
const labelId = useId();
|
|
45
50
|
const contextLocaleText = useLocaleText();
|
|
46
51
|
const {
|
|
@@ -53,13 +58,13 @@ export const useMobileRangePicker = _ref => {
|
|
|
53
58
|
props,
|
|
54
59
|
wrapperVariant: 'mobile',
|
|
55
60
|
autoFocusView: true,
|
|
61
|
+
fieldRef: rangePosition === 'start' ? startFieldRef : endFieldRef,
|
|
56
62
|
additionalViewProps: {
|
|
57
63
|
rangePosition,
|
|
58
64
|
onRangePositionChange
|
|
59
65
|
}
|
|
60
66
|
}));
|
|
61
67
|
const Field = slots.field;
|
|
62
|
-
const fieldType = Field.fieldType ?? 'multi-input';
|
|
63
68
|
const fieldProps = useSlotProps({
|
|
64
69
|
elementType: Field,
|
|
65
70
|
externalSlotProps: innerSlotProps?.field,
|
|
@@ -70,11 +75,14 @@ export const useMobileRangePicker = _ref => {
|
|
|
70
75
|
sx,
|
|
71
76
|
format,
|
|
72
77
|
formatDensity,
|
|
78
|
+
enableAccessibleFieldDOMStructure,
|
|
79
|
+
selectedSections,
|
|
80
|
+
onSelectedSectionsChange,
|
|
73
81
|
timezone
|
|
74
|
-
},
|
|
82
|
+
}, inputRef ? {
|
|
75
83
|
inputRef,
|
|
76
84
|
name
|
|
77
|
-
}),
|
|
85
|
+
} : {}),
|
|
78
86
|
ownerState: props
|
|
79
87
|
});
|
|
80
88
|
const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
|
|
@@ -90,10 +98,11 @@ export const useMobileRangePicker = _ref => {
|
|
|
90
98
|
localeText,
|
|
91
99
|
rangePosition,
|
|
92
100
|
onRangePositionChange,
|
|
93
|
-
singleInputFieldRef,
|
|
94
101
|
pickerSlots: slots,
|
|
95
102
|
pickerSlotProps: innerSlotProps,
|
|
96
|
-
fieldProps
|
|
103
|
+
fieldProps,
|
|
104
|
+
startFieldRef,
|
|
105
|
+
endFieldRef
|
|
97
106
|
});
|
|
98
107
|
const slotPropsForLayout = _extends({}, innerSlotProps, {
|
|
99
108
|
tabs: _extends({}, innerSlotProps?.tabs, {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import useForkRef from '@mui/utils/useForkRef';
|
|
3
|
+
import useEventCallback from '@mui/utils/useEventCallback';
|
|
4
|
+
export const useMultiInputFieldSelectedSections = params => {
|
|
5
|
+
const unstableEndFieldRef = React.useRef(null);
|
|
6
|
+
const handleUnstableEndFieldRef = useForkRef(params.unstableEndFieldRef, unstableEndFieldRef);
|
|
7
|
+
const [startSelectedSection, setStartSelectedSection] = React.useState(params.selectedSections ?? null);
|
|
8
|
+
const [endSelectedSection, setEndSelectedSection] = React.useState(null);
|
|
9
|
+
const getActiveField = () => {
|
|
10
|
+
if (unstableEndFieldRef.current && unstableEndFieldRef.current.isFieldFocused()) {
|
|
11
|
+
return 'end';
|
|
12
|
+
}
|
|
13
|
+
return 'start';
|
|
14
|
+
};
|
|
15
|
+
const handleStartSelectedSectionChange = useEventCallback(newSelectedSections => {
|
|
16
|
+
setStartSelectedSection(newSelectedSections);
|
|
17
|
+
if (getActiveField() === 'start') {
|
|
18
|
+
params.onSelectedSectionsChange?.(newSelectedSections);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
const handleEndSelectedSectionChange = useEventCallback(newSelectedSections => {
|
|
22
|
+
setEndSelectedSection(newSelectedSections);
|
|
23
|
+
if (getActiveField() === 'end') {
|
|
24
|
+
params.onSelectedSectionsChange?.(newSelectedSections);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const activeField = getActiveField();
|
|
28
|
+
return {
|
|
29
|
+
start: {
|
|
30
|
+
unstableFieldRef: params.unstableStartFieldRef,
|
|
31
|
+
selectedSections: activeField === 'start' && params.selectedSections !== undefined ? params.selectedSections : startSelectedSection,
|
|
32
|
+
onSelectedSectionsChange: handleStartSelectedSectionChange
|
|
33
|
+
},
|
|
34
|
+
end: {
|
|
35
|
+
unstableFieldRef: handleUnstableEndFieldRef,
|
|
36
|
+
selectedSections: activeField === 'end' && params.selectedSections !== undefined ? params.selectedSections : endSelectedSection,
|
|
37
|
+
onSelectedSectionsChange: handleEndSelectedSectionChange
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
3
3
|
import { unstable_useDateField as useDateField } from '@mui/x-date-pickers/DateField';
|
|
4
|
-
import { useLocalizationContext, useValidation, useControlledValueWithTimezone } from '@mui/x-date-pickers/internals';
|
|
5
|
-
import { useDefaultizedDateRangeFieldProps } from '../../../SingleInputDateRangeField/useSingleInputDateRangeField';
|
|
4
|
+
import { useLocalizationContext, useValidation, useControlledValueWithTimezone, useDefaultizedDateField } from '@mui/x-date-pickers/internals';
|
|
6
5
|
import { validateDateRange } from '../../utils/validation/validateDateRange';
|
|
7
6
|
import { rangeValueManager } from '../../utils/valueManagers';
|
|
8
7
|
import { excludeProps } from './shared';
|
|
8
|
+
import { useMultiInputFieldSelectedSections } from '../useMultiInputFieldSelectedSections';
|
|
9
9
|
export const useMultiInputDateRangeField = ({
|
|
10
10
|
sharedProps: inSharedProps,
|
|
11
11
|
startTextFieldProps,
|
|
@@ -13,7 +13,7 @@ export const useMultiInputDateRangeField = ({
|
|
|
13
13
|
endTextFieldProps,
|
|
14
14
|
unstableEndFieldRef
|
|
15
15
|
}) => {
|
|
16
|
-
const sharedProps =
|
|
16
|
+
const sharedProps = useDefaultizedDateField(inSharedProps);
|
|
17
17
|
const adapter = useLocalizationContext();
|
|
18
18
|
const {
|
|
19
19
|
value: valueProp,
|
|
@@ -26,7 +26,9 @@ export const useMultiInputDateRangeField = ({
|
|
|
26
26
|
readOnly,
|
|
27
27
|
selectedSections,
|
|
28
28
|
onSelectedSectionsChange,
|
|
29
|
-
timezone: timezoneProp
|
|
29
|
+
timezone: timezoneProp,
|
|
30
|
+
enableAccessibleFieldDOMStructure,
|
|
31
|
+
autoFocus
|
|
30
32
|
} = sharedProps;
|
|
31
33
|
const {
|
|
32
34
|
value,
|
|
@@ -63,37 +65,40 @@ export const useMultiInputDateRangeField = ({
|
|
|
63
65
|
value,
|
|
64
66
|
timezone
|
|
65
67
|
}), validateDateRange, rangeValueManager.isSameError, rangeValueManager.defaultErrorState);
|
|
68
|
+
const selectedSectionsResponse = useMultiInputFieldSelectedSections({
|
|
69
|
+
selectedSections,
|
|
70
|
+
onSelectedSectionsChange,
|
|
71
|
+
unstableStartFieldRef,
|
|
72
|
+
unstableEndFieldRef
|
|
73
|
+
});
|
|
66
74
|
const startFieldProps = _extends({
|
|
67
75
|
error: !!validationError[0]
|
|
68
|
-
}, startTextFieldProps, {
|
|
76
|
+
}, startTextFieldProps, selectedSectionsResponse.start, {
|
|
69
77
|
disabled,
|
|
70
78
|
readOnly,
|
|
71
79
|
format,
|
|
72
80
|
formatDensity,
|
|
73
81
|
shouldRespectLeadingZeros,
|
|
74
82
|
timezone,
|
|
75
|
-
unstableFieldRef: unstableStartFieldRef,
|
|
76
83
|
value: valueProp === undefined ? undefined : valueProp[0],
|
|
77
84
|
defaultValue: defaultValue === undefined ? undefined : defaultValue[0],
|
|
78
85
|
onChange: handleStartDateChange,
|
|
79
|
-
|
|
80
|
-
|
|
86
|
+
enableAccessibleFieldDOMStructure,
|
|
87
|
+
autoFocus // Do not add on end field.
|
|
81
88
|
});
|
|
82
89
|
const endFieldProps = _extends({
|
|
83
90
|
error: !!validationError[1]
|
|
84
|
-
}, endTextFieldProps, {
|
|
91
|
+
}, endTextFieldProps, selectedSectionsResponse.end, {
|
|
85
92
|
format,
|
|
86
93
|
formatDensity,
|
|
87
94
|
shouldRespectLeadingZeros,
|
|
88
95
|
disabled,
|
|
89
96
|
readOnly,
|
|
90
97
|
timezone,
|
|
91
|
-
unstableFieldRef: unstableEndFieldRef,
|
|
92
98
|
value: valueProp === undefined ? undefined : valueProp[1],
|
|
93
99
|
defaultValue: defaultValue === undefined ? undefined : defaultValue[1],
|
|
94
100
|
onChange: handleEndDateChange,
|
|
95
|
-
|
|
96
|
-
onSelectedSectionsChange
|
|
101
|
+
enableAccessibleFieldDOMStructure
|
|
97
102
|
});
|
|
98
103
|
const startDateResponse = useDateField(startFieldProps);
|
|
99
104
|
const endDateResponse = useDateField(endFieldProps);
|
|
@@ -1,26 +1,11 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
3
3
|
import { unstable_useDateTimeField as useDateTimeField } from '@mui/x-date-pickers/DateTimeField';
|
|
4
|
-
import {
|
|
4
|
+
import { useLocalizationContext, useValidation, useControlledValueWithTimezone, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
|
|
5
5
|
import { validateDateTimeRange } from '../../utils/validation/validateDateTimeRange';
|
|
6
6
|
import { rangeValueManager } from '../../utils/valueManagers';
|
|
7
7
|
import { excludeProps } from './shared';
|
|
8
|
-
|
|
9
|
-
const utils = useUtils();
|
|
10
|
-
const defaultDates = useDefaultDates();
|
|
11
|
-
const ampm = props.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
12
|
-
const defaultFormat = ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h;
|
|
13
|
-
return _extends({}, props, {
|
|
14
|
-
disablePast: props.disablePast ?? false,
|
|
15
|
-
disableFuture: props.disableFuture ?? false,
|
|
16
|
-
format: props.format ?? defaultFormat,
|
|
17
|
-
minDate: applyDefaultDate(utils, props.minDateTime ?? props.minDate, defaultDates.minDate),
|
|
18
|
-
maxDate: applyDefaultDate(utils, props.maxDateTime ?? props.maxDate, defaultDates.maxDate),
|
|
19
|
-
minTime: props.minDateTime ?? props.minTime,
|
|
20
|
-
maxTime: props.maxDateTime ?? props.maxTime,
|
|
21
|
-
disableIgnoringDatePartForTimeValidation: Boolean(props.minDateTime || props.maxDateTime)
|
|
22
|
-
});
|
|
23
|
-
};
|
|
8
|
+
import { useMultiInputFieldSelectedSections } from '../useMultiInputFieldSelectedSections';
|
|
24
9
|
export const useMultiInputDateTimeRangeField = ({
|
|
25
10
|
sharedProps: inSharedProps,
|
|
26
11
|
startTextFieldProps,
|
|
@@ -28,19 +13,22 @@ export const useMultiInputDateTimeRangeField = ({
|
|
|
28
13
|
endTextFieldProps,
|
|
29
14
|
unstableEndFieldRef
|
|
30
15
|
}) => {
|
|
31
|
-
const sharedProps =
|
|
16
|
+
const sharedProps = useDefaultizedDateTimeField(inSharedProps);
|
|
32
17
|
const adapter = useLocalizationContext();
|
|
33
18
|
const {
|
|
34
19
|
value: valueProp,
|
|
35
20
|
defaultValue,
|
|
36
21
|
format,
|
|
22
|
+
formatDensity,
|
|
37
23
|
shouldRespectLeadingZeros,
|
|
38
|
-
timezone: timezoneProp,
|
|
39
24
|
onChange,
|
|
40
25
|
disabled,
|
|
41
26
|
readOnly,
|
|
42
27
|
selectedSections,
|
|
43
|
-
onSelectedSectionsChange
|
|
28
|
+
onSelectedSectionsChange,
|
|
29
|
+
timezone: timezoneProp,
|
|
30
|
+
enableAccessibleFieldDOMStructure,
|
|
31
|
+
autoFocus
|
|
44
32
|
} = sharedProps;
|
|
45
33
|
const {
|
|
46
34
|
value,
|
|
@@ -77,35 +65,40 @@ export const useMultiInputDateTimeRangeField = ({
|
|
|
77
65
|
value,
|
|
78
66
|
timezone
|
|
79
67
|
}), validateDateTimeRange, rangeValueManager.isSameError, rangeValueManager.defaultErrorState);
|
|
68
|
+
const selectedSectionsResponse = useMultiInputFieldSelectedSections({
|
|
69
|
+
selectedSections,
|
|
70
|
+
onSelectedSectionsChange,
|
|
71
|
+
unstableStartFieldRef,
|
|
72
|
+
unstableEndFieldRef
|
|
73
|
+
});
|
|
80
74
|
const startFieldProps = _extends({
|
|
81
75
|
error: !!validationError[0]
|
|
82
|
-
}, startTextFieldProps, {
|
|
83
|
-
format,
|
|
84
|
-
shouldRespectLeadingZeros,
|
|
76
|
+
}, startTextFieldProps, selectedSectionsResponse.start, {
|
|
85
77
|
disabled,
|
|
86
78
|
readOnly,
|
|
79
|
+
format,
|
|
80
|
+
formatDensity,
|
|
81
|
+
shouldRespectLeadingZeros,
|
|
87
82
|
timezone,
|
|
88
|
-
unstableFieldRef: unstableStartFieldRef,
|
|
89
83
|
value: valueProp === undefined ? undefined : valueProp[0],
|
|
90
84
|
defaultValue: defaultValue === undefined ? undefined : defaultValue[0],
|
|
91
85
|
onChange: handleStartDateChange,
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
enableAccessibleFieldDOMStructure,
|
|
87
|
+
autoFocus // Do not add on end field.
|
|
94
88
|
});
|
|
95
89
|
const endFieldProps = _extends({
|
|
96
90
|
error: !!validationError[1]
|
|
97
|
-
}, endTextFieldProps, {
|
|
91
|
+
}, endTextFieldProps, selectedSectionsResponse.end, {
|
|
98
92
|
format,
|
|
93
|
+
formatDensity,
|
|
99
94
|
shouldRespectLeadingZeros,
|
|
100
95
|
disabled,
|
|
101
96
|
readOnly,
|
|
102
97
|
timezone,
|
|
103
|
-
unstableFieldRef: unstableEndFieldRef,
|
|
104
98
|
value: valueProp === undefined ? undefined : valueProp[1],
|
|
105
99
|
defaultValue: defaultValue === undefined ? undefined : defaultValue[1],
|
|
106
100
|
onChange: handleEndDateChange,
|
|
107
|
-
|
|
108
|
-
onSelectedSectionsChange
|
|
101
|
+
enableAccessibleFieldDOMStructure
|
|
109
102
|
});
|
|
110
103
|
const startDateResponse = useDateTimeField(startFieldProps);
|
|
111
104
|
const endDateResponse = useDateTimeField(endFieldProps);
|
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
3
3
|
import { unstable_useTimeField as useTimeField } from '@mui/x-date-pickers/TimeField';
|
|
4
|
-
import { useLocalizationContext,
|
|
4
|
+
import { useLocalizationContext, useValidation, useControlledValueWithTimezone, useDefaultizedTimeField } from '@mui/x-date-pickers/internals';
|
|
5
5
|
import { validateTimeRange } from '../../utils/validation/validateTimeRange';
|
|
6
6
|
import { rangeValueManager } from '../../utils/valueManagers';
|
|
7
7
|
import { excludeProps } from './shared';
|
|
8
|
-
|
|
9
|
-
const utils = useUtils();
|
|
10
|
-
const ampm = props.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
11
|
-
const defaultFormat = ampm ? utils.formats.fullTime12h : utils.formats.fullTime24h;
|
|
12
|
-
return _extends({}, props, {
|
|
13
|
-
disablePast: props.disablePast ?? false,
|
|
14
|
-
disableFuture: props.disableFuture ?? false,
|
|
15
|
-
format: props.format ?? defaultFormat
|
|
16
|
-
});
|
|
17
|
-
};
|
|
8
|
+
import { useMultiInputFieldSelectedSections } from '../useMultiInputFieldSelectedSections';
|
|
18
9
|
export const useMultiInputTimeRangeField = ({
|
|
19
10
|
sharedProps: inSharedProps,
|
|
20
11
|
startTextFieldProps,
|
|
@@ -22,19 +13,22 @@ export const useMultiInputTimeRangeField = ({
|
|
|
22
13
|
endTextFieldProps,
|
|
23
14
|
unstableEndFieldRef
|
|
24
15
|
}) => {
|
|
25
|
-
const sharedProps =
|
|
16
|
+
const sharedProps = useDefaultizedTimeField(inSharedProps);
|
|
26
17
|
const adapter = useLocalizationContext();
|
|
27
18
|
const {
|
|
28
19
|
value: valueProp,
|
|
29
20
|
defaultValue,
|
|
30
21
|
format,
|
|
22
|
+
formatDensity,
|
|
31
23
|
shouldRespectLeadingZeros,
|
|
32
|
-
timezone: timezoneProp,
|
|
33
24
|
onChange,
|
|
34
25
|
disabled,
|
|
35
26
|
readOnly,
|
|
36
27
|
selectedSections,
|
|
37
|
-
onSelectedSectionsChange
|
|
28
|
+
onSelectedSectionsChange,
|
|
29
|
+
timezone: timezoneProp,
|
|
30
|
+
enableAccessibleFieldDOMStructure,
|
|
31
|
+
autoFocus
|
|
38
32
|
} = sharedProps;
|
|
39
33
|
const {
|
|
40
34
|
value,
|
|
@@ -71,35 +65,40 @@ export const useMultiInputTimeRangeField = ({
|
|
|
71
65
|
value,
|
|
72
66
|
timezone
|
|
73
67
|
}), validateTimeRange, rangeValueManager.isSameError, rangeValueManager.defaultErrorState);
|
|
68
|
+
const selectedSectionsResponse = useMultiInputFieldSelectedSections({
|
|
69
|
+
selectedSections,
|
|
70
|
+
onSelectedSectionsChange,
|
|
71
|
+
unstableStartFieldRef,
|
|
72
|
+
unstableEndFieldRef
|
|
73
|
+
});
|
|
74
74
|
const startFieldProps = _extends({
|
|
75
75
|
error: !!validationError[0]
|
|
76
|
-
}, startTextFieldProps, {
|
|
77
|
-
format,
|
|
78
|
-
shouldRespectLeadingZeros,
|
|
76
|
+
}, startTextFieldProps, selectedSectionsResponse.start, {
|
|
79
77
|
disabled,
|
|
80
78
|
readOnly,
|
|
79
|
+
format,
|
|
80
|
+
formatDensity,
|
|
81
|
+
shouldRespectLeadingZeros,
|
|
81
82
|
timezone,
|
|
82
|
-
unstableFieldRef: unstableStartFieldRef,
|
|
83
83
|
value: valueProp === undefined ? undefined : valueProp[0],
|
|
84
84
|
defaultValue: defaultValue === undefined ? undefined : defaultValue[0],
|
|
85
85
|
onChange: handleStartDateChange,
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
enableAccessibleFieldDOMStructure,
|
|
87
|
+
autoFocus // Do not add on end field.
|
|
88
88
|
});
|
|
89
89
|
const endFieldProps = _extends({
|
|
90
90
|
error: !!validationError[1]
|
|
91
|
-
}, endTextFieldProps, {
|
|
91
|
+
}, endTextFieldProps, selectedSectionsResponse.end, {
|
|
92
92
|
format,
|
|
93
|
+
formatDensity,
|
|
93
94
|
shouldRespectLeadingZeros,
|
|
94
95
|
disabled,
|
|
95
96
|
readOnly,
|
|
96
97
|
timezone,
|
|
97
|
-
unstableFieldRef: unstableEndFieldRef,
|
|
98
98
|
value: valueProp === undefined ? undefined : valueProp[1],
|
|
99
99
|
defaultValue: defaultValue === undefined ? undefined : defaultValue[1],
|
|
100
100
|
onChange: handleEndDateChange,
|
|
101
|
-
|
|
102
|
-
onSelectedSectionsChange
|
|
101
|
+
enableAccessibleFieldDOMStructure
|
|
103
102
|
});
|
|
104
103
|
const startDateResponse = useTimeField(startFieldProps);
|
|
105
104
|
const endDateResponse = useTimeField(endFieldProps);
|