import React, { ElementType, FocusEventHandler } from 'react'; import { Dayjs } from 'dayjs'; import { RefHandler } from 'react-popper'; import { DateType, OnInputChangeHandler, DefaultTime, DateTimeControlProps } from './types'; import '../../styles/components/DatePicker.scss'; declare type DateTimeControlState = { inputs: Record; isFocus: boolean; isPopUpVisible: boolean; isTimeSet: Record; }; export declare class DateTimeControl extends React.Component { format: string; defaultTime: DefaultTime; datePicker: HTMLDivElement | null; inputGroup: HTMLDivElement | null; private control; constructor(props: DateTimeControlProps); /** * Обработка новых пропсов */ componentWillReceiveProps(props: DateTimeControlProps): void; markTimeAsSet: (inputName: string) => void; /** * Приведение к строке */ dateToString(date: DateType | null): string | null; getValue: (inputName: string | null) => [string | null, string | null] | string | null; /** * вызов onChange */ onChange: (inputName: string) => void; /** * Выбор даты, прокидывается в календарь */ select: (day: Dayjs | null, inputName: string, close?: boolean) => void; /** * Выбор даты, прокидывается в инпут * @todo объединить методы select и onInputChange в 1 метод */ onInputChange: OnInputChangeHandler; onInputBlur: (date: Dayjs | null, inputName: string) => void; /** * Устанавливает видимость попапа */ setVisibility: (visible: boolean) => void; /** * Навешивание листенеров для появления / исчезания попапа */ componentDidMount(): void; /** * Удаление листенеров для появления / исчезания попапа после анмаунта */ componentWillUnmount(): void; componentDidUpdate(): void; /** * Обработка клика за пределами попапа */ onClickOutside: EventListener; /** * Рендер попапа */ renderPopUp(): JSX.Element | null; onFocus: FocusEventHandler; setInputRef: (popperRef: RefHandler) => (r: HTMLDivElement) => void; setControlRef: (el: ElementType) => void; render(): JSX.Element; } export {};