@mui/x-date-pickers-pro 8.0.0-alpha.12 → 8.0.0-alpha.14
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 +430 -0
- package/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/DateTimeRangePicker/shared.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/DateTimeRangePicker/shared.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 +4 -11
- package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +8 -75
- package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +17 -5
- package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +18 -5
- 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/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
- 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/internals/utils/valueManagers.js +31 -30
- package/esm/managers/useDateRangeManager.d.ts +2 -4
- package/esm/managers/useDateRangeManager.js +8 -1
- package/esm/managers/useDateTimeRangeManager.d.ts +2 -4
- package/esm/managers/useDateTimeRangeManager.js +8 -1
- package/esm/managers/useTimeRangeManager.d.ts +2 -4
- 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 +4 -11
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +7 -74
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +17 -5
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +18 -5
- 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/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
- 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/internals/utils/valueManagers.js +31 -30
- package/managers/useDateRangeManager.d.ts +2 -4
- package/managers/useDateRangeManager.js +8 -1
- package/managers/useDateTimeRangeManager.d.ts +2 -4
- package/managers/useDateTimeRangeManager.js +8 -1
- package/managers/useTimeRangeManager.d.ts +2 -4
- 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/DateTimeRangePicker/shared.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 +4 -11
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +8 -75
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +17 -5
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +18 -5
- 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/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
- 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/internals/utils/valueManagers.js +31 -30
- package/modern/managers/useDateRangeManager.d.ts +2 -4
- package/modern/managers/useDateRangeManager.js +8 -1
- package/modern/managers/useDateTimeRangeManager.d.ts +2 -4
- package/modern/managers/useDateTimeRangeManager.js +8 -1
- package/modern/managers/useTimeRangeManager.d.ts +2 -4
- 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
|
@@ -12,10 +12,11 @@ import { styled, useThemeProps } from '@mui/material/styles';
|
|
|
12
12
|
import composeClasses from '@mui/utils/composeClasses';
|
|
13
13
|
import useSlotProps from '@mui/utils/useSlotProps';
|
|
14
14
|
import useForkRef from '@mui/utils/useForkRef';
|
|
15
|
-
import { cleanFieldResponse, useFieldOwnerState, useNullablePickerContext } from '@mui/x-date-pickers/internals';
|
|
15
|
+
import { cleanFieldResponse, useFieldOwnerState, PickerFieldUIContext, useNullablePickerContext } from '@mui/x-date-pickers/internals';
|
|
16
16
|
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
17
17
|
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
18
18
|
import { useMultiInputRangeField } from "../../../hooks/useMultiInputRangeField/index.js";
|
|
19
|
+
import { useTextFieldProps } from "./useTextFieldProps.js";
|
|
19
20
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
21
|
export function createMultiInputRangeField({
|
|
21
22
|
useManager,
|
|
@@ -52,14 +53,19 @@ export function createMultiInputRangeField({
|
|
|
52
53
|
// eslint-disable-next-line material-ui/mui-name-matches-component-name
|
|
53
54
|
name
|
|
54
55
|
});
|
|
56
|
+
const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
|
|
57
|
+
const pickerContext = useNullablePickerContext();
|
|
55
58
|
const manager = useManager({
|
|
56
59
|
enableAccessibleFieldDOMStructure: props.enableAccessibleFieldDOMStructure,
|
|
57
60
|
dateSeparator: props.dateSeparator
|
|
58
61
|
});
|
|
59
62
|
const {
|
|
60
|
-
internalProps,
|
|
63
|
+
internalProps: rawInternalProps,
|
|
61
64
|
forwardedProps
|
|
62
65
|
} = useSplitFieldProps(themeProps, manager.valueType);
|
|
66
|
+
const internalProps = pickerContext?.variant === 'mobile' ? _extends({}, rawInternalProps, {
|
|
67
|
+
readOnly: true
|
|
68
|
+
}) : rawInternalProps;
|
|
63
69
|
const {
|
|
64
70
|
slots,
|
|
65
71
|
slotProps,
|
|
@@ -69,7 +75,6 @@ export function createMultiInputRangeField({
|
|
|
69
75
|
otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
|
|
70
76
|
const classes = useUtilityClasses(classesProp);
|
|
71
77
|
const ownerState = useFieldOwnerState(internalProps);
|
|
72
|
-
const pickerContext = useNullablePickerContext();
|
|
73
78
|
const handleRef = useForkRef(ref, pickerContext?.rootRef);
|
|
74
79
|
const Root = slots?.root ?? MultiInputRangeFieldRoot;
|
|
75
80
|
const rootProps = useSlotProps({
|
|
@@ -82,29 +87,22 @@ export function createMultiInputRangeField({
|
|
|
82
87
|
ownerState,
|
|
83
88
|
className: clsx(className, classes.root)
|
|
84
89
|
});
|
|
85
|
-
const startTextFieldProps =
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
position: 'start'
|
|
90
|
-
})
|
|
90
|
+
const startTextFieldProps = useTextFieldProps({
|
|
91
|
+
slotProps,
|
|
92
|
+
ownerState,
|
|
93
|
+
position: 'start'
|
|
91
94
|
});
|
|
92
|
-
const endTextFieldProps =
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
position: 'end'
|
|
97
|
-
})
|
|
95
|
+
const endTextFieldProps = useTextFieldProps({
|
|
96
|
+
slotProps,
|
|
97
|
+
ownerState,
|
|
98
|
+
position: 'end'
|
|
98
99
|
});
|
|
99
|
-
const {
|
|
100
|
-
startDate,
|
|
101
|
-
endDate,
|
|
102
|
-
enableAccessibleFieldDOMStructure
|
|
103
|
-
} = useMultiInputRangeField({
|
|
100
|
+
const fieldResponse = useMultiInputRangeField({
|
|
104
101
|
manager,
|
|
105
102
|
internalProps,
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
rootProps,
|
|
104
|
+
startTextFieldProps,
|
|
105
|
+
endTextFieldProps
|
|
108
106
|
});
|
|
109
107
|
const Separator = slots?.separator ?? MultiInputRangeFieldSeparator;
|
|
110
108
|
const separatorProps = useSlotProps({
|
|
@@ -116,19 +114,15 @@ export function createMultiInputRangeField({
|
|
|
116
114
|
ownerState,
|
|
117
115
|
className: classes.separator
|
|
118
116
|
});
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
textFieldProps: endDateProps
|
|
124
|
-
} = cleanFieldResponse(endDate);
|
|
125
|
-
const TextField = slots?.textField ?? (enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
126
|
-
return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
|
|
117
|
+
const cleanStartTextFieldResponse = cleanFieldResponse(fieldResponse.startTextField);
|
|
118
|
+
const cleanEndTextFieldResponse = cleanFieldResponse(fieldResponse.endTextField);
|
|
119
|
+
const TextField = slots?.textField ?? pickerFieldUIContext.slots.textField ?? (fieldResponse.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
120
|
+
return /*#__PURE__*/_jsxs(Root, _extends({}, fieldResponse.root, {
|
|
127
121
|
children: [/*#__PURE__*/_jsx(TextField, _extends({
|
|
128
122
|
fullWidth: true
|
|
129
|
-
},
|
|
123
|
+
}, cleanStartTextFieldResponse.textFieldProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
|
|
130
124
|
fullWidth: true
|
|
131
|
-
},
|
|
125
|
+
}, cleanEndTextFieldResponse.textFieldProps))]
|
|
132
126
|
}));
|
|
133
127
|
});
|
|
134
128
|
MultiInputRangeField.fieldType = 'multi-input';
|
package/esm/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { FieldOwnerState } from '@mui/x-date-pickers/models';
|
|
|
7
7
|
import { PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
8
8
|
import { FieldType, MultiInputFieldRefs, RangeFieldSeparatorProps, RangePosition } from "../../../models/index.js";
|
|
9
9
|
import { PickerAnyRangeManager } from "../../models/managers.js";
|
|
10
|
-
export type MultiInputRangeFieldProps<TManager extends PickerAnyRangeManager> = MultiInputFieldRefs & RangeFieldSeparatorProps & Omit<PickerManagerFieldInternalProps<TManager>, 'unstableFieldRef' | 'clearable' | 'onClear'> & Omit<StackProps, 'position' | keyof PickerManagerFieldInternalProps<TManager>> & {
|
|
10
|
+
export type MultiInputRangeFieldProps<TManager extends PickerAnyRangeManager> = MultiInputFieldRefs & RangeFieldSeparatorProps & Omit<PickerManagerFieldInternalProps<TManager>, 'unstableFieldRef' | 'clearable' | 'onClear' | 'focused'> & Omit<StackProps, 'position' | keyof PickerManagerFieldInternalProps<TManager>> & {
|
|
11
11
|
/**
|
|
12
12
|
* If `true`, the field is focused during the first mount.
|
|
13
13
|
* @default false
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PickersTextFieldProps } from '@mui/x-date-pickers/PickersTextField';
|
|
2
|
+
import { FieldOwnerState } from '@mui/x-date-pickers/models';
|
|
3
|
+
import { MultiInputRangeFieldSlotProps } from "./createMultiInputRangeField.types.js";
|
|
4
|
+
export declare function useTextFieldProps({
|
|
5
|
+
slotProps,
|
|
6
|
+
ownerState,
|
|
7
|
+
position
|
|
8
|
+
}: {
|
|
9
|
+
slotProps: MultiInputRangeFieldSlotProps | undefined;
|
|
10
|
+
ownerState: FieldOwnerState;
|
|
11
|
+
position: 'start' | 'end';
|
|
12
|
+
}): PickersTextFieldProps;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import useSlotProps from '@mui/utils/useSlotProps';
|
|
4
|
+
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
5
|
+
import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
|
|
6
|
+
import { PickerFieldUIContext, useNullablePickerContext, mergeSlotProps } from '@mui/x-date-pickers/internals';
|
|
7
|
+
import { useNullablePickerRangePositionContext } from "../../hooks/useNullablePickerRangePositionContext.js";
|
|
8
|
+
export function useTextFieldProps({
|
|
9
|
+
slotProps,
|
|
10
|
+
ownerState,
|
|
11
|
+
position
|
|
12
|
+
}) {
|
|
13
|
+
const pickerContext = useNullablePickerContext();
|
|
14
|
+
const translations = usePickerTranslations();
|
|
15
|
+
const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
|
|
16
|
+
const rangePositionContext = useNullablePickerRangePositionContext();
|
|
17
|
+
const textFieldProps = useSlotProps({
|
|
18
|
+
elementType: PickersTextField,
|
|
19
|
+
externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.textField, slotProps?.textField),
|
|
20
|
+
additionalProps: {
|
|
21
|
+
// TODO: Decide if we also want to set the default labels on standalone fields.
|
|
22
|
+
label: pickerContext ? translations[position] : undefined,
|
|
23
|
+
focused: pickerContext?.open ? rangePositionContext?.rangePosition === position : undefined
|
|
24
|
+
},
|
|
25
|
+
ownerState: _extends({}, ownerState, {
|
|
26
|
+
position
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
if (!textFieldProps.InputProps) {
|
|
30
|
+
textFieldProps.InputProps = {};
|
|
31
|
+
}
|
|
32
|
+
if (pickerContext && position === 'start') {
|
|
33
|
+
textFieldProps.InputProps.ref = pickerContext.triggerRef;
|
|
34
|
+
}
|
|
35
|
+
return textFieldProps;
|
|
36
|
+
}
|
|
@@ -17,4 +17,7 @@ export declare const removeLastSeparator: (dateSections: FieldRangeSection[]) =>
|
|
|
17
17
|
modified: boolean;
|
|
18
18
|
startSeparator: string;
|
|
19
19
|
endSeparator: string;
|
|
20
|
-
})[];
|
|
20
|
+
})[];
|
|
21
|
+
export declare function getRangeFieldType(field: React.ElementType & {
|
|
22
|
+
fieldType?: 'single-input' | 'multi-input';
|
|
23
|
+
}): "single-input" | "multi-input";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTc0MTMwMjAwMDAwMA==";
|
|
4
4
|
if (process.env.NODE_ENV !== 'production') {
|
|
5
5
|
// A simple hack to set the value in the test environment (has no build step).
|
|
6
6
|
// eslint-disable-next-line no-useless-concat
|
|
@@ -52,16 +52,8 @@ export const getRangeFieldValueManager = ({
|
|
|
52
52
|
}
|
|
53
53
|
return [prevReferenceValue[1], value[1]];
|
|
54
54
|
},
|
|
55
|
-
getSectionsFromValue: (
|
|
56
|
-
const
|
|
57
|
-
startDate: null,
|
|
58
|
-
endDate: null
|
|
59
|
-
} : splitDateRangeSections(fallbackSections);
|
|
60
|
-
const getSections = (newDate, fallbackDateSections, position) => {
|
|
61
|
-
const shouldReUsePrevDateSections = !utils.isValid(newDate) && !!fallbackDateSections;
|
|
62
|
-
if (shouldReUsePrevDateSections) {
|
|
63
|
-
return fallbackDateSections;
|
|
64
|
-
}
|
|
55
|
+
getSectionsFromValue: ([start, end], getSectionsFromDate) => {
|
|
56
|
+
const getSections = (newDate, position) => {
|
|
65
57
|
const sections = getSectionsFromDate(newDate);
|
|
66
58
|
return sections.map((section, sectionIndex) => {
|
|
67
59
|
if (sectionIndex === sections.length - 1 && position === 'start') {
|
|
@@ -76,7 +68,7 @@ export const getRangeFieldValueManager = ({
|
|
|
76
68
|
});
|
|
77
69
|
});
|
|
78
70
|
};
|
|
79
|
-
return [...getSections(start,
|
|
71
|
+
return [...getSections(start, 'start'), ...getSections(end, 'end')];
|
|
80
72
|
},
|
|
81
73
|
getV7HiddenInputValueFromSections: sections => {
|
|
82
74
|
const dateRangeSections = splitDateRangeSections(sections);
|
|
@@ -96,23 +88,32 @@ export const getRangeFieldValueManager = ({
|
|
|
96
88
|
return parseDate(dateStr.trim(), referenceValue[index]);
|
|
97
89
|
});
|
|
98
90
|
},
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
91
|
+
getDateFromSection: (value, activeSection) => value[getActiveDateIndex(activeSection)],
|
|
92
|
+
getDateSectionsFromValue: (sections, activeSection) => {
|
|
93
|
+
const dateRangeSections = splitDateRangeSections(sections);
|
|
94
|
+
if (getActiveDateIndex(activeSection) === 0) {
|
|
95
|
+
return removeLastSeparator(dateRangeSections.startDate);
|
|
96
|
+
}
|
|
97
|
+
return dateRangeSections.endDate;
|
|
98
|
+
},
|
|
99
|
+
updateDateInValue: (value, activeSection, activeDate) => {
|
|
100
|
+
if (getActiveDateIndex(activeSection) === 0) {
|
|
101
|
+
return [activeDate, value[1]];
|
|
102
|
+
}
|
|
103
|
+
return [value[0], activeDate];
|
|
104
|
+
},
|
|
105
|
+
clearDateSections: (sections, activeSection) => {
|
|
106
|
+
const dateRangeSections = splitDateRangeSections(sections);
|
|
107
|
+
if (getActiveDateIndex(activeSection) === 0) {
|
|
108
|
+
return [...dateRangeSections.startDate.map(section => _extends({}, section, {
|
|
109
|
+
value: ''
|
|
110
|
+
})), ...dateRangeSections.endDate];
|
|
111
|
+
}
|
|
112
|
+
return [...dateRangeSections.startDate, ...dateRangeSections.endDate.map(section => _extends({}, section, {
|
|
113
|
+
value: ''
|
|
114
|
+
}))];
|
|
117
115
|
}
|
|
118
|
-
});
|
|
116
|
+
});
|
|
117
|
+
function getActiveDateIndex(activeSection) {
|
|
118
|
+
return activeSection == null || activeSection.dateName === 'start' ? 0 : 1;
|
|
119
|
+
}
|
|
@@ -7,7 +7,5 @@ export declare function useDateRangeManager<TEnableAccessibleFieldDOMStructure e
|
|
|
7
7
|
export interface UseDateRangeManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> extends RangeFieldSeparatorProps {
|
|
8
8
|
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
9
9
|
}
|
|
10
|
-
export type UseDateRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateRangeValidationError, DateRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure
|
|
11
|
-
export interface DateRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateRangeValidationError>, 'format'>, RangeFieldSeparatorProps, ExportedValidateDateRangeProps {}
|
|
12
|
-
interface DateRangeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateRangeValidationError>, ValidateDateRangeProps, RangeFieldSeparatorProps {}
|
|
13
|
-
export {};
|
|
10
|
+
export type UseDateRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateRangeValidationError, ValidateDateRangeProps, DateRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>>;
|
|
11
|
+
export interface DateRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateRangeValidationError>, 'format'>, RangeFieldSeparatorProps, ExportedValidateDateRangeProps {}
|
|
@@ -28,6 +28,13 @@ export function useDateRangeManager(parameters = {}) {
|
|
|
28
28
|
internalProps
|
|
29
29
|
})),
|
|
30
30
|
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
31
|
-
internal_getOpenPickerButtonAriaLabel: (
|
|
31
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
32
|
+
value,
|
|
33
|
+
utils,
|
|
34
|
+
localeText
|
|
35
|
+
}) => {
|
|
36
|
+
const formattedValue = utils.isValid(value[0]) ? utils.format(value[0], 'fullDate') : null;
|
|
37
|
+
return localeText.openDatePickerDialogue(formattedValue);
|
|
38
|
+
}
|
|
32
39
|
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
33
40
|
}
|
|
@@ -7,7 +7,5 @@ export declare function useDateTimeRangeManager<TEnableAccessibleFieldDOMStructu
|
|
|
7
7
|
export interface UseDateTimeRangeManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> extends RangeFieldSeparatorProps {
|
|
8
8
|
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
9
9
|
}
|
|
10
|
-
export type UseDateTimeRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError, DateTimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure
|
|
11
|
-
export interface DateTimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError>, 'format'>, ExportedValidateDateTimeRangeProps, AmPmProps, RangeFieldSeparatorProps {}
|
|
12
|
-
interface DateTimeRangeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError>, ValidateDateTimeRangeProps, RangeFieldSeparatorProps {}
|
|
13
|
-
export {};
|
|
10
|
+
export type UseDateTimeRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError, ValidateDateTimeRangeProps, DateTimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>>;
|
|
11
|
+
export interface DateTimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError>, 'format'>, ExportedValidateDateTimeRangeProps, AmPmProps, RangeFieldSeparatorProps {}
|
|
@@ -28,6 +28,13 @@ export function useDateTimeRangeManager(parameters = {}) {
|
|
|
28
28
|
defaultDates
|
|
29
29
|
})),
|
|
30
30
|
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
31
|
-
internal_getOpenPickerButtonAriaLabel: (
|
|
31
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
32
|
+
value,
|
|
33
|
+
utils,
|
|
34
|
+
localeText
|
|
35
|
+
}) => {
|
|
36
|
+
const formattedValue = utils.isValid(value[0]) ? utils.format(value[0], 'fullDate') : null;
|
|
37
|
+
return localeText.openDatePickerDialogue(formattedValue);
|
|
38
|
+
}
|
|
32
39
|
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
33
40
|
}
|
|
@@ -7,7 +7,5 @@ export declare function useTimeRangeManager<TEnableAccessibleFieldDOMStructure e
|
|
|
7
7
|
export interface UseTimeRangeManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> extends RangeFieldSeparatorProps {
|
|
8
8
|
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
9
9
|
}
|
|
10
|
-
export type UseTimeRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TimeRangeValidationError, TimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure
|
|
11
|
-
export interface TimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TimeRangeValidationError>, 'format'>, ExportedValidateTimeRangeProps, AmPmProps, RangeFieldSeparatorProps {}
|
|
12
|
-
interface TimeRangeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TimeRangeValidationError>, ValidateTimeRangeProps {}
|
|
13
|
-
export {};
|
|
10
|
+
export type UseTimeRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TimeRangeValidationError, ValidateTimeRangeProps, TimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>>;
|
|
11
|
+
export interface TimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TimeRangeValidationError>, 'format'>, ExportedValidateTimeRangeProps, AmPmProps, RangeFieldSeparatorProps {}
|
|
@@ -26,6 +26,15 @@ export function useTimeRangeManager(parameters = {}) {
|
|
|
26
26
|
internalProps
|
|
27
27
|
})),
|
|
28
28
|
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
29
|
-
internal_getOpenPickerButtonAriaLabel: (
|
|
29
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
30
|
+
value,
|
|
31
|
+
utils,
|
|
32
|
+
localeText
|
|
33
|
+
}) => {
|
|
34
|
+
// TODO: Use ampm prop?
|
|
35
|
+
const ampm = utils.is12HourCycleInCurrentLocale();
|
|
36
|
+
const formattedValue = utils.isValid(value[0]) ? utils.format(value[0], ampm ? 'fullTime12h' : 'fullTime24h') : null;
|
|
37
|
+
return localeText.openTimePickerDialogue(formattedValue);
|
|
38
|
+
}
|
|
30
39
|
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
31
40
|
}
|
package/esm/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;
|
package/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 {};
|