import React, { FC, MouseEvent } from 'react'; import { PopoverProps } from '../Popover'; import { DateRangeOptionListProps, DateRangeInputProps } from './components'; import { MultiViewCalendarProps, SelectionRange } from '@progress/kendo-react-dateinputs'; import { UseFocusTrapProps } from '../../hooks'; import { PopperProps } from '../../internal'; interface CalendarInputProps { placeholder?: DateRangeInputProps['placeholder']; onChange?: DateRangeInputProps['onChange']; onBlur?: DateRangeInputProps['onBlur']; } interface CalendarProps { onChange?: MultiViewCalendarProps['onChange']; focusedDate?: Date; } interface ClearButtonProps { onClick?: (e: MouseEvent, value: innerDateRange) => void; } interface DropdownProps { portal?: boolean; direction?: PopoverProps['direction']; autoFlipVertically?: PopoverProps['autoFlipVertically']; autoFlipHorizontally?: PopoverProps['autoFlipHorizontally']; options?: DateRangeOptionListProps['options']; enableTimezoneContext?: DateRangeOptionListProps['enableTimezoneContext']; startDateInput?: CalendarInputProps; endDateInput?: CalendarInputProps; views?: 1 | 2; calendar?: CalendarProps; clearButton?: ClearButtonProps; } interface InputProps { size?: 'small' | 'medium' | 'large'; placeholder?: string; displayValue?: string; element?: (value: DateRangePickerProps['value'] | any, triggerProp: triggerProps, open: DateRangePickerProps['open'], error: DateRangePickerProps['error']) => React.ReactElement; } export interface DateRangePickerProps { /** Disabled state */ disabled?: boolean; /** Indicates that the field is required */ required?: boolean; /** Error state */ error?: boolean; /** onChange function */ onChange?: (value: MultiViewCalendarProps['value'] | any) => void; /** A handler that is called on every open and close action */ onOpenChange?: (open: boolean) => void; /** A handler that is called on every click on any element outside of the anchor element when it is open */ onClickOutside?: PopoverProps['onClickOutside']; /** Default calendar value */ defaultValue?: MultiViewCalendarProps['value']; /** Maximum date allowed */ maxDate?: MultiViewCalendarProps['max']; /** Minimum date allowed */ minDate?: MultiViewCalendarProps['min']; /** Set value */ value?: SelectionRange; /** Whether the DateRangePicker is open or not */ open?: boolean; /** Disables close on click outside */ disableCloseOnClickOutside?: boolean; /** * Date format string */ dateFormat?: string; /** Changes the onChange return to ISO string format */ isoFormat?: boolean; /** Options passed into useFocusTrap */ focusTrapOptions?: UseFocusTrapProps; /** popover component prop */ dropdown?: DropdownProps; /** trigger component prop */ input?: InputProps; /** Props to be passed to the portaled div */ portalDataAttributes?: PopperProps['portalDataAttributes']; /** * @deprecated - use input.size */ size?: 'small' | 'medium' | 'large'; /** * @deprecated - use input.placeholder */ placeholder?: string; /** * @deprecated - use input.displayValue */ displayValue?: string; /** * @deprecated - use input.element */ trigger?: (value: DateRangePickerProps['value'] | any, triggerProp: triggerProps, open: DateRangePickerProps['open'], error: DateRangePickerProps['error']) => React.ReactElement; /** * @deprecated - use dropdown.portal */ portal?: boolean; /** * @deprecated - use dropdown.direction */ direction?: PopoverProps['direction']; /** * @deprecated - use dropdown.autoFlipVertically */ autoFlipVertically?: PopoverProps['autoFlipVertically']; /** * @deprecated - use dropdown.autoFlipHorizontally */ autoFlipHorizontally?: PopoverProps['autoFlipHorizontally']; /** * @deprecated - use dropdown.options */ options?: DateRangeOptionListProps['options']; /** * @deprecated - use dropdown.startDateInput.placeholder */ startPlaceholder?: InputProps['placeholder']; /** * @deprecated - use dropdown.endDateInput.placeholder */ endPlaceholder?: InputProps['placeholder']; /** * @deprecated - use dropdown.focusedDate */ focusedDate?: Date; /** * @deprecated - use dropdown.views */ views?: 1 | 2; } interface triggerProps { /** onClick function for the trigger */ onClick?: () => void; } interface innerDateRange { start: string | null; end: string | null; } export declare const DateRangePicker: FC; export {};