UNPKG

@material-ui/lab

Version:

Material-UI Lab - Incubator for Material-UI React components.

151 lines (150 loc) 11.2 kB
import * as React from 'react'; import { ExportedClockPickerProps } from '../ClockPicker/ClockPicker'; import { OverrideParsableDateProps } from '../internal/pickers/hooks/date-helpers-hooks'; import { ExportedDayPickerProps } from '../DayPicker/DayPicker'; import { SharedPickerProps } from '../internal/pickers/Picker/makePickerWithState'; import { SomeWrapper } from '../internal/pickers/wrappers/Wrapper'; import { WithViewsProps, AllSharedPickerProps } from '../internal/pickers/Picker/SharedPickerProps'; import { DateAndTimeValidationError } from './date-time-utils'; import { ValidationProps } from '../internal/pickers/hooks/useValidation'; import { ParsableDate } from '../internal/pickers/constants/prop-types'; declare type DateTimePickerViewsProps<TDate> = OverrideParsableDateProps<TDate, ExportedClockPickerProps<TDate> & ExportedDayPickerProps<TDate>, 'minDate' | 'maxDate' | 'minTime' | 'maxTime'>; export interface BaseDateTimePickerProps<TDate> extends WithViewsProps<'year' | 'date' | 'month' | 'hours' | 'minutes'>, ValidationProps<DateAndTimeValidationError, ParsableDate>, DateTimePickerViewsProps<TDate> { /** * To show tabs. */ hideTabs?: boolean; /** * Date tab icon. */ dateRangeIcon?: React.ReactNode; /** * Time tab icon. */ timeIcon?: React.ReactNode; /** * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`. */ minDateTime?: ParsableDate<TDate>; /** * Minimal selectable moment of time with binding to date, to set max time in each day use `maxTime`. */ maxDateTime?: ParsableDate<TDate>; /** * Date format, that is displaying in toolbar. */ toolbarFormat?: string; } declare function useInterceptProps({ ampm, inputFormat, maxDate: __maxDate, maxDateTime: __maxDateTime, maxTime: __maxTime, minDate: __minDate, minDateTime: __minDateTime, minTime: __minTime, openTo, orientation, views, ...other }: BaseDateTimePickerProps<unknown> & AllSharedPickerProps): { /** * To show tabs. */ hideTabs?: boolean | undefined; /** * Date tab icon. */ dateRangeIcon?: React.ReactNode; /** * Time tab icon. */ timeIcon?: React.ReactNode; toolbarFormat?: string | undefined; onError?: ((reason: "invalidDate" | "minTime" | "maxTime" | "shouldDisableTime-hours" | "shouldDisableTime-minutes" | "shouldDisableTime-seconds" | "shouldDisableDate" | "disableFuture" | "disablePast" | "minDate" | "maxDate" | null, value: unknown) => void) | undefined; shouldDisableTime?: ((timeValue: number, clockType: import("../internal/pickers/constants/ClockType").ClockViewType) => boolean) | undefined; disableIgnoringDatePartForTimeValidation: boolean; loading?: boolean | undefined; onViewChange?: ((view: import("../internal/pickers/typings/Views").DatePickerView) => void) | undefined; disablePast?: boolean | undefined; disableFuture?: boolean | undefined; onMonthChange?: ((date: unknown) => void) | undefined; reduceAnimations?: boolean | undefined; shouldDisableDate?: ((day: unknown) => boolean) | undefined; defaultCalendarMonth?: unknown; disableHighlightToday?: boolean | undefined; showDaysOutsideCurrentMonth?: boolean | undefined; allowSameDateSelection: boolean; leftArrowIcon?: React.ReactNode; rightArrowIcon?: React.ReactNode; leftArrowButtonProps?: Partial<import("../../../material-ui/src/OverridableComponent").OverrideProps<import("../../../material-ui/src").IconButtonTypeMap<{}, "button">, "button">> | undefined; rightArrowButtonProps?: Partial<import("../../../material-ui/src/OverridableComponent").OverrideProps<import("../../../material-ui/src").IconButtonTypeMap<{}, "button">, "button">> | undefined; leftArrowButtonText?: string | undefined; rightArrowButtonText?: string | undefined; getViewSwitchingButtonText?: ((currentView: import("../internal/pickers/typings/Views").DatePickerView) => string) | undefined; renderDay?: ((day: unknown, selectedDates: unknown[], DayComponentProps: import("../PickersDay/PickersDay").PickersDayProps<unknown>) => JSX.Element) | undefined; allowKeyboardControl?: boolean | undefined; renderLoading?: (() => React.ReactNode) | undefined; onYearChange?: ((date: unknown) => void) | undefined; shouldDisableYear?: ((day: unknown) => boolean) | undefined; ampmInClock: boolean; getClockLabelText?: ((view: import("../internal/pickers/constants/ClockType").ClockViewType, time: unknown, adapter: import("../LocalizationProvider").MuiPickersAdapter<unknown>) => string) | undefined; minutesStep?: number | undefined; value: any; onChange: (date: any, keyboardInputValue?: string | undefined) => void; disableCloseOnSelect?: boolean | undefined; disabled?: boolean | undefined; readOnly?: boolean | undefined; onAccept?: ((date: any) => void) | undefined; onOpen?: (() => void) | undefined; onClose?: (() => void) | undefined; open?: boolean | undefined; showToolbar: boolean; ToolbarComponent?: React.ComponentClass<import("../internal/pickers/typings/BasePicker").ToolbarComponentProps<unknown, import("../internal/pickers/typings/Views").AllAvailableViews>, any> | React.FunctionComponent<import("../internal/pickers/typings/BasePicker").ToolbarComponentProps<unknown, import("../internal/pickers/typings/Views").AllAvailableViews>> | undefined; toolbarTitle?: React.ReactNode; toolbarPlaceholder?: React.ReactNode; className?: string | undefined; label?: React.ReactNode; mask: string; InputProps?: Partial<import("../../../material-ui/src").InputProps> | Partial<import("../../../material-ui/src").FilledInputProps> | Partial<import("../../../material-ui/src").OutlinedInputProps> | undefined; ignoreInvalidInputs?: boolean | undefined; renderInput: (props: import("../../../material-ui/src").TextFieldProps) => React.ReactElement<any, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>; openPickerIcon?: React.ReactNode; acceptRegex: RegExp; InputAdornmentProps?: Partial<import("../../../material-ui/src/OverridableComponent").OverrideProps<import("../../../material-ui/src").InputAdornmentTypeMap<{}, "div">, "div">> | undefined; OpenPickerButtonProps?: Partial<import("../../../material-ui/src/OverridableComponent").OverrideProps<import("../../../material-ui/src").IconButtonTypeMap<{}, "button">, "button">> | undefined; rifmFormatter?: ((str: string) => string) | undefined; disableOpenPicker?: boolean | undefined; disableMaskedInput: boolean; getOpenDialogAriaText?: ((value: unknown, utils: import("../LocalizationProvider").MuiPickersAdapter<unknown>) => string) | undefined; dateAdapter?: import("../LocalizationProvider").MuiPickersAdapter<any> | undefined; openTo: import("../internal/pickers/typings/Views").DateTimePickerView; views: import("../internal/pickers/typings/Views").DateTimePickerView[]; ampm: boolean; orientation: "portrait"; showTabs: boolean; minDate: unknown; minTime: unknown; maxDate: unknown; maxTime: unknown; inputFormat: string; }; export declare const dateTimePickerConfig: { useInterceptProps: typeof useInterceptProps; useValidation: (value: unknown, props: BaseDateTimePickerProps<unknown>) => "invalidDate" | "minTime" | "maxTime" | "shouldDisableTime-hours" | "shouldDisableTime-minutes" | "shouldDisableTime-seconds" | "shouldDisableDate" | "disableFuture" | "disablePast" | "minDate" | "maxDate" | null; DefaultToolbarComponent: React.ComponentType<Pick<React.PropsWithChildren<Pick<import("../DayPicker/DayPicker").DayPickerProps<unknown, import("../internal/pickers/typings/Views").DatePickerView>, "loading" | "onViewChange" | "minDate" | "maxDate" | "disablePast" | "disableFuture" | "onMonthChange" | "reduceAnimations" | "shouldDisableDate" | "defaultCalendarMonth" | "disableHighlightToday" | "showDaysOutsideCurrentMonth" | "allowSameDateSelection" | "leftArrowIcon" | "rightArrowIcon" | "leftArrowButtonProps" | "rightArrowButtonProps" | "leftArrowButtonText" | "rightArrowButtonText" | "getViewSwitchingButtonText" | "renderDay" | "allowKeyboardControl" | "renderLoading" | "onYearChange" | "shouldDisableYear"> & ExportedClockPickerProps<unknown> & { ampmInClock?: boolean | undefined; date: unknown; dateRangeIcon?: React.ReactNode; getMobileKeyboardInputViewButtonText?: (() => string) | undefined; hideTabs?: boolean | undefined; isLandscape: boolean; isMobileKeyboardViewOpen: boolean; onChange: import("../internal/pickers/hooks/useViews").PickerOnChangeFn<unknown>; openView: import("../internal/pickers/typings/Views").AllAvailableViews; setOpenView: (view: import("../internal/pickers/typings/Views").AllAvailableViews) => void; timeIcon?: React.ReactNode; toggleMobileKeyboardView: () => void; toolbarFormat?: string | undefined; toolbarPlaceholder?: React.ReactNode; toolbarTitle?: React.ReactNode; views: import("../internal/pickers/typings/Views").AllAvailableViews[]; } & { classes: Record<"separator" | "root" | "penIcon" | "timeContainer" | "dateContainer" | "timeTypography", string>; }>, "children" | "onChange" | "date" | "minTime" | "maxTime" | "shouldDisableTime" | "disableIgnoringDatePartForTimeValidation" | "loading" | "views" | "onViewChange" | "openView" | "setOpenView" | "minDate" | "maxDate" | "disablePast" | "disableFuture" | "onMonthChange" | "reduceAnimations" | "shouldDisableDate" | "toolbarTitle" | "toolbarPlaceholder" | "toolbarFormat" | "defaultCalendarMonth" | "disableHighlightToday" | "showDaysOutsideCurrentMonth" | "allowSameDateSelection" | "leftArrowIcon" | "rightArrowIcon" | "leftArrowButtonProps" | "rightArrowButtonProps" | "leftArrowButtonText" | "rightArrowButtonText" | "getViewSwitchingButtonText" | "renderDay" | "allowKeyboardControl" | "renderLoading" | "onYearChange" | "shouldDisableYear" | "ampm" | "ampmInClock" | "getClockLabelText" | "minutesStep" | "isMobileKeyboardViewOpen" | "getMobileKeyboardInputViewButtonText" | "toggleMobileKeyboardView" | "dateRangeIcon" | "hideTabs" | "isLandscape" | "timeIcon"> & import("../../../material-ui-styles/src").StyledComponentProps<"separator" | "root" | "penIcon" | "timeContainer" | "dateContainer" | "timeTypography">>; }; export declare type DateTimePickerGenericComponent<TWrapper extends SomeWrapper> = <TDate>(props: BaseDateTimePickerProps<TDate> & SharedPickerProps<TDate, TWrapper>) => JSX.Element; /** * @ignore - do not document. */ declare const DateTimePicker: DateTimePickerGenericComponent<React.FC<import("../internal/pickers/wrappers/ResponsiveWrapper").ResponsiveWrapperProps & import("../internal/pickers/wrappers/WrapperProps").PrivateWrapperProps>>; export declare type DateTimePickerProps = React.ComponentProps<typeof DateTimePicker>; export default DateTimePicker;