/** * Removed: * - getCalendarContainer: use `getPopupContainer` instead * - onOk * * New Feature: * - picker * - allowEmpty * - selectable * * Tips: Should add faq about `datetime` mode with `defaultValue` */ import type { AlignType } from '@rc-component/trigger/lib/interface'; import * as React from 'react'; import type { CustomFormat, PresetDate } from './interface'; import type { PickerPanelBaseProps, PickerPanelDateProps, PickerPanelTimeProps } from './PickerPanel'; export declare type PickerRefConfig = { focus: () => void; blur: () => void; }; export declare type PickerSharedProps = { dropdownClassName?: string; dropdownAlign?: AlignType; popupStyle?: React.CSSProperties; transitionName?: string; placeholder?: string; allowClear?: boolean; autoFocus?: boolean; disabled?: boolean; tabIndex?: number; open?: boolean; defaultOpen?: boolean; /** Make input readOnly to avoid popup keyboard in mobile */ inputReadOnly?: boolean; id?: string; presets?: PresetDate[]; format?: string | CustomFormat | (string | CustomFormat)[]; suffixIcon?: React.ReactNode; clearIcon?: React.ReactNode; prevIcon?: React.ReactNode; nextIcon?: React.ReactNode; superPrevIcon?: React.ReactNode; superNextIcon?: React.ReactNode; getPopupContainer?: (node: HTMLElement) => HTMLElement; panelRender?: (originPanel: React.ReactNode) => React.ReactNode; inputRender?: (props: React.InputHTMLAttributes) => React.ReactNode; onChange?: (value: DateType | null, dateString: string) => void; onOpenChange?: (open: boolean) => void; onFocus?: React.FocusEventHandler; onBlur?: React.FocusEventHandler; onMouseDown?: React.MouseEventHandler; onMouseUp?: React.MouseEventHandler; onMouseEnter?: React.MouseEventHandler; onMouseLeave?: React.MouseEventHandler; onClick?: React.MouseEventHandler; onContextMenu?: React.MouseEventHandler; onKeyDown?: (event: React.KeyboardEvent, preventDefault: () => void) => void; /** * Trigger `onChange` event when blur. * If you don't want to user click `confirm` to trigger change, can use this. */ changeOnBlur?: boolean; /** @private Internal usage, do not use in production mode!!! */ pickerRef?: React.MutableRefObject; role?: string; name?: string; autoComplete?: string; direction?: 'ltr' | 'rtl'; } & React.AriaAttributes; declare type OmitPanelProps = Omit; export declare type PickerBaseProps = {} & PickerSharedProps & OmitPanelProps>; export declare type PickerDateProps = {} & PickerSharedProps & OmitPanelProps>; export declare type PickerTimeProps = { picker: 'time'; /** * @deprecated Please use `defaultValue` directly instead * since `defaultOpenValue` will confuse user of current value status */ defaultOpenValue?: DateType; } & PickerSharedProps & Omit>, 'format'>; export declare type PickerProps = PickerBaseProps | PickerDateProps | PickerTimeProps; declare class Picker extends React.Component> { pickerRef: React.RefObject; focus: () => void; blur: () => void; render(): React.JSX.Element; } export default Picker;