import React from 'react'; import PropTypes from 'prop-types'; import CalendarFoundation, { CalendarAdapter, EventObject, ParsedEvents, ParsedRangeEvent, WeeklyData } from '@douyinfe/semi-foundation/lib/es/calendar/foundation'; import BaseComponent from '../_base/baseComponent'; import type { WeekCalendarProps } from './interface'; import '@douyinfe/semi-foundation/lib/es/calendar/calendar.css'; import { Locale } from '../locale/interface'; export interface WeekCalendarState { scrollHeight: number; parsedEvents: ParsedEvents; cachedKeys: Array; } export default class WeekCalendar extends BaseComponent { static propTypes: { displayValue: 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: { displayValue: Date; events: EventObject[]; mode: string; }; static contextType: React.Context; dom: React.RefObject; scrollDom: React.RefObject; allDayRowHeight: number; weeklyData: WeeklyData; foundation: CalendarFoundation; constructor(props: WeekCalendarProps); get adapter(): CalendarAdapter; componentDidMount(): void; componentDidUpdate(prevProps: WeekCalendarProps, prevState: WeekCalendarState): void; componentWillUnmount(): void; checkWeekend: (val: Date) => boolean; handleClick: (e: React.MouseEvent, val: [Date, number, number, number]) => void; renderDayGrid: () => React.JSX.Element[]; renderHeader: (dateFnsLocale: any) => React.JSX.Element; renderAllDayEvents: (events: ParsedRangeEvent[]) => string | number | boolean | React.ReactElement> | Iterable | React.JSX.Element[]; renderAllDay: (locale: Locale['Calendar']) => React.JSX.Element; render(): React.JSX.Element; }