import React from 'react'; import PropTypes from 'prop-types'; import CalendarFoundation, { ParsedEvents, CalendarAdapter, RangeData, ParsedRangeEvent } from '@douyinfe/semi-foundation/lib/cjs/calendar/foundation'; import BaseComponent from '../_base/baseComponent'; import '@douyinfe/semi-foundation/lib/cjs/calendar/calendar.css'; import { RangeCalendarProps } from './interface'; import { Locale } from '../locale/interface'; export interface RangeCalendarState { scrollHeight: number; parsedEvents: ParsedEvents; cachedKeys: Array; } export default class RangeCalendar extends BaseComponent { static propTypes: { range: PropTypes.Requireable; header: PropTypes.Requireable; events: PropTypes.Requireable; mode: PropTypes.Requireable; showCurrTime: PropTypes.Requireable; markWeekend: PropTypes.Requireable; scrollTop: PropTypes.Requireable; renderTimeDisplay: PropTypes.Requireable<(...args: any[]) => any>; renderDateDisplay: PropTypes.Requireable<(...args: any[]) => any>; dateGridRender: PropTypes.Requireable<(...args: any[]) => any>; allDayEventsRender: PropTypes.Requireable<(...args: any[]) => any>; width: PropTypes.Requireable>; height: PropTypes.Requireable>; style: PropTypes.Requireable; className: PropTypes.Requireable; }; static defaultProps: { events: ParsedEvents[]; mode: string; }; static contextType: React.Context; dom: React.RefObject; scrollDom: React.RefObject; isWeekend: boolean; allDayRowHeight: number; RangeData: RangeData; foundation: CalendarFoundation; constructor(props: RangeCalendarProps); get adapter(): CalendarAdapter; componentDidMount(): void; componentDidUpdate(prevProps: RangeCalendarProps, prevState: RangeCalendarState): void; componentWillUnmount(): void; handleClick: (e: React.MouseEvent, val: [Date, number, number, number]) => void; renderDayGrid: () => React.JSX.Element[]; renderHeader: (dateFnsLocale: Locale['dateFnsLocale']) => React.JSX.Element; renderAllDayEvents: (events: Array) => string | number | boolean | React.ReactElement> | Iterable | React.JSX.Element[]; renderAllDay: (locale: Locale['Calendar']) => React.JSX.Element; render(): React.JSX.Element; }