@material-ui/lab
Version:
Material-UI Lab - Incubator for Material-UI React components.
151 lines (150 loc) • 11.2 kB
TypeScript
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;