@mui/x-date-pickers-pro 7.22.2 → 8.0.0-alpha.0
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 +142 -155
- package/DateRangeCalendar/DateRangeCalendar.d.ts +1 -2
- package/DateRangeCalendar/DateRangeCalendar.js +23 -22
- package/DateRangeCalendar/DateRangeCalendar.types.d.ts +24 -36
- package/DateRangeCalendar/useDragRange.d.ts +10 -9
- package/DateRangeCalendar/useDragRange.js +3 -3
- package/DateRangePicker/DateRangePicker.d.ts +1 -2
- package/DateRangePicker/DateRangePicker.js +12 -8
- package/DateRangePicker/DateRangePicker.types.d.ts +12 -6
- package/DateRangePicker/DateRangePickerToolbar.d.ts +3 -5
- package/DateRangePicker/DateRangePickerToolbar.js +12 -2
- package/DateRangePicker/index.d.ts +1 -1
- package/DateRangePicker/shared.d.ts +12 -12
- package/DateRangePickerDay/DateRangePickerDay.d.ts +2 -3
- package/DateTimeRangePicker/DateTimeRangePicker.d.ts +1 -2
- package/DateTimeRangePicker/DateTimeRangePicker.js +13 -10
- package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +12 -6
- package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +1 -2
- package/DateTimeRangePicker/DateTimeRangePickerTabs.js +2 -2
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -9
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +3 -5
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +12 -2
- package/DateTimeRangePicker/index.d.ts +1 -1
- package/DateTimeRangePicker/shared.d.ts +13 -13
- package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +1 -2
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +16 -8
- package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +6 -7
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.d.ts +1 -2
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +13 -10
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +6 -7
- package/MobileDateRangePicker/MobileDateRangePicker.d.ts +1 -2
- package/MobileDateRangePicker/MobileDateRangePicker.js +16 -8
- package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +6 -7
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.d.ts +1 -2
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +13 -10
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +6 -7
- package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +1 -2
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +6 -6
- package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +9 -10
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +1 -2
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +7 -8
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +9 -10
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +1 -2
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +6 -6
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +9 -10
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.d.ts +1 -2
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.d.ts +3 -3
- package/README.md +2 -2
- package/SingleInputDateRangeField/SingleInputDateRangeField.d.ts +1 -2
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +6 -6
- package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +8 -8
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -2
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.d.ts +1 -2
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +7 -8
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +8 -8
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -2
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.d.ts +1 -2
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +6 -6
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +8 -8
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -2
- package/StaticDateRangePicker/StaticDateRangePicker.d.ts +1 -2
- package/StaticDateRangePicker/StaticDateRangePicker.js +11 -7
- package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +6 -7
- package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -3
- package/index.d.ts +0 -7
- package/index.js +1 -7
- package/internals/hooks/models/useRangePicker.d.ts +6 -7
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.d.ts +1 -2
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +20 -14
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +6 -7
- package/internals/hooks/useEnrichedRangePickerFieldProps.d.ts +15 -13
- package/internals/hooks/useEnrichedRangePickerFieldProps.js +4 -4
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.d.ts +1 -2
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +21 -15
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +6 -7
- package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +1 -1
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +1 -2
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +1 -2
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +1 -2
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -2
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +5 -5
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +8 -9
- package/internals/models/dateRange.d.ts +3 -4
- package/internals/models/dateTimeRange.d.ts +5 -10
- package/internals/models/fields.d.ts +26 -0
- package/internals/models/fields.js +1 -0
- package/internals/models/timeRange.d.ts +5 -9
- package/internals/utils/date-range-manager.d.ts +10 -9
- package/internals/utils/date-utils.d.ts +5 -5
- package/internals/utils/releaseInfo.js +1 -1
- package/internals/utils/valueManagers.d.ts +5 -6
- package/models/dateRange.d.ts +4 -5
- package/models/fields.d.ts +5 -32
- package/models/range.d.ts +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +23 -22
- package/modern/DateRangeCalendar/useDragRange.js +3 -3
- package/modern/DateRangePicker/DateRangePicker.js +12 -8
- package/modern/DateRangePicker/DateRangePickerToolbar.js +12 -2
- package/modern/DateTimeRangePicker/DateTimeRangePicker.js +13 -10
- package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +2 -2
- package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +12 -2
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +16 -8
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +13 -10
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +16 -8
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +13 -10
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +6 -6
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +7 -8
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +6 -6
- package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +6 -6
- package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +7 -8
- package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +6 -6
- package/modern/StaticDateRangePicker/StaticDateRangePicker.js +11 -7
- package/modern/index.js +1 -7
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +20 -14
- package/modern/internals/hooks/useEnrichedRangePickerFieldProps.js +4 -4
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +21 -15
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +5 -5
- package/modern/internals/models/fields.js +1 -0
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/validation/validateDateRange.js +5 -0
- package/modern/validation/validateDateTimeRange.js +5 -0
- package/modern/validation/validateTimeRange.js +5 -0
- package/node/DateRangeCalendar/DateRangeCalendar.js +22 -21
- package/node/DateRangeCalendar/useDragRange.js +3 -3
- package/node/DateRangePicker/DateRangePicker.js +12 -8
- package/node/DateRangePicker/DateRangePickerToolbar.js +11 -1
- package/node/DateTimeRangePicker/DateTimeRangePicker.js +13 -10
- package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +1 -1
- package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +11 -1
- package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +16 -8
- package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +13 -10
- package/node/MobileDateRangePicker/MobileDateRangePicker.js +16 -8
- package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +13 -10
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +6 -6
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +7 -8
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +6 -6
- package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +1 -1
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +6 -6
- package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +7 -8
- package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +6 -6
- package/node/StaticDateRangePicker/StaticDateRangePicker.js +11 -7
- package/node/index.js +2 -41
- package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +19 -13
- package/node/internals/hooks/useEnrichedRangePickerFieldProps.js +3 -3
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +19 -13
- package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +4 -4
- package/node/internals/models/fields.js +5 -0
- package/node/internals/utils/releaseInfo.js +1 -1
- package/node/validation/validateDateRange.js +4 -0
- package/node/validation/validateDateTimeRange.js +4 -0
- package/node/validation/validateTimeRange.js +4 -0
- package/package.json +5 -5
- package/themeAugmentation/props.d.ts +16 -17
- package/validation/validateDateRange.d.ts +9 -5
- package/validation/validateDateRange.js +5 -0
- package/validation/validateDateTimeRange.d.ts +11 -6
- package/validation/validateDateTimeRange.js +5 -0
- package/validation/validateTimeRange.d.ts +9 -4
- package/validation/validateTimeRange.js +5 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
3
2
|
import { MultiInputDateRangeFieldProps } from './MultiInputDateRangeField.types';
|
|
4
3
|
import { MultiInputRangeFieldClasses } from '../models';
|
|
5
4
|
export declare const multiInputDateRangeFieldClasses: MultiInputRangeFieldClasses;
|
|
6
5
|
export declare const getMultiInputDateRangeFieldUtilityClass: (slot: string) => string;
|
|
7
|
-
type MultiInputDateRangeFieldComponent = (<
|
|
6
|
+
type MultiInputDateRangeFieldComponent = (<TEnableAccessibleFieldDOMStructure extends boolean = true>(props: MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
8
7
|
propTypes?: any;
|
|
9
8
|
};
|
|
10
9
|
/**
|
|
@@ -86,7 +86,7 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
|
|
|
86
86
|
ownerState,
|
|
87
87
|
className: clsx(className, classes.root)
|
|
88
88
|
});
|
|
89
|
-
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ?
|
|
89
|
+
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
90
90
|
const startTextFieldProps = useSlotProps({
|
|
91
91
|
elementType: TextField,
|
|
92
92
|
externalSlotProps: slotProps?.textField,
|
|
@@ -160,6 +160,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
|
|
|
160
160
|
direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),
|
|
161
161
|
/**
|
|
162
162
|
* If `true`, the component is disabled.
|
|
163
|
+
* When disabled, the value cannot be changed and no interaction is possible.
|
|
163
164
|
* @default false
|
|
164
165
|
*/
|
|
165
166
|
disabled: PropTypes.bool,
|
|
@@ -178,7 +179,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
|
|
|
178
179
|
*/
|
|
179
180
|
divider: PropTypes.node,
|
|
180
181
|
/**
|
|
181
|
-
* @default
|
|
182
|
+
* @default true
|
|
182
183
|
*/
|
|
183
184
|
enableAccessibleFieldDOMStructure: PropTypes.bool,
|
|
184
185
|
/**
|
|
@@ -225,8 +226,8 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
|
|
|
225
226
|
*/
|
|
226
227
|
onSelectedSectionsChange: PropTypes.func,
|
|
227
228
|
/**
|
|
228
|
-
*
|
|
229
|
-
*
|
|
229
|
+
* If `true`, the component is read-only.
|
|
230
|
+
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
230
231
|
* @default false
|
|
231
232
|
*/
|
|
232
233
|
readOnly: PropTypes.bool,
|
|
@@ -251,8 +252,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
|
|
|
251
252
|
*
|
|
252
253
|
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
253
254
|
*
|
|
254
|
-
* @
|
|
255
|
-
* @param {TDate} day The date to test.
|
|
255
|
+
* @param {PickerValidDate} day The date to test.
|
|
256
256
|
* @param {string} position The date to test, 'start' or 'end'.
|
|
257
257
|
* @returns {boolean} Returns `true` if the date should be disabled.
|
|
258
258
|
*/
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
3
2
|
import { SlotComponentProps } from '@mui/utils';
|
|
4
3
|
import Typography from '@mui/material/Typography';
|
|
5
4
|
import Stack, { StackProps } from '@mui/material/Stack';
|
|
6
5
|
import TextField from '@mui/material/TextField';
|
|
7
6
|
import { UseMultiInputRangeFieldParams } from '../internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types';
|
|
8
7
|
import { MultiInputFieldRefs, MultiInputRangeFieldClasses, RangePosition, UseDateRangeFieldProps } from '../models';
|
|
9
|
-
export type UseMultiInputDateRangeFieldParams<
|
|
10
|
-
export interface UseMultiInputDateRangeFieldProps<
|
|
8
|
+
export type UseMultiInputDateRangeFieldParams<TEnableAccessibleFieldDOMStructure extends boolean, TTextFieldSlotProps extends {}> = UseMultiInputRangeFieldParams<UseMultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>, TTextFieldSlotProps>;
|
|
9
|
+
export interface UseMultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends Omit<UseDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>, 'unstableFieldRef' | 'clearable' | 'onClear'>, MultiInputFieldRefs {
|
|
11
10
|
}
|
|
12
|
-
export type UseMultiInputDateRangeFieldComponentProps<
|
|
13
|
-
export interface MultiInputDateRangeFieldProps<
|
|
11
|
+
export type UseMultiInputDateRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure extends boolean, TChildProps extends {}> = Omit<TChildProps, keyof UseMultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseMultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>;
|
|
12
|
+
export interface MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends UseMultiInputDateRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure, Omit<StackProps, 'position'>> {
|
|
14
13
|
autoFocus?: boolean;
|
|
15
14
|
/**
|
|
16
15
|
* Override or extend the styles applied to the component.
|
|
@@ -25,7 +24,7 @@ export interface MultiInputDateRangeFieldProps<TDate extends PickerValidDate, TE
|
|
|
25
24
|
* The props used for each component slot.
|
|
26
25
|
* @default {}
|
|
27
26
|
*/
|
|
28
|
-
slotProps?: MultiInputDateRangeFieldSlotProps<
|
|
27
|
+
slotProps?: MultiInputDateRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
29
28
|
}
|
|
30
29
|
export interface MultiInputDateRangeFieldSlots {
|
|
31
30
|
/**
|
|
@@ -45,10 +44,10 @@ export interface MultiInputDateRangeFieldSlots {
|
|
|
45
44
|
*/
|
|
46
45
|
separator?: React.ElementType;
|
|
47
46
|
}
|
|
48
|
-
export interface MultiInputDateRangeFieldSlotProps<
|
|
49
|
-
root?: SlotComponentProps<typeof Stack, {}, MultiInputDateRangeFieldProps<
|
|
50
|
-
textField?: SlotComponentProps<typeof TextField, {}, MultiInputDateRangeFieldProps<
|
|
47
|
+
export interface MultiInputDateRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> {
|
|
48
|
+
root?: SlotComponentProps<typeof Stack, {}, MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
|
|
49
|
+
textField?: SlotComponentProps<typeof TextField, {}, MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
|
|
51
50
|
position: RangePosition;
|
|
52
51
|
}>;
|
|
53
|
-
separator?: SlotComponentProps<typeof Typography, {}, MultiInputDateRangeFieldProps<
|
|
52
|
+
separator?: SlotComponentProps<typeof Typography, {}, MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
|
|
54
53
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
3
2
|
import { MultiInputDateTimeRangeFieldProps } from './MultiInputDateTimeRangeField.types';
|
|
4
3
|
import { MultiInputRangeFieldClasses } from '../models';
|
|
5
4
|
export declare const multiInputDateTimeRangeFieldClasses: MultiInputRangeFieldClasses;
|
|
6
5
|
export declare const getMultiInputDateTimeRangeFieldUtilityClass: (slot: string) => string;
|
|
7
|
-
type MultiInputDateTimeRangeFieldComponent = (<
|
|
6
|
+
type MultiInputDateTimeRangeFieldComponent = (<TEnableAccessibleFieldDOMStructure extends boolean = true>(props: MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
8
7
|
propTypes?: any;
|
|
9
8
|
};
|
|
10
9
|
/**
|
|
@@ -86,7 +86,7 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
|
|
|
86
86
|
ownerState,
|
|
87
87
|
className: clsx(className, classes.root)
|
|
88
88
|
});
|
|
89
|
-
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ?
|
|
89
|
+
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
90
90
|
const startTextFieldProps = useSlotProps({
|
|
91
91
|
elementType: TextField,
|
|
92
92
|
externalSlotProps: slotProps?.textField,
|
|
@@ -165,6 +165,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
|
|
|
165
165
|
direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),
|
|
166
166
|
/**
|
|
167
167
|
* If `true`, the component is disabled.
|
|
168
|
+
* When disabled, the value cannot be changed and no interaction is possible.
|
|
168
169
|
* @default false
|
|
169
170
|
*/
|
|
170
171
|
disabled: PropTypes.bool,
|
|
@@ -188,7 +189,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
|
|
|
188
189
|
*/
|
|
189
190
|
divider: PropTypes.node,
|
|
190
191
|
/**
|
|
191
|
-
* @default
|
|
192
|
+
* @default true
|
|
192
193
|
*/
|
|
193
194
|
enableAccessibleFieldDOMStructure: PropTypes.bool,
|
|
194
195
|
/**
|
|
@@ -258,8 +259,8 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
|
|
|
258
259
|
*/
|
|
259
260
|
onSelectedSectionsChange: PropTypes.func,
|
|
260
261
|
/**
|
|
261
|
-
*
|
|
262
|
-
*
|
|
262
|
+
* If `true`, the component is read-only.
|
|
263
|
+
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
263
264
|
* @default false
|
|
264
265
|
*/
|
|
265
266
|
readOnly: PropTypes.bool,
|
|
@@ -284,16 +285,14 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
|
|
|
284
285
|
*
|
|
285
286
|
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
286
287
|
*
|
|
287
|
-
* @
|
|
288
|
-
* @param {TDate} day The date to test.
|
|
288
|
+
* @param {PickerValidDate} day The date to test.
|
|
289
289
|
* @param {string} position The date to test, 'start' or 'end'.
|
|
290
290
|
* @returns {boolean} Returns `true` if the date should be disabled.
|
|
291
291
|
*/
|
|
292
292
|
shouldDisableDate: PropTypes.func,
|
|
293
293
|
/**
|
|
294
294
|
* Disable specific time.
|
|
295
|
-
* @
|
|
296
|
-
* @param {TDate} value The value to check.
|
|
295
|
+
* @param {PickerValidDate} value The value to check.
|
|
297
296
|
* @param {TimeView} view The clock type of the timeValue.
|
|
298
297
|
* @returns {boolean} If `true` the time will be disabled.
|
|
299
298
|
*/
|
|
@@ -3,15 +3,14 @@ import { SlotComponentProps } from '@mui/utils';
|
|
|
3
3
|
import Typography from '@mui/material/Typography';
|
|
4
4
|
import Stack, { StackProps } from '@mui/material/Stack';
|
|
5
5
|
import TextField from '@mui/material/TextField';
|
|
6
|
-
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
7
6
|
import { UseDateTimeRangeFieldProps } from '../internals/models/dateTimeRange';
|
|
8
7
|
import { UseMultiInputRangeFieldParams } from '../internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types';
|
|
9
8
|
import { MultiInputFieldRefs, MultiInputRangeFieldClasses, RangePosition } from '../models';
|
|
10
|
-
export type UseMultiInputDateTimeRangeFieldParams<
|
|
11
|
-
export interface UseMultiInputDateTimeRangeFieldProps<
|
|
9
|
+
export type UseMultiInputDateTimeRangeFieldParams<TEnableAccessibleFieldDOMStructure extends boolean, TTextFieldSlotProps extends {}> = UseMultiInputRangeFieldParams<UseMultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, TTextFieldSlotProps>;
|
|
10
|
+
export interface UseMultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends Omit<UseDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, 'unstableFieldRef' | 'clearable' | 'onClear'>, MultiInputFieldRefs {
|
|
12
11
|
}
|
|
13
|
-
export type UseMultiInputDateTimeRangeFieldComponentProps<
|
|
14
|
-
export interface MultiInputDateTimeRangeFieldProps<
|
|
12
|
+
export type UseMultiInputDateTimeRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure extends boolean, TChildProps extends {}> = Omit<TChildProps, keyof UseMultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseMultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>;
|
|
13
|
+
export interface MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends UseMultiInputDateTimeRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure, Omit<StackProps, 'position'>> {
|
|
15
14
|
autoFocus?: boolean;
|
|
16
15
|
/**
|
|
17
16
|
* Override or extend the styles applied to the component.
|
|
@@ -26,7 +25,7 @@ export interface MultiInputDateTimeRangeFieldProps<TDate extends PickerValidDate
|
|
|
26
25
|
* The props used for each component slot.
|
|
27
26
|
* @default {}
|
|
28
27
|
*/
|
|
29
|
-
slotProps?: MultiInputDateTimeRangeFieldSlotProps<
|
|
28
|
+
slotProps?: MultiInputDateTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
30
29
|
}
|
|
31
30
|
export interface MultiInputDateTimeRangeFieldSlots {
|
|
32
31
|
/**
|
|
@@ -46,10 +45,10 @@ export interface MultiInputDateTimeRangeFieldSlots {
|
|
|
46
45
|
*/
|
|
47
46
|
separator?: React.ElementType;
|
|
48
47
|
}
|
|
49
|
-
export interface MultiInputDateTimeRangeFieldSlotProps<
|
|
50
|
-
root?: SlotComponentProps<typeof Stack, {}, MultiInputDateTimeRangeFieldProps<
|
|
51
|
-
textField?: SlotComponentProps<typeof TextField, {}, MultiInputDateTimeRangeFieldProps<
|
|
48
|
+
export interface MultiInputDateTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> {
|
|
49
|
+
root?: SlotComponentProps<typeof Stack, {}, MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
|
|
50
|
+
textField?: SlotComponentProps<typeof TextField, {}, MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
|
|
52
51
|
position: RangePosition;
|
|
53
52
|
}>;
|
|
54
|
-
separator?: SlotComponentProps<typeof Typography, {}, MultiInputDateTimeRangeFieldProps<
|
|
53
|
+
separator?: SlotComponentProps<typeof Typography, {}, MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
|
|
55
54
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
3
2
|
import { MultiInputTimeRangeFieldProps } from './MultiInputTimeRangeField.types';
|
|
4
3
|
import { MultiInputRangeFieldClasses } from '../models';
|
|
5
4
|
export declare const multiInputTimeRangeFieldClasses: MultiInputRangeFieldClasses;
|
|
6
5
|
export declare const getMultiInputTimeRangeFieldUtilityClass: (slot: string) => string;
|
|
7
|
-
type MultiInputTimeRangeFieldComponent = (<
|
|
6
|
+
type MultiInputTimeRangeFieldComponent = (<TEnableAccessibleFieldDOMStructure extends boolean = true>(props: MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
8
7
|
propTypes?: any;
|
|
9
8
|
};
|
|
10
9
|
/**
|
|
@@ -86,7 +86,7 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
|
|
|
86
86
|
ownerState,
|
|
87
87
|
className: clsx(className, classes.root)
|
|
88
88
|
});
|
|
89
|
-
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ?
|
|
89
|
+
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
90
90
|
const startTextFieldProps = useSlotProps({
|
|
91
91
|
elementType: TextField,
|
|
92
92
|
externalSlotProps: slotProps?.textField,
|
|
@@ -165,6 +165,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
|
|
|
165
165
|
direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),
|
|
166
166
|
/**
|
|
167
167
|
* If `true`, the component is disabled.
|
|
168
|
+
* When disabled, the value cannot be changed and no interaction is possible.
|
|
168
169
|
* @default false
|
|
169
170
|
*/
|
|
170
171
|
disabled: PropTypes.bool,
|
|
@@ -188,7 +189,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
|
|
|
188
189
|
*/
|
|
189
190
|
divider: PropTypes.node,
|
|
190
191
|
/**
|
|
191
|
-
* @default
|
|
192
|
+
* @default true
|
|
192
193
|
*/
|
|
193
194
|
enableAccessibleFieldDOMStructure: PropTypes.bool,
|
|
194
195
|
/**
|
|
@@ -240,8 +241,8 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
|
|
|
240
241
|
*/
|
|
241
242
|
onSelectedSectionsChange: PropTypes.func,
|
|
242
243
|
/**
|
|
243
|
-
*
|
|
244
|
-
*
|
|
244
|
+
* If `true`, the component is read-only.
|
|
245
|
+
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
245
246
|
* @default false
|
|
246
247
|
*/
|
|
247
248
|
readOnly: PropTypes.bool,
|
|
@@ -263,8 +264,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
|
|
|
263
264
|
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),
|
|
264
265
|
/**
|
|
265
266
|
* Disable specific time.
|
|
266
|
-
* @
|
|
267
|
-
* @param {TDate} value The value to check.
|
|
267
|
+
* @param {PickerValidDate} value The value to check.
|
|
268
268
|
* @param {TimeView} view The clock type of the timeValue.
|
|
269
269
|
* @returns {boolean} If `true` the time will be disabled.
|
|
270
270
|
*/
|
|
@@ -3,15 +3,14 @@ import { SlotComponentProps } from '@mui/utils';
|
|
|
3
3
|
import Typography from '@mui/material/Typography';
|
|
4
4
|
import Stack, { StackProps } from '@mui/material/Stack';
|
|
5
5
|
import TextField from '@mui/material/TextField';
|
|
6
|
-
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
7
6
|
import { UseTimeRangeFieldProps } from '../internals/models/timeRange';
|
|
8
7
|
import { UseMultiInputRangeFieldParams } from '../internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types';
|
|
9
8
|
import { MultiInputFieldRefs, MultiInputRangeFieldClasses, RangePosition } from '../models';
|
|
10
|
-
export type UseMultiInputTimeRangeFieldParams<
|
|
11
|
-
export interface UseMultiInputTimeRangeFieldProps<
|
|
9
|
+
export type UseMultiInputTimeRangeFieldParams<TEnableAccessibleFieldDOMStructure extends boolean, TTextFieldSlotProps extends {}> = UseMultiInputRangeFieldParams<UseMultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, TTextFieldSlotProps>;
|
|
10
|
+
export interface UseMultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends Omit<UseTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, 'unstableFieldRef' | 'clearable' | 'onClear'>, MultiInputFieldRefs {
|
|
12
11
|
}
|
|
13
|
-
export type UseMultiInputTimeRangeFieldComponentProps<
|
|
14
|
-
export interface MultiInputTimeRangeFieldProps<
|
|
12
|
+
export type UseMultiInputTimeRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure extends boolean, TChildProps extends {}> = Omit<TChildProps, keyof UseMultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseMultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>;
|
|
13
|
+
export interface MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends UseMultiInputTimeRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure, Omit<StackProps, 'position'>> {
|
|
15
14
|
autoFocus?: boolean;
|
|
16
15
|
/**
|
|
17
16
|
* Override or extend the styles applied to the component.
|
|
@@ -26,7 +25,7 @@ export interface MultiInputTimeRangeFieldProps<TDate extends PickerValidDate, TE
|
|
|
26
25
|
* The props used for each component slot.
|
|
27
26
|
* @default {}
|
|
28
27
|
*/
|
|
29
|
-
slotProps?: MultiInputTimeRangeFieldSlotProps<
|
|
28
|
+
slotProps?: MultiInputTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
30
29
|
}
|
|
31
30
|
export interface MultiInputTimeRangeFieldSlots {
|
|
32
31
|
/**
|
|
@@ -46,10 +45,10 @@ export interface MultiInputTimeRangeFieldSlots {
|
|
|
46
45
|
*/
|
|
47
46
|
separator?: React.ElementType;
|
|
48
47
|
}
|
|
49
|
-
export interface MultiInputTimeRangeFieldSlotProps<
|
|
50
|
-
root?: SlotComponentProps<typeof Stack, {}, MultiInputTimeRangeFieldProps<
|
|
51
|
-
textField?: SlotComponentProps<typeof TextField, {}, MultiInputTimeRangeFieldProps<
|
|
48
|
+
export interface MultiInputTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> {
|
|
49
|
+
root?: SlotComponentProps<typeof Stack, {}, MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
|
|
50
|
+
textField?: SlotComponentProps<typeof TextField, {}, MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
|
|
52
51
|
position: RangePosition;
|
|
53
52
|
}>;
|
|
54
|
-
separator?: SlotComponentProps<typeof Typography, {}, MultiInputTimeRangeFieldProps<
|
|
53
|
+
separator?: SlotComponentProps<typeof Typography, {}, MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
|
|
55
54
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
3
2
|
import { PickersRangeCalendarHeaderProps } from './PickersRangeCalendarHeader.types';
|
|
4
|
-
type PickersRangeCalendarHeaderComponent = (
|
|
3
|
+
type PickersRangeCalendarHeaderComponent = ((props: PickersRangeCalendarHeaderProps & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
5
4
|
propTypes?: any;
|
|
6
5
|
};
|
|
7
6
|
declare const PickersRangeCalendarHeader: PickersRangeCalendarHeaderComponent;
|
|
@@ -9,7 +9,7 @@ import PropTypes from 'prop-types';
|
|
|
9
9
|
import { styled } from '@mui/material/styles';
|
|
10
10
|
import { PickersCalendarHeader } from '@mui/x-date-pickers/PickersCalendarHeader';
|
|
11
11
|
import { PickersArrowSwitcher, useNextMonthDisabled, usePreviousMonthDisabled, useUtils } from '@mui/x-date-pickers/internals';
|
|
12
|
-
import {
|
|
12
|
+
import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
|
|
13
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
14
|
const PickersRangeCalendarHeaderContentMultipleCalendars = styled(PickersArrowSwitcher)({
|
|
15
15
|
padding: '12px 16px 4px 16px',
|
|
@@ -19,7 +19,7 @@ const PickersRangeCalendarHeaderContentMultipleCalendars = styled(PickersArrowSw
|
|
|
19
19
|
});
|
|
20
20
|
const PickersRangeCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersRangeCalendarHeader(props, ref) {
|
|
21
21
|
const utils = useUtils();
|
|
22
|
-
const translations =
|
|
22
|
+
const translations = usePickerTranslations();
|
|
23
23
|
const {
|
|
24
24
|
calendars,
|
|
25
25
|
month,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
2
2
|
import { ExportedPickersCalendarHeaderProps, PickersCalendarHeaderProps } from '@mui/x-date-pickers/PickersCalendarHeader';
|
|
3
|
-
export interface PickersRangeCalendarHeaderProps
|
|
3
|
+
export interface PickersRangeCalendarHeaderProps extends PickersCalendarHeaderProps {
|
|
4
4
|
/**
|
|
5
5
|
* The number of calendars rendered.
|
|
6
6
|
*/
|
|
@@ -8,11 +8,11 @@ export interface PickersRangeCalendarHeaderProps<TDate extends PickerValidDate>
|
|
|
8
8
|
/**
|
|
9
9
|
* Month used for this header.
|
|
10
10
|
*/
|
|
11
|
-
month:
|
|
11
|
+
month: PickerValidDate;
|
|
12
12
|
/**
|
|
13
13
|
* Index of the month used for this header.
|
|
14
14
|
*/
|
|
15
15
|
monthIndex: number;
|
|
16
16
|
}
|
|
17
|
-
export interface ExportedPickersRangeCalendarHeaderProps
|
|
17
|
+
export interface ExportedPickersRangeCalendarHeaderProps extends ExportedPickersCalendarHeaderProps {
|
|
18
18
|
}
|
package/README.md
CHANGED
|
@@ -30,11 +30,11 @@ npm install luxon
|
|
|
30
30
|
npm install moment
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
This component has the following peer dependencies that you
|
|
33
|
+
This component has the following peer dependencies that you need to install as well.
|
|
34
34
|
|
|
35
35
|
```json
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"@mui/material": "^5.15.14",
|
|
37
|
+
"@mui/material": "^5.15.14 || ^6.0.0",
|
|
38
38
|
"react": "^17.0.0 || ^18.0.0",
|
|
39
39
|
"react-dom": "^17.0.0 || ^18.0.0"
|
|
40
40
|
},
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
3
2
|
import { SingleInputDateRangeFieldProps } from './SingleInputDateRangeField.types';
|
|
4
3
|
import { FieldType } from '../models';
|
|
5
|
-
type DateRangeFieldComponent = (<
|
|
4
|
+
type DateRangeFieldComponent = (<TEnableAccessibleFieldDOMStructure extends boolean = true>(props: SingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
6
5
|
propTypes?: any;
|
|
7
6
|
fieldType?: FieldType;
|
|
8
7
|
};
|
|
@@ -37,7 +37,7 @@ const SingleInputDateRangeField = /*#__PURE__*/React.forwardRef(function SingleI
|
|
|
37
37
|
} = themeProps,
|
|
38
38
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
39
39
|
const ownerState = themeProps;
|
|
40
|
-
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ?
|
|
40
|
+
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
41
41
|
const textFieldProps = useSlotProps({
|
|
42
42
|
elementType: TextField,
|
|
43
43
|
externalSlotProps: slotProps?.textField,
|
|
@@ -95,6 +95,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
|
|
|
95
95
|
defaultValue: PropTypes.arrayOf(PropTypes.object),
|
|
96
96
|
/**
|
|
97
97
|
* If `true`, the component is disabled.
|
|
98
|
+
* When disabled, the value cannot be changed and no interaction is possible.
|
|
98
99
|
* @default false
|
|
99
100
|
*/
|
|
100
101
|
disabled: PropTypes.bool,
|
|
@@ -109,7 +110,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
|
|
|
109
110
|
*/
|
|
110
111
|
disablePast: PropTypes.bool,
|
|
111
112
|
/**
|
|
112
|
-
* @default
|
|
113
|
+
* @default true
|
|
113
114
|
*/
|
|
114
115
|
enableAccessibleFieldDOMStructure: PropTypes.bool,
|
|
115
116
|
/**
|
|
@@ -224,8 +225,8 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
|
|
|
224
225
|
*/
|
|
225
226
|
onSelectedSectionsChange: PropTypes.func,
|
|
226
227
|
/**
|
|
227
|
-
*
|
|
228
|
-
*
|
|
228
|
+
* If `true`, the component is read-only.
|
|
229
|
+
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
229
230
|
* @default false
|
|
230
231
|
*/
|
|
231
232
|
readOnly: PropTypes.bool,
|
|
@@ -255,8 +256,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
|
|
|
255
256
|
*
|
|
256
257
|
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
257
258
|
*
|
|
258
|
-
* @
|
|
259
|
-
* @param {TDate} day The date to test.
|
|
259
|
+
* @param {PickerValidDate} day The date to test.
|
|
260
260
|
* @param {string} position The date to test, 'start' or 'end'.
|
|
261
261
|
* @returns {boolean} Returns `true` if the date should be disabled.
|
|
262
262
|
*/
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { SlotComponentProps } from '@mui/utils';
|
|
3
3
|
import TextField from '@mui/material/TextField';
|
|
4
|
-
import { UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
5
|
-
import { BuiltInFieldTextFieldProps
|
|
4
|
+
import { UseFieldInternalProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
5
|
+
import { BuiltInFieldTextFieldProps } from '@mui/x-date-pickers/models';
|
|
6
6
|
import { ExportedUseClearableFieldProps, UseClearableFieldSlots, UseClearableFieldSlotProps } from '@mui/x-date-pickers/hooks';
|
|
7
|
-
import type {
|
|
8
|
-
export interface UseSingleInputDateRangeFieldProps<
|
|
7
|
+
import type { RangeFieldSection, DateRangeValidationError, UseDateRangeFieldProps } from '../models';
|
|
8
|
+
export interface UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>, ExportedUseClearableFieldProps, Pick<UseFieldInternalProps<PickerRangeValue, RangeFieldSection, TEnableAccessibleFieldDOMStructure, DateRangeValidationError>, 'unstableFieldRef'> {
|
|
9
9
|
}
|
|
10
|
-
export type SingleInputDateRangeFieldProps<
|
|
10
|
+
export type SingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = Omit<BuiltInFieldTextFieldProps<TEnableAccessibleFieldDOMStructure>, keyof UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
|
|
11
11
|
/**
|
|
12
12
|
* Overridable component slots.
|
|
13
13
|
* @default {}
|
|
@@ -17,7 +17,7 @@ export type SingleInputDateRangeFieldProps<TDate extends PickerValidDate, TEnabl
|
|
|
17
17
|
* The props used for each component slot.
|
|
18
18
|
* @default {}
|
|
19
19
|
*/
|
|
20
|
-
slotProps?: SingleInputDateRangeFieldSlotProps<
|
|
20
|
+
slotProps?: SingleInputDateRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
21
21
|
};
|
|
22
22
|
export interface SingleInputDateRangeFieldSlots extends UseClearableFieldSlots {
|
|
23
23
|
/**
|
|
@@ -26,6 +26,6 @@ export interface SingleInputDateRangeFieldSlots extends UseClearableFieldSlots {
|
|
|
26
26
|
*/
|
|
27
27
|
textField?: React.ElementType;
|
|
28
28
|
}
|
|
29
|
-
export interface SingleInputDateRangeFieldSlotProps<
|
|
30
|
-
textField?: SlotComponentProps<typeof TextField, {}, SingleInputDateRangeFieldProps<
|
|
29
|
+
export interface SingleInputDateRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseClearableFieldSlotProps {
|
|
30
|
+
textField?: SlotComponentProps<typeof TextField, {}, SingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
|
|
31
31
|
}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
2
1
|
import { UseSingleInputDateRangeFieldProps } from './SingleInputDateRangeField.types';
|
|
3
|
-
export declare const useSingleInputDateRangeField: <
|
|
2
|
+
export declare const useSingleInputDateRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateFieldBaseProps> & Required<Pick<UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateFieldBaseProps>>, "disabled" | "format" | "onChange" | "onError" | "defaultValue" | "value" | "readOnly" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "timezone" | "unstableFieldRef" | "referenceDate" | "shouldRespectLeadingZeros" | keyof import("@mui/x-date-pickers/internals").BaseDateValidationProps | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "dateSeparator">>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
3
2
|
import { SingleInputDateTimeRangeFieldProps } from './SingleInputDateTimeRangeField.types';
|
|
4
3
|
import { FieldType } from '../models';
|
|
5
|
-
type DateRangeFieldComponent = (<
|
|
4
|
+
type DateRangeFieldComponent = (<TEnableAccessibleFieldDOMStructure extends boolean = true>(props: SingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
6
5
|
propTypes?: any;
|
|
7
6
|
fieldType?: FieldType;
|
|
8
7
|
};
|
|
@@ -37,7 +37,7 @@ const SingleInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Sin
|
|
|
37
37
|
} = themeProps,
|
|
38
38
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
39
39
|
const ownerState = themeProps;
|
|
40
|
-
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ?
|
|
40
|
+
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
41
41
|
const textFieldProps = useSlotProps({
|
|
42
42
|
elementType: TextField,
|
|
43
43
|
externalSlotProps: slotProps?.textField,
|
|
@@ -100,6 +100,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
|
|
|
100
100
|
defaultValue: PropTypes.arrayOf(PropTypes.object),
|
|
101
101
|
/**
|
|
102
102
|
* If `true`, the component is disabled.
|
|
103
|
+
* When disabled, the value cannot be changed and no interaction is possible.
|
|
103
104
|
* @default false
|
|
104
105
|
*/
|
|
105
106
|
disabled: PropTypes.bool,
|
|
@@ -119,7 +120,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
|
|
|
119
120
|
*/
|
|
120
121
|
disablePast: PropTypes.bool,
|
|
121
122
|
/**
|
|
122
|
-
* @default
|
|
123
|
+
* @default true
|
|
123
124
|
*/
|
|
124
125
|
enableAccessibleFieldDOMStructure: PropTypes.bool,
|
|
125
126
|
/**
|
|
@@ -257,8 +258,8 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
|
|
|
257
258
|
*/
|
|
258
259
|
onSelectedSectionsChange: PropTypes.func,
|
|
259
260
|
/**
|
|
260
|
-
*
|
|
261
|
-
*
|
|
261
|
+
* If `true`, the component is read-only.
|
|
262
|
+
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
262
263
|
* @default false
|
|
263
264
|
*/
|
|
264
265
|
readOnly: PropTypes.bool,
|
|
@@ -288,16 +289,14 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
|
|
|
288
289
|
*
|
|
289
290
|
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
290
291
|
*
|
|
291
|
-
* @
|
|
292
|
-
* @param {TDate} day The date to test.
|
|
292
|
+
* @param {PickerValidDate} day The date to test.
|
|
293
293
|
* @param {string} position The date to test, 'start' or 'end'.
|
|
294
294
|
* @returns {boolean} Returns `true` if the date should be disabled.
|
|
295
295
|
*/
|
|
296
296
|
shouldDisableDate: PropTypes.func,
|
|
297
297
|
/**
|
|
298
298
|
* Disable specific time.
|
|
299
|
-
* @
|
|
300
|
-
* @param {TDate} value The value to check.
|
|
299
|
+
* @param {PickerValidDate} value The value to check.
|
|
301
300
|
* @param {TimeView} view The clock type of the timeValue.
|
|
302
301
|
* @returns {boolean} If `true` the time will be disabled.
|
|
303
302
|
*/
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { SlotComponentProps } from '@mui/utils';
|
|
3
3
|
import TextField from '@mui/material/TextField';
|
|
4
|
-
import { UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
5
|
-
import { BuiltInFieldTextFieldProps
|
|
4
|
+
import { UseFieldInternalProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
5
|
+
import { BuiltInFieldTextFieldProps } from '@mui/x-date-pickers/models';
|
|
6
6
|
import { ExportedUseClearableFieldProps, UseClearableFieldSlots, UseClearableFieldSlotProps } from '@mui/x-date-pickers/hooks';
|
|
7
7
|
import { UseDateTimeRangeFieldProps } from '../internals/models';
|
|
8
|
-
import {
|
|
9
|
-
export interface UseSingleInputDateTimeRangeFieldProps<
|
|
8
|
+
import { RangeFieldSection, DateTimeRangeValidationError } from '../models';
|
|
9
|
+
export interface UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, ExportedUseClearableFieldProps, Pick<UseFieldInternalProps<PickerRangeValue, RangeFieldSection, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError>, 'unstableFieldRef'> {
|
|
10
10
|
}
|
|
11
|
-
export type SingleInputDateTimeRangeFieldProps<
|
|
11
|
+
export type SingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = Omit<BuiltInFieldTextFieldProps<TEnableAccessibleFieldDOMStructure>, keyof UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
|
|
12
12
|
/**
|
|
13
13
|
* Overridable component slots.
|
|
14
14
|
* @default {}
|
|
@@ -18,7 +18,7 @@ export type SingleInputDateTimeRangeFieldProps<TDate extends PickerValidDate, TE
|
|
|
18
18
|
* The props used for each component slot.
|
|
19
19
|
* @default {}
|
|
20
20
|
*/
|
|
21
|
-
slotProps?: SingleInputDateTimeRangeFieldSlotProps<
|
|
21
|
+
slotProps?: SingleInputDateTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
22
22
|
};
|
|
23
23
|
export interface SingleInputDateTimeRangeFieldSlots extends UseClearableFieldSlots {
|
|
24
24
|
/**
|
|
@@ -27,6 +27,6 @@ export interface SingleInputDateTimeRangeFieldSlots extends UseClearableFieldSlo
|
|
|
27
27
|
*/
|
|
28
28
|
textField?: React.ElementType;
|
|
29
29
|
}
|
|
30
|
-
export interface SingleInputDateTimeRangeFieldSlotProps<
|
|
31
|
-
textField?: SlotComponentProps<typeof TextField, {}, SingleInputDateTimeRangeFieldProps<
|
|
30
|
+
export interface SingleInputDateTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseClearableFieldSlotProps {
|
|
31
|
+
textField?: SlotComponentProps<typeof TextField, {}, SingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
|
|
32
32
|
}
|