@material-ui/lab
Version:
Material-UI Lab - Incubator for Material-UI React components.
172 lines (171 loc) • 14.7 kB
TypeScript
/// <reference types="react" />
import type { WithViewsProps } from '../internal/pickers/Picker/SharedPickerProps';
import { OverrideParsableDateProps } from '../internal/pickers/hooks/date-helpers-hooks';
import type { ExportedDayPickerProps } from '../DayPicker/DayPicker';
import { SomeWrapper } from '../internal/pickers/wrappers/Wrapper';
import { ValidationProps } from '../internal/pickers/hooks/useValidation';
import { ParsableDate } from '../internal/pickers/constants/prop-types';
import { AllPickerProps, SharedPickerProps } from '../internal/pickers/Picker/makePickerWithState';
import { DateValidationError } from '../internal/pickers/date-utils';
export declare type DatePickerView = 'year' | 'date' | 'month';
export interface BaseDatePickerProps<TDate> extends WithViewsProps<'year' | 'date' | 'month'>, ValidationProps<DateValidationError, ParsableDate>, OverrideParsableDateProps<TDate, ExportedDayPickerProps<TDate>, 'minDate' | 'maxDate'> {
}
export declare const datePickerConfig: {
useValidation: (value: unknown, props: BaseDatePickerProps<unknown>) => "invalidDate" | "shouldDisableDate" | "disableFuture" | "disablePast" | "minDate" | "maxDate" | null;
DefaultToolbarComponent: import("react").ComponentType<Pick<import("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"> & import("../ClockPicker/ClockPicker").ExportedClockPickerProps<unknown> & {
ampmInClock?: boolean | undefined;
date: unknown;
dateRangeIcon?: import("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?: import("react").ReactNode;
toggleMobileKeyboardView: () => void;
toolbarFormat?: string | undefined;
toolbarPlaceholder?: import("react").ReactNode;
toolbarTitle?: import("react").ReactNode;
views: import("../internal/pickers/typings/Views").AllAvailableViews[];
} & {
classes: Record<"root" | "dateTitleLandscape" | "penIcon", 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<"root" | "dateTitleLandscape" | "penIcon">>;
useInterceptProps: ({ openTo, views, minDate: __minDate, maxDate: __maxDate, ...other }: AllPickerProps<BaseDatePickerProps<unknown>>) => {
onError?: ((reason: "invalidDate" | "shouldDisableDate" | "disableFuture" | "disablePast" | "minDate" | "maxDate" | null, value: unknown) => void) | undefined;
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 | undefined;
leftArrowIcon?: import("react").ReactNode;
rightArrowIcon?: import("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?: (() => import("react").ReactNode) | undefined;
onYearChange?: ((date: unknown) => void) | undefined;
shouldDisableYear?: ((day: unknown) => boolean) | undefined;
value: any;
onChange: (date: any, keyboardInputValue?: string | undefined) => void;
disableCloseOnSelect?: boolean | undefined;
inputFormat: any;
disabled?: boolean | undefined;
readOnly?: boolean | undefined;
onAccept?: ((date: any) => void) | undefined;
onOpen?: (() => void) | undefined;
onClose?: (() => void) | undefined;
open?: boolean | undefined;
showToolbar?: boolean | undefined;
orientation?: "portrait" | "landscape" | undefined;
ToolbarComponent?: import("react").ComponentClass<import("../internal/pickers/typings/BasePicker").ToolbarComponentProps<unknown, import("../internal/pickers/typings/Views").AllAvailableViews>, any> | import("react").FunctionComponent<import("../internal/pickers/typings/BasePicker").ToolbarComponentProps<unknown, import("../internal/pickers/typings/Views").AllAvailableViews>> | undefined;
/**
* Regular expression to detect "accepted" symbols.
* @default /\dap/gi
*/
toolbarTitle?: import("react").ReactNode;
toolbarPlaceholder?: import("react").ReactNode;
toolbarFormat?: string | undefined;
className?: string | undefined;
label?: import("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) => import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, string | any | (new (props: any) => import("react").Component<any, any, any>)> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
openPickerIcon?: import("react").ReactNode;
acceptRegex?: RegExp | undefined;
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 | undefined;
getOpenDialogAriaText?: ((value: unknown, utils: import("../LocalizationProvider").MuiPickersAdapter<unknown>) => string) | undefined;
dateAdapter?: import("../LocalizationProvider").MuiPickersAdapter<any> | undefined;
views: import("../internal/pickers/typings/Views").DatePickerView[];
openTo: import("../internal/pickers/typings/Views").DatePickerView;
minDate: unknown;
maxDate: unknown;
} | {
onError?: ((reason: "invalidDate" | "shouldDisableDate" | "disableFuture" | "disablePast" | "minDate" | "maxDate" | null, value: unknown) => void) | undefined;
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 | undefined;
leftArrowIcon?: import("react").ReactNode;
rightArrowIcon?: import("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?: (() => import("react").ReactNode) | undefined;
onYearChange?: ((date: unknown) => void) | undefined;
shouldDisableYear?: ((day: unknown) => boolean) | undefined;
value: any;
onChange: (date: any, keyboardInputValue?: string | undefined) => void;
disableCloseOnSelect?: boolean | undefined;
inputFormat: any;
disabled?: boolean | undefined;
readOnly?: boolean | undefined;
onAccept?: ((date: any) => void) | undefined;
onOpen?: (() => void) | undefined;
onClose?: (() => void) | undefined;
open?: boolean | undefined;
showToolbar?: boolean | undefined;
orientation?: "portrait" | "landscape" | undefined;
ToolbarComponent?: import("react").ComponentClass<import("../internal/pickers/typings/BasePicker").ToolbarComponentProps<unknown, import("../internal/pickers/typings/Views").AllAvailableViews>, any> | import("react").FunctionComponent<import("../internal/pickers/typings/BasePicker").ToolbarComponentProps<unknown, import("../internal/pickers/typings/Views").AllAvailableViews>> | undefined;
/**
* Regular expression to detect "accepted" symbols.
* @default /\dap/gi
*/
toolbarTitle?: import("react").ReactNode;
toolbarPlaceholder?: import("react").ReactNode;
toolbarFormat?: string | undefined;
className?: string | undefined;
label?: import("react").ReactNode;
mask?: string | undefined;
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) => import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, string | any | (new (props: any) => import("react").Component<any, any, any>)> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
openPickerIcon?: import("react").ReactNode;
acceptRegex?: RegExp | undefined;
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;
views: import("../internal/pickers/typings/Views").DatePickerView[];
openTo: import("../internal/pickers/typings/Views").DatePickerView;
minDate: unknown;
maxDate: unknown;
};
};
export declare type DatePickerGenericComponent<TWrapper extends SomeWrapper> = <TDate>(props: BaseDatePickerProps<TDate> & SharedPickerProps<TDate, TWrapper>) => JSX.Element;
/**
* @ignore - do not document.
*/
declare const DatePicker: DatePickerGenericComponent<import("react").FC<import("../internal/pickers/wrappers/WrapperProps").MobileWrapperProps & import("../internal/pickers/wrappers/WrapperProps").PrivateWrapperProps>>;
export declare type DatePickerProps = React.ComponentProps<typeof DatePicker>;
export default DatePicker;