|
| 1 | +import { UseDateTimeFieldProps } from '../DateTimeField'; |
1 | 2 | import { |
2 | 3 | DesktopDateTimePickerProps, |
3 | 4 | DesktopDateTimePickerSlots, |
4 | 5 | DesktopDateTimePickerSlotProps, |
5 | 6 | } from '../DesktopDateTimePicker'; |
6 | 7 | import { DateOrTimeViewWithMeridiem } from '../internals/models'; |
| 8 | +import { DefaultizedProps } from '../internals/models/helpers'; |
| 9 | +import { BaseDateValidationProps, BaseTimeValidationProps } from '../internals/models/validation'; |
7 | 10 | import { |
8 | 11 | MobileDateTimePickerProps, |
9 | 12 | MobileDateTimePickerSlots, |
10 | 13 | MobileDateTimePickerSlotProps, |
11 | 14 | } from '../MobileDateTimePicker'; |
12 | | -import { PickerValidDate } from '../models'; |
| 15 | +import { |
| 16 | + BaseSingleInputFieldProps, |
| 17 | + DateTimeValidationError, |
| 18 | + FieldSection, |
| 19 | + PickerValidDate, |
| 20 | +} from '../models'; |
13 | 21 | import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types'; |
14 | 22 |
|
15 | 23 | export interface DateTimePickerSlots<TDate extends PickerValidDate> |
@@ -61,3 +69,20 @@ export interface DateTimePickerProps< |
61 | 69 | */ |
62 | 70 | yearsPerRow?: 3 | 4; |
63 | 71 | } |
| 72 | + |
| 73 | +/** |
| 74 | + * Props the field can receive when used inside a date time picker. |
| 75 | + * (`DateTimePicker`, `DesktopDateTimePicker` or `MobileDateTimePicker` component). |
| 76 | + */ |
| 77 | +export type DateTimePickerFieldProps< |
| 78 | + TDate extends PickerValidDate, |
| 79 | + TEnableAccessibleFieldDOMStructure extends boolean = false, |
| 80 | +> = DefaultizedProps< |
| 81 | + UseDateTimeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, |
| 82 | + | 'format' |
| 83 | + | 'timezone' |
| 84 | + | 'ampm' |
| 85 | + | keyof BaseDateValidationProps<TDate> |
| 86 | + | keyof BaseTimeValidationProps |
| 87 | +> & |
| 88 | + BaseSingleInputFieldProps<TDate | null, TDate, FieldSection, false, DateTimeValidationError>; |
0 commit comments