import type { HTMLAttributes, ReactNode, RefObject, SyntheticEvent } from 'react';
import type { DateShortcutItem } from '../../../components/DateTimePicker/DateTimePicker.types';
import type { DatePickerCalendarProps, DatePickerVariationProps, OnCommitDateCallback } from '../DatePickerBase.types';
import type { DateType } from '../../Calendar/Calendar.types';
import type { HintProps, LabelProps } from '../../TextField/TextField.types';
export type DatePickerPlacementBasic = 'top' | 'bottom' | 'right' | 'left';
export type DatePickerPlacementVariation = 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'right-start' | 'right-end' | 'left-start' | 'left-end';
export type DatePickerPlacement = DatePickerPlacementBasic | DatePickerPlacementVariation | 'auto';
export type DatePickerTextFieldProps = {
/**
* Метка-подпись к элементу справа.
*/
titleCaption?: ReactNode;
/**
* Задает выравнивание индикатора обязательности поля
* @default right
*/
requiredPlacement?: 'left' | 'right';
/**
* Флаг обязательности поля
*/
required?: boolean;
/**
* Флаг наличия индикатора обязательности поля
* @default false
*/
hasRequiredIndicator?: boolean;
/**
* Выбранное значение.
*/
value?: Date | string;
/**
* Сохранять невалидное значение после блюра поля ввода
*/
preserveInvalidOnBlur?: boolean;
/**
* Выбранное значение по умолчанию.
*/
defaultDate?: Date;
/**
* Placeholder для поля ввода
*/
placeholder?: string;
/**
* Свойство для названия поля при работе с формой
*/
name?: string;
/**
* Некорректное значение даты
*/
valueError?: boolean;
/**
* Корректное значение даты
*/
valueSuccess?: boolean;
/**
* Вспомогательный текст снизу слева для поля ввода.
*/
leftHelper?: string;
/**
* Слот для контента слева.
*/
contentLeft?: React.ReactElement;
/**
* Слот для контента справа.
*/
contentRight?: React.ReactElement;
/**
* Слот для вспомогательного текста справа.
*/
textBefore?: string;
/**
* Слот для вспомогательного текста слева.
*/
textAfter?: string;
/**
* Автозаполнение полей.
*/
autoComplete?: string;
/**
* Callback по нажатию Enter в поле ввода или выборе дня на календаре.
* @param value - значение даты
* @param {Object} formattedValues - набор значений в разных форматах
* @param formattedValues.error - статус ошибки валидации
* @param formattedValues.success - статус успешной валидации
* @param formattedValues.dateInfo - информация о дате (для кварталов и т.д.)
* @param formattedValues.originalDate - дата как экземпляр Date
* @param formattedValues.isoDate - дата в формате ISO
* @return void
*/
onCommitDate?: OnCommitDateCallback;
/**
* Обработчик изменения значения.
*/
onChangeValue?: (event: SyntheticEvent | null, value?: string, originalDate?: DateType, isoDate?: string) => void;
/**
* Свойство устарело, используется формой. Вместо используйте onChangeValue и onCommitDate
* @deprecated
*/
onChange?: (event: {
target: {
value?: string;
name?: string;
originalDate?: DateType;
isoDate?: string;
};
}) => void;
} & LabelProps;
export type DatePickerPopoverProps = {
/**
* Видимость календаря.
* @deprecated
*/
isOpen?: boolean;
/**
* Видимость календаря.
*/
opened?: boolean;
/**
* Сторона открытия календаря относительно поля ввода.
* @default
* ["bottom", "top"]
*/
placement?: DatePickerPlacement | Array;
/**
* Отступ календаря относительно поля ввода.
* @default [0, 0]
*/
offset?: [number, number];
/**
* В каком контейнере позиционируется(по умолчанию document), можно также указать id элемента или ref для него.
*/
frame?: 'document' | string | RefObject;
/**
* CSS-свойство z-index для выпадающего календаря
*/
zIndex?: string;
/**
* Закрывать календарь при нажатии вне области элемента.
* @default true
*/
closeOnOverlayClick?: boolean;
/**
* Закрывать календарь при нажатии Escape.
* @default true
*/
closeOnEsc?: boolean;
/**
* Находится ли в портале.
* @default
* false
*/
usePortal?: boolean;
/**
* Закрыть календарь после выбора дат
*/
closeAfterDateSelect?: boolean;
/**
* Список предустановленных дат,
* которые можно выбрать в выпадающем календаре
*/
dateShortcuts?: DateShortcutItem[];
/**
* Отключить автоматическое переворачивание дропдауна при нехватке места
*/
disableFlip?: boolean;
/**
* Событие сворачивания/разворачивания календаря.
*/
onToggle?: (isOpen: boolean, event?: SyntheticEvent | Event) => void;
};
export type DatePickerProps = DatePickerVariationProps & DatePickerTextFieldProps & DatePickerCalendarProps & DatePickerPopoverProps & HintProps & Omit, 'defaultValue'>;
export type RootDatePickerProps = {
eventTooltipSize?: string;
} & Omit;
//# sourceMappingURL=SingleDate.types.d.ts.map