@mui/x-date-pickers-pro 8.0.0-alpha.12 → 8.0.0-alpha.13
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 +299 -0
- package/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
- package/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
- package/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
- package/esm/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/esm/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/esm/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
- package/esm/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
- package/esm/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/esm/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
- package/esm/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/esm/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/esm/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/esm/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
- package/esm/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
- package/esm/hooks/index.d.ts +2 -1
- package/esm/hooks/useMultiInputRangeField/index.d.ts +2 -1
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeField.js +41 -50
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +25 -0
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -2
- package/esm/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
- package/esm/hooks/useMultiInputRangeField/useTextFieldProps.js +141 -0
- package/esm/index.js +1 -1
- package/esm/internals/hooks/models/index.d.ts +1 -1
- package/esm/internals/hooks/models/useRangePicker.d.ts +1 -8
- package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +8 -75
- package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +16 -4
- package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +17 -4
- package/esm/internals/hooks/useRangePosition.d.ts +1 -4
- package/esm/internals/hooks/useRangePosition.js +1 -18
- package/esm/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
- package/esm/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +26 -32
- package/esm/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
- package/esm/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
- package/esm/internals/utils/createMultiInputRangeField/useTextFieldProps.js +36 -0
- package/esm/internals/utils/date-fields-utils.d.ts +4 -1
- package/esm/internals/utils/date-fields-utils.js +5 -1
- package/esm/internals/utils/releaseInfo.js +1 -1
- package/esm/managers/useDateRangeManager.js +8 -1
- package/esm/managers/useDateTimeRangeManager.js +8 -1
- package/esm/managers/useTimeRangeManager.js +10 -1
- package/esm/models/fields.d.ts +5 -18
- package/hooks/index.d.ts +2 -1
- package/hooks/useMultiInputRangeField/index.d.ts +2 -1
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +40 -51
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +31 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -1
- package/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
- package/hooks/useMultiInputRangeField/useTextFieldProps.js +149 -0
- package/index.js +1 -1
- package/internals/hooks/models/index.d.ts +1 -1
- package/internals/hooks/models/useRangePicker.d.ts +1 -8
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +7 -74
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +16 -4
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +17 -4
- package/internals/hooks/useRangePosition.d.ts +1 -4
- package/internals/hooks/useRangePosition.js +1 -18
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +25 -31
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
- package/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
- package/internals/utils/createMultiInputRangeField/useTextFieldProps.js +44 -0
- package/internals/utils/date-fields-utils.d.ts +4 -1
- package/internals/utils/date-fields-utils.js +6 -1
- package/internals/utils/releaseInfo.js +1 -1
- package/managers/useDateRangeManager.js +8 -1
- package/managers/useDateTimeRangeManager.js +8 -1
- package/managers/useTimeRangeManager.js +10 -1
- package/models/fields.d.ts +5 -18
- package/modern/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/modern/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/modern/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
- package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
- package/modern/hooks/index.d.ts +2 -1
- package/modern/hooks/useMultiInputRangeField/index.d.ts +2 -1
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +41 -50
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +25 -0
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -2
- package/modern/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
- package/modern/hooks/useMultiInputRangeField/useTextFieldProps.js +141 -0
- package/modern/index.js +1 -1
- package/modern/internals/hooks/models/index.d.ts +1 -1
- package/modern/internals/hooks/models/useRangePicker.d.ts +1 -8
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +8 -75
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +16 -4
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +17 -4
- package/modern/internals/hooks/useRangePosition.d.ts +1 -4
- package/modern/internals/hooks/useRangePosition.js +1 -18
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +26 -32
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
- package/modern/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
- package/modern/internals/utils/createMultiInputRangeField/useTextFieldProps.js +36 -0
- package/modern/internals/utils/date-fields-utils.d.ts +4 -1
- package/modern/internals/utils/date-fields-utils.js +5 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/managers/useDateRangeManager.js +8 -1
- package/modern/managers/useDateTimeRangeManager.js +8 -1
- package/modern/managers/useTimeRangeManager.js +10 -1
- package/modern/models/fields.d.ts +5 -18
- package/package.json +4 -4
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -59
- package/esm/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
- package/esm/internals/hooks/useEnrichedRangePickerField.js +0 -236
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -66
- package/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
- package/internals/hooks/useEnrichedRangePickerField.js +0 -245
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -59
- package/modern/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
- package/modern/internals/hooks/useEnrichedRangePickerField.js +0 -236
package/models/fields.d.ts
CHANGED
|
@@ -1,24 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { PickerValue, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
3
3
|
import { FieldRef, PickerFieldSlotProps } from '@mui/x-date-pickers/models';
|
|
4
|
+
import type { UseMultiInputRangeFieldTextFieldProps } from '../hooks/useMultiInputRangeField';
|
|
4
5
|
export type { FieldRangeSection } from '@mui/x-date-pickers/internals';
|
|
5
6
|
export type FieldType = 'single-input' | 'multi-input';
|
|
6
7
|
/**
|
|
7
8
|
* Props the `textField` slot of the multi input field can receive when used inside a picker.
|
|
8
9
|
*/
|
|
9
|
-
export
|
|
10
|
+
export type MultiInputFieldSlotTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = UseMultiInputRangeFieldTextFieldProps<TEnableAccessibleFieldDOMStructure, {
|
|
10
11
|
label?: React.ReactNode;
|
|
11
|
-
id?: string;
|
|
12
|
-
onKeyDown?: React.KeyboardEventHandler;
|
|
13
|
-
onClick?: React.MouseEventHandler;
|
|
14
|
-
onFocus?: React.FocusEventHandler;
|
|
15
12
|
focused?: boolean;
|
|
16
|
-
|
|
17
|
-
ref?: React.Ref<any>;
|
|
18
|
-
endAdornment?: React.ReactNode;
|
|
19
|
-
startAdornment?: React.ReactNode;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
13
|
+
}>;
|
|
22
14
|
/**
|
|
23
15
|
* Props the `root` slot of the multi input field can receive when used inside a picker.
|
|
24
16
|
*/
|
|
@@ -39,9 +31,4 @@ export interface RangeFieldSeparatorProps {
|
|
|
39
31
|
/**
|
|
40
32
|
* Props the `slotProps.field` of a range picker component can receive.
|
|
41
33
|
*/
|
|
42
|
-
export type PickerRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> = PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & RangeFieldSeparatorProps;
|
|
43
|
-
/**
|
|
44
|
-
* Props the text field receives when used with a multi input picker.
|
|
45
|
-
* Only contains what the MUI components are passing to the text field, not what users can pass using the `props.slotProps.textField`.
|
|
46
|
-
*/
|
|
47
|
-
export type BaseMultiInputPickersTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> = Omit<UseFieldResponse<TEnableAccessibleFieldDOMStructure, MultiInputFieldSlotTextFieldProps>, 'slots' | 'slotProps' | 'clearable' | 'onClear' | 'openPickerButtonPosition' | 'clearButtonPosition' | 'openPickerAriaLabel'>;
|
|
34
|
+
export type PickerRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> = PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & RangeFieldSeparatorProps;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseSingleInputFieldProps
|
|
1
|
+
import { BaseSingleInputFieldProps } from '@mui/x-date-pickers/internals';
|
|
2
2
|
import { DesktopDateRangePickerProps, DesktopDateRangePickerSlots, DesktopDateRangePickerSlotProps } from "../DesktopDateRangePicker/index.js";
|
|
3
3
|
import { MobileDateRangePickerProps, MobileDateRangePickerSlots, MobileDateRangePickerSlotProps } from "../MobileDateRangePicker/index.js";
|
|
4
4
|
import { ValidateDateRangeProps } from "../validation/index.js";
|
|
@@ -30,4 +30,4 @@ export interface DateRangePickerProps<TEnableAccessibleFieldDOMStructure extends
|
|
|
30
30
|
/**
|
|
31
31
|
* Props the field can receive when used inside a date range picker (<DateRangePicker />, <DesktopDateRangePicker /> or <MobileDateRangePicker /> component).
|
|
32
32
|
*/
|
|
33
|
-
export type DateRangePickerFieldProps = ValidateDateRangeProps & BaseSingleInputFieldProps
|
|
33
|
+
export type DateRangePickerFieldProps = ValidateDateRangeProps & BaseSingleInputFieldProps;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseSingleInputFieldProps
|
|
1
|
+
import { BaseSingleInputFieldProps } from '@mui/x-date-pickers/internals';
|
|
2
2
|
import { DesktopDateTimeRangePickerProps, DesktopDateTimeRangePickerSlots, DesktopDateTimeRangePickerSlotProps } from "../DesktopDateTimeRangePicker/index.js";
|
|
3
3
|
import { MobileDateTimeRangePickerProps, MobileDateTimeRangePickerSlots, MobileDateTimeRangePickerSlotProps } from "../MobileDateTimeRangePicker/index.js";
|
|
4
4
|
import type { ValidateDateTimeRangeProps } from '../validation';
|
|
@@ -25,4 +25,4 @@ export interface DateTimeRangePickerProps<TEnableAccessibleFieldDOMStructure ext
|
|
|
25
25
|
/**
|
|
26
26
|
* Props the field can receive when used inside a date time range picker (<DateTimeRangePicker />, <DesktopDateTimeRangePicker /> or <MobileDateTimeRangePicker /> component).
|
|
27
27
|
*/
|
|
28
|
-
export type DateTimeRangePickerFieldProps = ValidateDateTimeRangeProps & BaseSingleInputFieldProps
|
|
28
|
+
export type DateTimeRangePickerFieldProps = ValidateDateTimeRangeProps & BaseSingleInputFieldProps;
|
|
@@ -10,7 +10,7 @@ import { refType } from '@mui/utils';
|
|
|
10
10
|
import { rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
11
11
|
import { useDateRangePickerDefaultizedProps } from "../DateRangePicker/shared.js";
|
|
12
12
|
import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js";
|
|
13
|
-
import {
|
|
13
|
+
import { SingleInputDateRangeField } from "../SingleInputDateRangeField/index.js";
|
|
14
14
|
import { useDesktopRangePicker } from "../internals/hooks/useDesktopRangePicker/index.js";
|
|
15
15
|
import { validateDateRange } from "../validation/index.js";
|
|
16
16
|
const emptyActions = [];
|
|
@@ -41,7 +41,7 @@ const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDat
|
|
|
41
41
|
views: ['day'],
|
|
42
42
|
openTo: 'day',
|
|
43
43
|
slots: _extends({
|
|
44
|
-
field:
|
|
44
|
+
field: SingleInputDateRangeField
|
|
45
45
|
}, defaultizedProps.slots),
|
|
46
46
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
47
47
|
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
|
|
@@ -19,7 +19,7 @@ import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js"
|
|
|
19
19
|
import { useDesktopRangePicker } from "../internals/hooks/useDesktopRangePicker/index.js";
|
|
20
20
|
import { validateDateTimeRange } from "../validation/index.js";
|
|
21
21
|
import { useDateTimeRangePickerDefaultizedProps } from "../DateTimeRangePicker/shared.js";
|
|
22
|
-
import {
|
|
22
|
+
import { SingleInputDateTimeRangeField } from "../SingleInputDateTimeRangeField/index.js";
|
|
23
23
|
import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
|
|
24
24
|
import { RANGE_VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
25
25
|
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
@@ -107,7 +107,7 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
107
107
|
ampmInClock: true,
|
|
108
108
|
calendars: defaultizedProps.calendars ?? 1,
|
|
109
109
|
slots: _extends({
|
|
110
|
-
field:
|
|
110
|
+
field: SingleInputDateTimeRangeField,
|
|
111
111
|
layout: DesktopDateTimePickerLayout
|
|
112
112
|
}, defaultizedProps.slots),
|
|
113
113
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
@@ -10,7 +10,7 @@ import { refType } from '@mui/utils';
|
|
|
10
10
|
import { rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
11
11
|
import { useDateRangePickerDefaultizedProps } from "../DateRangePicker/shared.js";
|
|
12
12
|
import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js";
|
|
13
|
-
import {
|
|
13
|
+
import { SingleInputDateRangeField } from "../SingleInputDateRangeField/index.js";
|
|
14
14
|
import { useMobileRangePicker } from "../internals/hooks/useMobileRangePicker/index.js";
|
|
15
15
|
import { validateDateRange } from "../validation/index.js";
|
|
16
16
|
/**
|
|
@@ -41,7 +41,7 @@ const MobileDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateR
|
|
|
41
41
|
views: ['day'],
|
|
42
42
|
openTo: 'day',
|
|
43
43
|
slots: _extends({
|
|
44
|
-
field:
|
|
44
|
+
field: SingleInputDateRangeField
|
|
45
45
|
}, defaultizedProps.slots),
|
|
46
46
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
47
47
|
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
|
|
@@ -17,7 +17,7 @@ import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js"
|
|
|
17
17
|
import { useMobileRangePicker } from "../internals/hooks/useMobileRangePicker/index.js";
|
|
18
18
|
import { validateDateTimeRange } from "../validation/index.js";
|
|
19
19
|
import { useDateTimeRangePickerDefaultizedProps } from "../DateTimeRangePicker/shared.js";
|
|
20
|
-
import {
|
|
20
|
+
import { SingleInputDateTimeRangeField } from "../SingleInputDateTimeRangeField/index.js";
|
|
21
21
|
import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
|
|
22
22
|
import { RANGE_VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
23
23
|
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
@@ -113,7 +113,7 @@ const MobileDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function MobileD
|
|
|
113
113
|
// force current calendar position, since we only have one calendar
|
|
114
114
|
currentMonthCalendarPosition: 1,
|
|
115
115
|
slots: _extends({
|
|
116
|
-
field:
|
|
116
|
+
field: SingleInputDateTimeRangeField
|
|
117
117
|
}, defaultizedProps.slots),
|
|
118
118
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
119
119
|
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseSingleInputDateRangeFieldProps } from "./SingleInputDateRangeField.types.js";
|
|
2
|
-
export declare const useSingleInputDateRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "
|
|
2
|
+
export declare const useSingleInputDateRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "focused" | "enableAccessibleFieldDOMStructure" | "referenceDate" | "timezone" | "formatDensity" | "selectedSections" | "onSelectedSectionsChange" | "shouldRespectLeadingZeros" | "unstableFieldRef" | keyof import("@mui/x-date-pickers/internals").BaseDateValidationProps | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "unstableStartFieldRef" | "unstableEndFieldRef" | "dateSeparator">>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseSingleInputDateTimeRangeFieldProps } from "./SingleInputDateTimeRangeField.types.js";
|
|
2
|
-
export declare const useSingleInputDateTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "
|
|
2
|
+
export declare const useSingleInputDateTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "focused" | "enableAccessibleFieldDOMStructure" | "referenceDate" | "timezone" | "formatDensity" | "selectedSections" | "onSelectedSectionsChange" | "shouldRespectLeadingZeros" | "unstableFieldRef" | "ampm" | "disableFuture" | "maxDate" | "disablePast" | "minDate" | "minTime" | "maxTime" | "minutesStep" | "shouldDisableTime" | "disableIgnoringDatePartForTimeValidation" | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "minDateTime" | "maxDateTime" | "unstableStartFieldRef" | "unstableEndFieldRef" | "dateSeparator">>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseSingleInputTimeRangeFieldProps } from "./SingleInputTimeRangeField.types.js";
|
|
2
|
-
export declare const useSingleInputTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "
|
|
2
|
+
export declare const useSingleInputTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "focused" | "enableAccessibleFieldDOMStructure" | "referenceDate" | "timezone" | "formatDensity" | "selectedSections" | "onSelectedSectionsChange" | "shouldRespectLeadingZeros" | "unstableFieldRef" | "ampm" | keyof import("@mui/x-date-pickers/internals").BaseTimeValidationProps | keyof import("@mui/x-date-pickers/internals").TimeValidationProps | "unstableStartFieldRef" | "unstableEndFieldRef" | "dateSeparator">>;
|
|
@@ -9,6 +9,11 @@ export interface DateRangeViewRendererProps<TView extends DateOrTimeViewWithMeri
|
|
|
9
9
|
* because otherwise some unwanted props would be passed to the HTML element.
|
|
10
10
|
*/
|
|
11
11
|
export declare const renderDateRangeViewCalendar: ({
|
|
12
|
+
views,
|
|
13
|
+
view,
|
|
14
|
+
onViewChange,
|
|
15
|
+
focusedView,
|
|
16
|
+
onFocusedViewChange,
|
|
12
17
|
value,
|
|
13
18
|
defaultValue,
|
|
14
19
|
referenceDate,
|
|
@@ -40,8 +45,5 @@ export declare const renderDateRangeViewCalendar: ({
|
|
|
40
45
|
disableDragEditing,
|
|
41
46
|
displayWeekNumber,
|
|
42
47
|
timezone,
|
|
43
|
-
availableRangePositions
|
|
44
|
-
views,
|
|
45
|
-
view,
|
|
46
|
-
onViewChange
|
|
48
|
+
availableRangePositions
|
|
47
49
|
}: DateRangeViewRendererProps<"day">) => React.JSX.Element;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { isDatePickerView } from '@mui/x-date-pickers/internals';
|
|
2
3
|
import { DateRangeCalendar } from "../DateRangeCalendar/index.js";
|
|
3
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
5
|
/**
|
|
@@ -6,6 +7,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
6
7
|
* because otherwise some unwanted props would be passed to the HTML element.
|
|
7
8
|
*/
|
|
8
9
|
export const renderDateRangeViewCalendar = ({
|
|
10
|
+
views,
|
|
11
|
+
view,
|
|
12
|
+
onViewChange,
|
|
13
|
+
focusedView,
|
|
14
|
+
onFocusedViewChange,
|
|
9
15
|
value,
|
|
10
16
|
defaultValue,
|
|
11
17
|
referenceDate,
|
|
@@ -37,11 +43,13 @@ export const renderDateRangeViewCalendar = ({
|
|
|
37
43
|
disableDragEditing,
|
|
38
44
|
displayWeekNumber,
|
|
39
45
|
timezone,
|
|
40
|
-
availableRangePositions
|
|
41
|
-
views,
|
|
42
|
-
view,
|
|
43
|
-
onViewChange
|
|
46
|
+
availableRangePositions
|
|
44
47
|
}) => /*#__PURE__*/_jsx(DateRangeCalendar, {
|
|
48
|
+
view: view,
|
|
49
|
+
views: views,
|
|
50
|
+
onViewChange: onViewChange,
|
|
51
|
+
focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,
|
|
52
|
+
onFocusedViewChange: onFocusedViewChange,
|
|
45
53
|
value: value,
|
|
46
54
|
defaultValue: defaultValue,
|
|
47
55
|
referenceDate: referenceDate,
|
|
@@ -73,8 +81,5 @@ export const renderDateRangeViewCalendar = ({
|
|
|
73
81
|
disableDragEditing: disableDragEditing,
|
|
74
82
|
displayWeekNumber: displayWeekNumber,
|
|
75
83
|
timezone: timezone,
|
|
76
|
-
availableRangePositions: availableRangePositions
|
|
77
|
-
view: view,
|
|
78
|
-
views: views,
|
|
79
|
-
onViewChange: onViewChange
|
|
84
|
+
availableRangePositions: availableRangePositions
|
|
80
85
|
});
|
package/modern/hooks/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export { usePickerRangePositionContext } from "./usePickerRangePositionContext.js";
|
|
2
|
-
export { useMultiInputRangeField as unstable_useMultiInputRangeField } from "./useMultiInputRangeField/index.js";
|
|
2
|
+
export { useMultiInputRangeField as unstable_useMultiInputRangeField } from "./useMultiInputRangeField/index.js";
|
|
3
|
+
export type { UseMultiInputRangeFieldTextFieldProps } from './useMultiInputRangeField';
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { useMultiInputRangeField } from "./useMultiInputRangeField.js";
|
|
1
|
+
export { useMultiInputRangeField } from "./useMultiInputRangeField.js";
|
|
2
|
+
export type { UseMultiInputRangeFieldTextFieldProps } from './useMultiInputRangeField';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerFieldInternalProps, UseFieldResponse } from '@mui/x-date-pickers/internals';
|
|
2
|
+
import { UseTextFieldBaseForwardedProps } from "./useTextFieldProps.js";
|
|
2
3
|
import { PickerAnyRangeManager } from "../../internals/models/managers.js";
|
|
4
|
+
import { UseMultiInputRangeFieldRootPropsReturnValue } from "./useMultiInputRangeFieldRootProps.js";
|
|
3
5
|
/**
|
|
4
6
|
* Basic example:
|
|
5
7
|
*
|
|
@@ -12,42 +14,59 @@ import { PickerAnyRangeManager } from "../../internals/models/managers.js";
|
|
|
12
14
|
* function MultiInputField(props) {
|
|
13
15
|
* const manager = useDateRangeManager();
|
|
14
16
|
* const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
|
|
15
|
-
* const
|
|
17
|
+
* const response = useMultiInputRangeField({
|
|
16
18
|
* manager,
|
|
17
19
|
* internalProps,
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
+
* startTextFieldProps: {},
|
|
21
|
+
* endTextFieldProps: {},
|
|
22
|
+
* rootProps: forwardedProps,
|
|
20
23
|
* });
|
|
21
24
|
*
|
|
22
25
|
* return (
|
|
23
|
-
* <Box {...
|
|
24
|
-
* <PickersTextField {...
|
|
26
|
+
* <Box {...response.root}>
|
|
27
|
+
* <PickersTextField {...response.startTextField} />
|
|
25
28
|
* <span>{' – '}</span>
|
|
26
|
-
* <PickersTextField {...
|
|
29
|
+
* <PickersTextField {...response.endTextField} />
|
|
27
30
|
* </Box>
|
|
28
31
|
* );
|
|
29
32
|
* }
|
|
30
33
|
* ```
|
|
31
34
|
*
|
|
32
|
-
* @param {UseMultiInputRangeFieldParameters<TManager,
|
|
35
|
+
* @param {UseMultiInputRangeFieldParameters<TManager, TTextFieldProps>} parameters The parameters of the hook.
|
|
33
36
|
* @param {TManager} parameters.manager The manager of the field.
|
|
34
37
|
* @param {PickerManagerFieldInternalProps<TManager>} parameters.internalProps The internal props of the field.
|
|
35
|
-
* @param {
|
|
36
|
-
* @param {
|
|
37
|
-
* @returns {UseMultiInputRangeFieldReturnValue<TManager,
|
|
38
|
+
* @param {TTextFieldProps} parameters.startForwardedProps The forwarded props of the start field.
|
|
39
|
+
* @param {TTextFieldProps} parameters.endForwardedProps The forwarded props of the end field.
|
|
40
|
+
* @returns {UseMultiInputRangeFieldReturnValue<TManager, TTextFieldProps>} The props to pass to the start and the end components.
|
|
38
41
|
*/
|
|
39
|
-
export declare function useMultiInputRangeField<TManager extends PickerAnyRangeManager,
|
|
42
|
+
export declare function useMultiInputRangeField<TManager extends PickerAnyRangeManager, TTextFieldProps extends UseTextFieldBaseForwardedProps, TRootProps extends {
|
|
40
43
|
[key: string]: any;
|
|
41
|
-
}>(parameters: UseMultiInputRangeFieldParameters<TManager,
|
|
42
|
-
interface UseMultiInputRangeFieldParameters<TManager extends PickerAnyRangeManager,
|
|
44
|
+
}>(parameters: UseMultiInputRangeFieldParameters<TManager, TTextFieldProps, TRootProps>): UseMultiInputRangeFieldReturnValue<TManager, TTextFieldProps, TRootProps>;
|
|
45
|
+
interface UseMultiInputRangeFieldParameters<TManager extends PickerAnyRangeManager, TTextFieldProps extends {
|
|
46
|
+
[key: string]: any;
|
|
47
|
+
}, TRootProps extends {
|
|
48
|
+
[key: string]: any;
|
|
49
|
+
}> {
|
|
43
50
|
manager: TManager;
|
|
44
51
|
internalProps: PickerManagerFieldInternalProps<TManager>;
|
|
45
|
-
|
|
46
|
-
|
|
52
|
+
rootProps: TRootProps;
|
|
53
|
+
startTextFieldProps: TTextFieldProps;
|
|
54
|
+
endTextFieldProps: TTextFieldProps;
|
|
47
55
|
}
|
|
48
|
-
interface UseMultiInputRangeFieldReturnValue<TManager extends PickerAnyRangeManager,
|
|
49
|
-
|
|
50
|
-
|
|
56
|
+
interface UseMultiInputRangeFieldReturnValue<TManager extends PickerAnyRangeManager, TTextFieldProps extends {
|
|
57
|
+
[key: string]: any;
|
|
58
|
+
}, TRootProps extends {
|
|
59
|
+
[key: string]: any;
|
|
60
|
+
}> {
|
|
61
|
+
root: UseMultiInputRangeFieldRootPropsReturnValue<TRootProps>;
|
|
62
|
+
startTextField: UseMultiInputRangeFieldTextFieldProps<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TTextFieldProps>;
|
|
63
|
+
endTextField: UseMultiInputRangeFieldTextFieldProps<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TTextFieldProps>;
|
|
51
64
|
enableAccessibleFieldDOMStructure: PickerManagerEnableAccessibleFieldDOMStructure<TManager>;
|
|
52
65
|
}
|
|
66
|
+
export type UseMultiInputRangeFieldTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean, TForwardedProps extends UseTextFieldBaseForwardedProps> = Omit<UseFieldResponse<TEnableAccessibleFieldDOMStructure, TForwardedProps & {
|
|
67
|
+
onKeyDown: React.KeyboardEventHandler;
|
|
68
|
+
onClick: React.MouseEventHandler;
|
|
69
|
+
onFocus: React.FocusEventHandler;
|
|
70
|
+
id: string;
|
|
71
|
+
}>, 'onClear' | 'clearable' | 'openPickerAriaLabel'>;
|
|
53
72
|
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
-
import useEventCallback from '@mui/utils/useEventCallback';
|
|
5
3
|
import { useControlledValueWithTimezone, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
|
|
6
4
|
import { useValidation } from '@mui/x-date-pickers/validation';
|
|
7
|
-
import {
|
|
5
|
+
import { useTextFieldProps } from "./useTextFieldProps.js";
|
|
8
6
|
import { useMultiInputRangeFieldSelectedSections } from "./useMultiInputRangeFieldSelectedSections.js";
|
|
7
|
+
import { useMultiInputRangeFieldRootProps } from "./useMultiInputRangeFieldRootProps.js";
|
|
8
|
+
|
|
9
9
|
/**
|
|
10
10
|
* Basic example:
|
|
11
11
|
*
|
|
@@ -18,36 +18,38 @@ import { useMultiInputRangeFieldSelectedSections } from "./useMultiInputRangeFie
|
|
|
18
18
|
* function MultiInputField(props) {
|
|
19
19
|
* const manager = useDateRangeManager();
|
|
20
20
|
* const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
|
|
21
|
-
* const
|
|
21
|
+
* const response = useMultiInputRangeField({
|
|
22
22
|
* manager,
|
|
23
23
|
* internalProps,
|
|
24
|
-
*
|
|
25
|
-
*
|
|
24
|
+
* startTextFieldProps: {},
|
|
25
|
+
* endTextFieldProps: {},
|
|
26
|
+
* rootProps: forwardedProps,
|
|
26
27
|
* });
|
|
27
28
|
*
|
|
28
29
|
* return (
|
|
29
|
-
* <Box {...
|
|
30
|
-
* <PickersTextField {...
|
|
30
|
+
* <Box {...response.root}>
|
|
31
|
+
* <PickersTextField {...response.startTextField} />
|
|
31
32
|
* <span>{' – '}</span>
|
|
32
|
-
* <PickersTextField {...
|
|
33
|
+
* <PickersTextField {...response.endTextField} />
|
|
33
34
|
* </Box>
|
|
34
35
|
* );
|
|
35
36
|
* }
|
|
36
37
|
* ```
|
|
37
38
|
*
|
|
38
|
-
* @param {UseMultiInputRangeFieldParameters<TManager,
|
|
39
|
+
* @param {UseMultiInputRangeFieldParameters<TManager, TTextFieldProps>} parameters The parameters of the hook.
|
|
39
40
|
* @param {TManager} parameters.manager The manager of the field.
|
|
40
41
|
* @param {PickerManagerFieldInternalProps<TManager>} parameters.internalProps The internal props of the field.
|
|
41
|
-
* @param {
|
|
42
|
-
* @param {
|
|
43
|
-
* @returns {UseMultiInputRangeFieldReturnValue<TManager,
|
|
42
|
+
* @param {TTextFieldProps} parameters.startForwardedProps The forwarded props of the start field.
|
|
43
|
+
* @param {TTextFieldProps} parameters.endForwardedProps The forwarded props of the end field.
|
|
44
|
+
* @returns {UseMultiInputRangeFieldReturnValue<TManager, TTextFieldProps>} The props to pass to the start and the end components.
|
|
44
45
|
*/
|
|
45
46
|
export function useMultiInputRangeField(parameters) {
|
|
46
47
|
const {
|
|
47
48
|
manager,
|
|
48
49
|
internalProps,
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
rootProps,
|
|
51
|
+
startTextFieldProps,
|
|
52
|
+
endTextFieldProps
|
|
51
53
|
} = parameters;
|
|
52
54
|
const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
|
|
53
55
|
manager,
|
|
@@ -84,34 +86,20 @@ export function useMultiInputRangeField(parameters) {
|
|
|
84
86
|
onChange,
|
|
85
87
|
valueManager: manager.internal_valueManager
|
|
86
88
|
});
|
|
87
|
-
const {
|
|
88
|
-
validationError,
|
|
89
|
-
getValidationErrorForNewValue
|
|
90
|
-
} = useValidation({
|
|
89
|
+
const validation = useValidation({
|
|
91
90
|
props: internalPropsWithDefaults,
|
|
92
91
|
value,
|
|
93
92
|
timezone,
|
|
94
93
|
validator: manager.validator,
|
|
95
94
|
onError: internalPropsWithDefaults.onError
|
|
96
95
|
});
|
|
97
|
-
const buildChangeHandler = index => {
|
|
98
|
-
return (newSingleValue, rawContext) => {
|
|
99
|
-
const newRange = index === 0 ? [newSingleValue, value[1]] : [value[0], newSingleValue];
|
|
100
|
-
const context = _extends({}, rawContext, {
|
|
101
|
-
validationError: getValidationErrorForNewValue(newRange)
|
|
102
|
-
});
|
|
103
|
-
handleValueChange(newRange, context);
|
|
104
|
-
};
|
|
105
|
-
};
|
|
106
|
-
const handleStartDateChange = useEventCallback(buildChangeHandler(0));
|
|
107
|
-
const handleEndDateChange = useEventCallback(buildChangeHandler(1));
|
|
108
96
|
const selectedSectionsResponse = useMultiInputRangeFieldSelectedSections({
|
|
109
97
|
selectedSections,
|
|
110
98
|
onSelectedSectionsChange,
|
|
111
99
|
unstableStartFieldRef,
|
|
112
100
|
unstableEndFieldRef
|
|
113
101
|
});
|
|
114
|
-
const
|
|
102
|
+
const sharedInternalProps = {
|
|
115
103
|
disabled,
|
|
116
104
|
readOnly,
|
|
117
105
|
timezone,
|
|
@@ -120,30 +108,33 @@ export function useMultiInputRangeField(parameters) {
|
|
|
120
108
|
shouldRespectLeadingZeros,
|
|
121
109
|
enableAccessibleFieldDOMStructure
|
|
122
110
|
};
|
|
123
|
-
const
|
|
111
|
+
const rootResponse = useMultiInputRangeFieldRootProps(rootProps);
|
|
112
|
+
const startTextFieldResponse = useTextFieldProps({
|
|
124
113
|
valueType: manager.valueType,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
114
|
+
position: 'start',
|
|
115
|
+
value,
|
|
116
|
+
onChange: handleValueChange,
|
|
117
|
+
autoFocus,
|
|
118
|
+
validation,
|
|
119
|
+
forwardedProps: startTextFieldProps,
|
|
120
|
+
selectedSectionProps: selectedSectionsResponse.start,
|
|
121
|
+
sharedInternalProps
|
|
133
122
|
});
|
|
134
|
-
const
|
|
123
|
+
const endTextFieldResponse = useTextFieldProps({
|
|
135
124
|
valueType: manager.valueType,
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
125
|
+
position: 'end',
|
|
126
|
+
value,
|
|
127
|
+
onChange: handleValueChange,
|
|
128
|
+
autoFocus,
|
|
129
|
+
validation,
|
|
130
|
+
forwardedProps: endTextFieldProps,
|
|
131
|
+
selectedSectionProps: selectedSectionsResponse.end,
|
|
132
|
+
sharedInternalProps
|
|
143
133
|
});
|
|
144
134
|
return {
|
|
145
|
-
|
|
146
|
-
|
|
135
|
+
root: rootResponse,
|
|
136
|
+
startTextField: startTextFieldResponse,
|
|
137
|
+
endTextField: endTextFieldResponse,
|
|
147
138
|
enableAccessibleFieldDOMStructure
|
|
148
139
|
};
|
|
149
140
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @ignore - internal hook.
|
|
3
|
+
*/
|
|
4
|
+
export declare function useMultiInputRangeFieldRootProps<TForwardedProps extends {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}>(forwardedProps: TForwardedProps): UseMultiInputRangeFieldRootPropsReturnValue<TForwardedProps>;
|
|
7
|
+
export type UseMultiInputRangeFieldRootPropsReturnValue<TForwardedProps extends {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}> = Omit<TForwardedProps, 'onBlur'> & {
|
|
10
|
+
onBlur: () => void;
|
|
11
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import useEventCallback from '@mui/utils/useEventCallback';
|
|
3
|
+
import { executeInTheNextEventLoopTick, getActiveElement, useNullablePickerContext, usePickerPrivateContext } from '@mui/x-date-pickers/internals';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @ignore - internal hook.
|
|
7
|
+
*/
|
|
8
|
+
export function useMultiInputRangeFieldRootProps(forwardedProps) {
|
|
9
|
+
const pickerContext = useNullablePickerContext();
|
|
10
|
+
const privatePickerContext = usePickerPrivateContext();
|
|
11
|
+
const handleBlur = useEventCallback(() => {
|
|
12
|
+
if (!pickerContext || privatePickerContext.viewContainerRole !== 'tooltip') {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
executeInTheNextEventLoopTick(() => {
|
|
16
|
+
if (privatePickerContext.rootRefObject.current?.contains(getActiveElement(document)) || pickerContext.popupRef.current?.contains(getActiveElement(document))) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
privatePickerContext.dismissViews();
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
return _extends({}, forwardedProps, {
|
|
23
|
+
onBlur: handleBlur
|
|
24
|
+
});
|
|
25
|
+
}
|
|
@@ -3,7 +3,7 @@ import { PickerRangeValue, PickerValue, UseFieldInternalProps } from '@mui/x-dat
|
|
|
3
3
|
import { FieldRef, FieldSelectedSections } from '@mui/x-date-pickers/models';
|
|
4
4
|
import { MultiInputFieldRefs } from "../../models/index.js";
|
|
5
5
|
interface UseMultiInputRangeFieldSelectedSectionsParameters extends Pick<UseFieldInternalProps<PickerRangeValue, any, any>, 'selectedSections' | 'onSelectedSectionsChange'>, MultiInputFieldRefs {}
|
|
6
|
-
interface UseMultiInputFieldSelectedSectionsResponseItem {
|
|
6
|
+
export interface UseMultiInputFieldSelectedSectionsResponseItem {
|
|
7
7
|
unstableFieldRef?: React.Ref<FieldRef<PickerValue>>;
|
|
8
8
|
selectedSections: FieldSelectedSections;
|
|
9
9
|
onSelectedSectionsChange: (newSelectedSections: FieldSelectedSections) => void;
|
|
@@ -12,5 +12,8 @@ interface UseMultiInputFieldSelectedSectionsResponse {
|
|
|
12
12
|
start: UseMultiInputFieldSelectedSectionsResponseItem;
|
|
13
13
|
end: UseMultiInputFieldSelectedSectionsResponseItem;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* @ignore - internal hook.
|
|
17
|
+
*/
|
|
15
18
|
export declare const useMultiInputRangeFieldSelectedSections: (parameters: UseMultiInputRangeFieldSelectedSectionsParameters) => UseMultiInputFieldSelectedSectionsResponse;
|
|
16
19
|
export {};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
1
|
import * as React from 'react';
|
|
4
2
|
import useForkRef from '@mui/utils/useForkRef';
|
|
5
3
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
4
|
+
/**
|
|
5
|
+
* @ignore - internal hook.
|
|
6
|
+
*/
|
|
6
7
|
export const useMultiInputRangeFieldSelectedSections = parameters => {
|
|
7
8
|
const unstableEndFieldRef = React.useRef(null);
|
|
8
9
|
const handleUnstableEndFieldRef = useForkRef(parameters.unstableEndFieldRef, unstableEndFieldRef);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { UseValidationReturnValue } from '@mui/x-date-pickers/validation';
|
|
3
|
+
import { PickerValueType } from '@mui/x-date-pickers/models';
|
|
4
|
+
import { FieldChangeHandler, PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerError, PickerRangeValue, PickerValue, RangePosition, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
5
|
+
import { PickerAnyRangeManager } from "../../internals/models/managers.js";
|
|
6
|
+
import { UseMultiInputFieldSelectedSectionsResponseItem } from "./useMultiInputRangeFieldSelectedSections.js";
|
|
7
|
+
import type { UseMultiInputRangeFieldTextFieldProps } from './useMultiInputRangeField';
|
|
8
|
+
/**
|
|
9
|
+
* @ignore - internal hook.
|
|
10
|
+
*/
|
|
11
|
+
export declare function useTextFieldProps<TManager extends PickerAnyRangeManager, TForwardedProps extends UseTextFieldBaseForwardedProps>(parameters: UseTextFieldPropsParameters<TManager, TForwardedProps>): UseMultiInputRangeFieldTextFieldProps<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TForwardedProps>;
|
|
12
|
+
interface UseTextFieldPropsParameters<TManager extends PickerAnyRangeManager, TForwardedProps extends UseTextFieldBaseForwardedProps> {
|
|
13
|
+
valueType: PickerValueType;
|
|
14
|
+
value: PickerRangeValue;
|
|
15
|
+
onChange: FieldChangeHandler<PickerRangeValue, PickerManagerError<TManager>>;
|
|
16
|
+
autoFocus: boolean | undefined;
|
|
17
|
+
forwardedProps: TForwardedProps;
|
|
18
|
+
sharedInternalProps: UseTextFieldSharedInternalProps<TManager>;
|
|
19
|
+
selectedSectionProps: UseMultiInputFieldSelectedSectionsResponseItem;
|
|
20
|
+
position: RangePosition;
|
|
21
|
+
validation: UseValidationReturnValue<PickerRangeValue, PickerManagerError<TManager>>;
|
|
22
|
+
}
|
|
23
|
+
export interface UseTextFieldBaseForwardedProps {
|
|
24
|
+
onKeyDown?: React.KeyboardEventHandler;
|
|
25
|
+
onClick?: React.MouseEventHandler;
|
|
26
|
+
onFocus?: React.FocusEventHandler;
|
|
27
|
+
[key: string]: any;
|
|
28
|
+
}
|
|
29
|
+
interface UseTextFieldSharedInternalProps<TManager extends PickerAnyRangeManager> extends Pick<UseFieldInternalProps<PickerValue, PickerManagerEnableAccessibleFieldDOMStructure<TManager>, PickerManagerError<TManager>>, 'enableAccessibleFieldDOMStructure' | 'disabled' | 'readOnly' | 'timezone' | 'format' | 'formatDensity' | 'shouldRespectLeadingZeros'> {}
|
|
30
|
+
export {};
|