@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
|
@@ -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/esm/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 {};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
const _excluded = ["clearable", "onClear", "openPickerAriaLabel"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import useEventCallback from '@mui/utils/useEventCallback';
|
|
6
|
+
import { useDateManager, useDateTimeManager, useTimeManager } from '@mui/x-date-pickers/managers';
|
|
7
|
+
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
8
|
+
import { useField, useFieldInternalPropsWithDefaults, useNullableFieldPrivateContext, useNullablePickerContext, usePickerPrivateContext } from '@mui/x-date-pickers/internals';
|
|
9
|
+
import { useNullablePickerRangePositionContext } from "../../internals/hooks/useNullablePickerRangePositionContext.js";
|
|
10
|
+
/**
|
|
11
|
+
* @ignore - internal hook.
|
|
12
|
+
*/
|
|
13
|
+
export function useTextFieldProps(parameters) {
|
|
14
|
+
const pickerContext = useNullablePickerContext();
|
|
15
|
+
const fieldPrivateContext = useNullableFieldPrivateContext();
|
|
16
|
+
const pickerPrivateContext = usePickerPrivateContext();
|
|
17
|
+
const rangePositionContext = useNullablePickerRangePositionContext();
|
|
18
|
+
const rangePosition = rangePositionContext?.rangePosition ?? 'start';
|
|
19
|
+
const setRangePosition = rangePositionContext?.setRangePosition;
|
|
20
|
+
const previousRangePosition = React.useRef(rangePosition);
|
|
21
|
+
const {
|
|
22
|
+
forwardedProps,
|
|
23
|
+
sharedInternalProps,
|
|
24
|
+
selectedSectionProps,
|
|
25
|
+
valueType,
|
|
26
|
+
position,
|
|
27
|
+
value,
|
|
28
|
+
onChange,
|
|
29
|
+
autoFocus,
|
|
30
|
+
validation
|
|
31
|
+
} = parameters;
|
|
32
|
+
let useManager;
|
|
33
|
+
switch (valueType) {
|
|
34
|
+
case 'date':
|
|
35
|
+
{
|
|
36
|
+
useManager = useDateManager;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case 'time':
|
|
40
|
+
{
|
|
41
|
+
useManager = useTimeManager;
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case 'date-time':
|
|
45
|
+
{
|
|
46
|
+
useManager = useDateTimeManager;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
default:
|
|
50
|
+
{
|
|
51
|
+
throw new Error(`Unknown valueType: ${valueType}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const manager = useManager({
|
|
55
|
+
enableAccessibleFieldDOMStructure: sharedInternalProps.enableAccessibleFieldDOMStructure
|
|
56
|
+
});
|
|
57
|
+
const openPickerIfPossible = event => {
|
|
58
|
+
if (!pickerContext) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
setRangePosition?.(position);
|
|
62
|
+
if (pickerContext.triggerStatus === 'enabled') {
|
|
63
|
+
event.preventDefault();
|
|
64
|
+
pickerContext.setOpen(true);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const handleKeyDown = useEventCallback(event => {
|
|
68
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
69
|
+
openPickerIfPossible(event);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
// Registering `onClick` listener on the root element as well to correctly handle cases where user is clicking on `label`
|
|
74
|
+
// which has `pointer-events: none` and due to DOM structure the `input` does not catch the click event
|
|
75
|
+
const handleClick = useEventCallback(event => {
|
|
76
|
+
openPickerIfPossible(event);
|
|
77
|
+
});
|
|
78
|
+
const handleFocus = useEventCallback(event => {
|
|
79
|
+
forwardedProps.onFocus?.(event);
|
|
80
|
+
if (pickerContext?.open) {
|
|
81
|
+
setRangePosition?.(position);
|
|
82
|
+
if (previousRangePosition.current !== position && pickerContext.initialView) {
|
|
83
|
+
pickerContext.setView?.(pickerContext.initialView);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
const handleChange = useEventCallback((newSingleValue, rawContext) => {
|
|
88
|
+
const newRange = position === 'start' ? [newSingleValue, value[1]] : [value[0], newSingleValue];
|
|
89
|
+
const context = _extends({}, rawContext, {
|
|
90
|
+
validationError: validation.getValidationErrorForNewValue(newRange)
|
|
91
|
+
});
|
|
92
|
+
onChange(newRange, context);
|
|
93
|
+
});
|
|
94
|
+
const allProps = _extends({
|
|
95
|
+
value: position === 'start' ? value[0] : value[1],
|
|
96
|
+
error: position === 'start' ? !!validation.validationError[0] : !!validation.validationError[1],
|
|
97
|
+
id: `${pickerPrivateContext.labelId}-${position}`,
|
|
98
|
+
autoFocus: position === 'start' ? autoFocus : undefined
|
|
99
|
+
}, forwardedProps, sharedInternalProps, selectedSectionProps, {
|
|
100
|
+
onClick: handleClick,
|
|
101
|
+
onFocus: handleFocus,
|
|
102
|
+
onKeyDown: handleKeyDown,
|
|
103
|
+
onChange: handleChange
|
|
104
|
+
});
|
|
105
|
+
const splittedProps = useSplitFieldProps(allProps, valueType);
|
|
106
|
+
const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
|
|
107
|
+
manager,
|
|
108
|
+
internalProps: splittedProps.internalProps,
|
|
109
|
+
skipContextFieldRefAssignment: rangePosition !== position
|
|
110
|
+
});
|
|
111
|
+
const _ref = useField({
|
|
112
|
+
forwardedProps: splittedProps.forwardedProps,
|
|
113
|
+
internalProps: internalPropsWithDefaults,
|
|
114
|
+
valueManager: manager.internal_valueManager,
|
|
115
|
+
fieldValueManager: manager.internal_fieldValueManager,
|
|
116
|
+
validator: manager.validator,
|
|
117
|
+
valueType: manager.valueType,
|
|
118
|
+
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
119
|
+
getOpenPickerButtonAriaLabel: () => ''
|
|
120
|
+
}),
|
|
121
|
+
fieldResponse = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
122
|
+
React.useEffect(() => {
|
|
123
|
+
if (!pickerContext?.open || pickerContext?.variant === 'mobile') {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
fieldPrivateContext?.fieldRef.current?.focusField();
|
|
127
|
+
if (!fieldPrivateContext?.fieldRef.current || pickerContext.view === pickerContext.initialView) {
|
|
128
|
+
// could happen when the user is switching between the inputs
|
|
129
|
+
previousRangePosition.current = rangePosition;
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// bring back focus to the field
|
|
134
|
+
// currentView is present on DateTimeRangePicker
|
|
135
|
+
fieldPrivateContext?.fieldRef.current.setSelectedSections(
|
|
136
|
+
// use the current view or `0` when the range position has just been swapped
|
|
137
|
+
previousRangePosition.current === rangePosition ? pickerContext.view : 0);
|
|
138
|
+
previousRangePosition.current = rangePosition;
|
|
139
|
+
}, [rangePosition, pickerContext?.open, pickerContext?.variant, pickerContext?.initialView, pickerContext?.view, fieldPrivateContext?.fieldRef]);
|
|
140
|
+
return fieldResponse;
|
|
141
|
+
}
|
package/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export type {
|
|
1
|
+
export type { RangeOnlyPickerProps, UseRangePickerProps, UseRangePickerParams } from './useRangePicker';
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import { UsePickerParams, BasePickerProps,
|
|
2
|
-
import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps } from '@mui/x-date-pickers/PickersLayout';
|
|
1
|
+
import { UsePickerParams, BasePickerProps, UsePickerViewsProps, UsePickerValueNonStaticProps, UsePickerProviderNonStaticProps, DateOrTimeViewWithMeridiem, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
3
2
|
import { BaseRangeNonStaticPickerProps } from "../../models/index.js";
|
|
4
3
|
import { UseRangePositionProps } from "../useRangePosition.js";
|
|
5
|
-
import { RangePickerFieldSlots, RangePickerFieldSlotProps } from "../useEnrichedRangePickerField.js";
|
|
6
|
-
export interface UseRangePickerSlots extends ExportedPickersLayoutSlots<PickerRangeValue>, RangePickerFieldSlots {}
|
|
7
|
-
export interface UseRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends ExportedPickersLayoutSlotProps<PickerRangeValue>, RangePickerFieldSlotProps<TEnableAccessibleFieldDOMStructure> {
|
|
8
|
-
tabs?: ExportedBaseTabsProps;
|
|
9
|
-
toolbar?: ExportedBaseToolbarProps;
|
|
10
|
-
}
|
|
11
4
|
export interface RangeOnlyPickerProps extends UsePickerValueNonStaticProps, UsePickerProviderNonStaticProps, BaseRangeNonStaticPickerProps, UseRangePositionProps {}
|
|
12
5
|
export interface UseRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerViewsProps<any, TView, any>> extends RangeOnlyPickerProps, BasePickerProps<PickerRangeValue, TView, TError, TExternalProps> {}
|
|
13
6
|
export interface UseRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseRangePickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParams<PickerRangeValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor' | 'ref'> {
|